高并发.大数据--统计数据--解决方案
来源:互联网 发布:mysql 加列 编辑:程序博客网 时间:2024/05/21 22:27
一般的公司都需要用到数据统计,一般都是写统计sql,查询交易流水表,就搞定了。在流水记录不太多的情况,这样做没问题;如果交易流水很大,就需要好好设计一下了,下面我们讨论交易数据量很大的情况。
大致思路如下:
1.我们需要设计一个统计表。
2.定时任务将交易流水表中的数据进行加工之后,更新到统计表中;
思路:
1.设置一个游标index,作用: 记录更新到交易流水表的哪条记录了以及下次统计的开始点。一般使用交易流水表id;
2.单次统计数据步长Step,即一次处理多少条数据。一般每次200条;
3.根据index,查询 交易流水表 200条交易数据。这里需要注意具体业务逻辑,如按天统计,按小时统计,具体业务具体写group by 语句;
4.统计表中需要 业务时间 字段,便于查一般设计成:year,month,day 三个字段;
如:按天统计,业务时间字段如下:
idYearMonthdaycreateTime1201402262014-2-26 15:48:00
作用:根据业务时间,判断统计表中是否存在第3步查询的交易数据。适用于定时任务意外停掉,重新启动后,补录数据的情况;
5.统计表中有20140226日的数据就update;没有,就insert;
6.处理成功后,更新index为最新值。
7.进行下一批处理,直到交易流水表中的数据全部处理完成。
如此设计,优点:
将统计定时任务执行次数和 业务规则 分离,使之互不影响。
举个例子:有些人一看到按天统计,就把定时任务设计成每天跑一次,查询交易流水表,插入到统计表中去。
缺点:这么做有个致命弱点,定时任务有问题了,当天记录没有跑出来,那么补录数据是个非常耗时的工程。另外还有一个问题:当天只能查询昨天的统计数据。
本文介绍的方法就不会有这些问题。即使定时任务停掉了,只要index不改变,任务重启后,还会从index开始继续执行。并且可以设置每3分钟跑一次。这样当天就可以查询当天的按天统计数据了
- 高并发.大数据--统计数据--解决方案
- 高并发与大数据解决方案概述
- 大数据和高并发的解决方案
- 高并发,大数据
- 高并发.大数据--解决方案--几件利器
- 大数据和高并发的解决方案总结
- 大数据和高并发的解决方案总结
- 大数据和高并发的解决方案总结
- 大数据和高并发的解决方案汇总
- 海量数据高并发高负载解决方案
- 大数据量、高并发量网站解决方案
- 大数据量、高并发量网站解决方案
- 大数据量、高并发量网站解决方案
- 大数据量、高并发量网站解决方案
- 【海量数据+高并发】网络高并发量解决方案
- mysql大数据高并发处理(转载)
- mysql大数据高并发处理
- mysql大数据高并发处理
- IOS常用开源库(转)
- Activity的生命周期——原创
- Android实现关机重启的方法
- Flex 元数据(metadata)的使用
- android中的binder通信机制
- 高并发.大数据--统计数据--解决方案
- 热力学第一定律
- Zend Studio 10 汉化——离线语言包安装步骤
- 全局对象/局部静态对象/new数组
- ObjectARX自定义实体
- 【Mysql】mysql分区入门1—简介
- javascript进阶——Ajax 有点看不懂!!!!
- 什么是堆,什么是栈?
- Linux Socket编程(不限Linux)