关于一个数据操作方案的咨询,谢谢

teleinfor 2015-06-09 05:39:16
有这样的一个需求,请各位达达看看,应该如何设计方案比较合理?
目标数据都是用户记录,对用户的行为进行分析。数据表:
tab_a -- 记录用户的活动类型1
tab_b -- 记录用户的活动类型2
tab_c -- 记录用户的活动类型3
现在根据tab_a中用户的一行数据记录,来从tab_b和tab_c中查找有否关联记录。如果有关联,则根据关联得到的信息更新tab_a对应记录。关联标识列都是tempid列,表都有时间列time。

规则:
1、针对一条记录,根据tab_a(tempid)从tab_b/c中查找对应时间前后3分钟的记录,如果存在则获取其location列,更新tab_a的location列。也就是说针对tab_a(tempid)的每一条记录,都有一个时间窗口3分钟来供查找是否有同样tempid的数据记录,如果有则获取找到的记录信息更新teb_a表。

数据量比较大,那么问题来了。我应该如何设计方案来做这个事情呢?在数据库里面通过procedure借助游标实现?还是另外编写一个app进程从数据库里面提取数据出来,分析后再把数据回填到数据库呢?

还请达达们指点,多谢了,这其实就是一个大数据的操作实例。对效率和方案合理性要有个基础思考和设计。
...全文
210 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2015-06-12
  • 打赏
  • 举报
回复
一次性对A更新需要读写所有记录,数据量摆在那里啊!
用触发器可以把这个工作平摊到日常中,虽然花费总时间更多,但是感觉不出来。
teleinfor 2015-06-11
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
每个表都建这样一个索引:(tempid,time)包含(location)————tab_a 可以不包含。 可以用插入触发器实现: tab_a 插入:从 tab_b、tab_c 中去3分钟内的最新 location,更新到 tab_a.location。 tab_b 插入:直接把当前 location 更新到3分钟内的 tab_a 记录,反正不存在不会更新。 tab_c 插入:同 tab_b。
我今天做了一个实现,不过发现效率很低下,郁闷。。。我是利用游标从A提取所有数据,遍历A从B/C表查询每一条关联的记录,然后处理,再反过来UPDATE A中关联记录。效率很低下不能满足需要。
Tiger_Zhao 2015-06-10
  • 打赏
  • 举报
回复
每个表都建这样一个索引:(tempid,time)包含(location)————tab_a 可以不包含。
可以用插入触发器实现:
tab_a 插入:从 tab_b、tab_c 中去3分钟内的最新 location,更新到 tab_a.location。
tab_b 插入:直接把当前 location 更新到3分钟内的 tab_a 记录,反正不存在不会更新。
tab_c 插入:同 tab_b。
向日葵甘特图组件1.5版发布后,获得了很多用户的好评。我们也再接再励,对向日葵甘特最近做了如下更新:     1、 增加了甘特图中每个组件的isUsing属性,可以判断其是否加载,从而可以允许用户灵活地显示/隐藏 链接线,进度线等组件 ; 2、 当甘特图任务数比较少的情况下,甘特图自动在下方平铺甘特图样式,实现更为一致的甘特图界面 3、 点击右边甘特条时,自动高亮选择左边的列表行;点击列表栏时,也自动高亮显示右边的甘特条。用户选择任务时更加清晰。 4、 实现行定位一个任务。用户可以通过筛选条件查找到一条任务,然后通过甘特图API提供的scrolltoElement方法将其显示到界面中心。参见范例http://www.51diaodu.cn/sfgantt/examples/SFGantt/scrollTo.htm 5、自动合并压缩甘特图的左边列表栏 向日葵甘特图介绍: 向日葵 Gantt 是当前B/S 系统开发中先进的甘特图解决方案,它采用与Google maps相同的AJAX技术,实现了与Ms Project 甘特图一致的界面和功能,可广泛应用于 ERP 系统、MES系统、项目管理系统或其它的资源时间调度相关领域。 向日葵 Gantt 数据XML核心属性与MS Project 完全一致,可以直接读取MS Project XML文件。另外由于向日葵甘特完全采用AJAX的技术来实现,因此比其他的甘特组件至少有如下优势: 完全采用JS实现,与服务器端开发语言无关,可在任何服务器平台上运行; 可轻松地与现有系统整合; 减轻服务器和带宽的负担,节约空间和带宽租用成本; 客户端无需安装任何插件即可运行; 支持大多数主流浏览器,如:IE,FireFox,Opera等; 用户基本操作无需与服务器交互,给用户带来流畅而友好的体验。 向日葵甘特图支持从服务器端动态加载数据,先进的按需加载技术使用户能够轻松应对大数据量任务的呈现问题。 向日葵甘特图是一个免费的web图形开发组件,它提供了非常丰富的用户二次开发API和完整的在线文档,参见 http://www.51diaodu.cn/sfgantt/docs/index.html 用户可以非常方便地将其整合到现有的Web系统中,无论用户使用的是Java,Dotnet还是Php等. 另外我们公司也提供收费服务,为用户提供更专业的咨询与升级服务,谢谢您对向日葵甘特开发团队的鼓励与支持! 中文网址: http://www.51diaodu.cn/ 英文网站:http://www.sfgantt.com/ 向日葵甘特图组件QQ交流群: 63867839 邮件:Admin@51diaodu.cn

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧