增量处理解决方案
来源:互联网 发布:淘宝商家发快递的成本 编辑:程序博客网 时间:2024/06/07 16:45
增量处理解决方案
问题归纳:
如果定时对Cube进行完全处理,数据量少还没有问题,但是如果数据多的话,时间开销将会非常厉害。如果改由按年或者月份分区处理的话稍微可以缓解处理压力,但是如果对于实时性要求比较高的系统来说,完全处理分区的开销也不小,因此建议采用分区增量处理的方式。由于SSAS自带的分区增量处理有许多问题,因此必须寻找一个较可行的解决方案来处理这类问题。
方案提出:
按照年份或者月份自动建立对应的度量值分区,根据对应的时间自动处理相应的时间分区,方式是对数据进行增量处理。
处理方式:
在每年的第一天或者是每个月的第一天,通过JOB自动建立对应的分区,详细建分区XMLA语句如下:
具体代码参照Create new Partition.xml文件
在ssis的包里,用Analysis Services Execute DDL Task方式来处理对于的时间分区,具体的的XMLA语句如下:
具体代码参照Process by Partition.xml文件
但是这样用ssis自己提供的增量处理方式,会使每次处理的数据都几何倍数的增长,效率很低。
因此必须想出一个比较可行的处理方案来对每次增加的数据进行处理。参照最传统的数据仓库原则,有两种方式,一种是对数据的时间来进行判断,另一种是对新进入数据库的字段加一个默认的未处理字段,然后处理的时候对这个字段进行判断。
权衡两种算法,第一种的做法要对时间进行判断,效率不如只对一个简单的tinyint类型字段进行判断来得快,因此采用对原有数据表增加一个字段来进行这类数据的判断,这个字段的默认值是0。在处理的时候加一个判断条件is_process=0来处理那些增量的数据,然后再处理完成后做一个UPDATE的工作,把数据表中所有is_process=0的记录都更新成处理完状态。
具体处理代码参照Process by Query.xml文件
实施效果:
对一个有2500多万数据的分区进行完全处理,实际的处理时间为16分钟左右
实行增量处理,一次插入的数据为350万左右,实际的处理时间为8分钟左右
预计以后随着数据量的增长,增量处理的优势将会更加明显
- 增量处理解决方案
- BW增量处理
- binlog增量数据代替Dump DB增量解决方案
- 传输增量DTP的处理
- 数据不能增量复制时的解决方案
- 数据仓库增量数据获取方式解决方案
- 微软cube的增量更新处理
- svn增量备份脚本 skiped问题处理
- TIMESTAMP 毫秒级增量处理方法
- 多系统之间大数据量增量同步解决方案
- BI笔记:增量方式处理多维数据集
- BI笔记之---增量方式处理多维数据集
- Percolator Google的海量数据增量处理系统
- 处理一个关于binlog增量恢复很慢的问题
- 增量更新---服务端与客户端的处理方案
- 加上日期处理的,这样可以增量备份
- Bi的ETL中怎么做增量处理
- 优步在Hadoop上做增量处理的案例
- 什么是Ajax?
- 商业智能BI的困惑
- 触发器的样例,存储过程样例
- U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(17): Entry.h
- Ajax让Web设计人性化:新应用 新体验
- 增量处理解决方案
- 浅析Java语言中两种异常的差别
- 单件模式 Single Pattern HeadFirst学习系列
- 加壳相关的一点点知识,跟病毒类似
- 注入DLL的几种方法
- IBM Google等巨头联手支持Open Ajax计划
- 平均值滤波之鬼斧神工算法
- 将RMI-IIOP服务器绑定到JNDI
- AJAX实例:根据邮编自动完成地址信息