重磅经验分享--针对CUBE建模设计思路深度总结

正在加载中...

试读已结束

继续阅读请 1 金币购买后下载

立即下载

资料简介:
最近经常有人CUBE模型的设计,CUBE的按时间分区问题,把以前的资料整理总结一下,希望给大家参考:

一、CUBE按时间分区基本原理:
1、事实表应该有个月份的字段,并且加上索引,这样在过滤一个月的数据时,查询效率很高;
2、新建一张参数表,可以只有一个月份字段,一条记录,记录当前月份;
3、写一个视图。事实表跟参数表关联,关联字段是月份字段,这样没错跑批就是那指定月份的数据;
4、建立CUBE模型,数据源引入事实表视图,设定分区模式为按月分组;
5、当然分组还可以按年,日等形式,取决与自己的设计;
6、不管是按那个时间粒度分组,CUBE的跑批还是每天跑,只是如果按月分组,每月1号最快,生产的CUEB文件最小,月底最慢,生产的CUEB文件最大;
7、分组跑批最主要解决的是效率问题;
8、写一跑批脚本,更新参数表月份值,调用CUBE跑批;
9、把跑批脚本加入计划任务,每天执行。
10、不管是全量、还是增量按日期分组的方式跑批,每次重新跑批都是重新生产mdc文件的过程;
二、CUBE分区优势
1、最主要的还是觉得效率问题,按时间分区其实就是把一个CUBE分解成很多小CUBE,每次生产指定数据的文件,读数据也少,写cube文件也小,效率当然高;
2、解决CUBE上一些限制,之前看过cognos的官方文档,当个CUBE文件的大小被限制到4G还是8G有点记不清了(这个当然要限制了),否则文件太大,读数据也慢,写文件也慢,曾经在一个客户那三年的数据,上亿条记录,生产一个CUBE文件,4G左右,跑了十几个小时,这样的效率显然不行;后来改成按月分区,每个月份的CUBE文件只有800MB左右,在盘阵跑一次只需要40分钟。
3、由于按照分区会有一个VCD的文本文件,相关一个小CUBE的索引,你可以通过编辑这个文件,挂接指定日期范围的数据;

三、CUBE分区存在的问题
1、首先是分区的模式、原来觉得存在的问题,没跑一个cube就相对书中的一页纸被翻过去了,这个小CUBE中记录了当时跑批的维度和度量,如果后期维度数据发生变化(如机构是分层次了,原来A机构挂在C下面,后来调整了挂在B下面了),后期跑的小CUBE文件是按照新的机构结果跑的,就会导致在RS、AS中看到的数据源部分,机构维度的树有问题,会出现错乱。但是只是显示上错乱,针对每个机构维度上的度量值还是正确的。
2、解决上面的问题必须重新把所有的CUBE文件跑一次。按照IBM的官方说法,COGNOS是一个enterprise solution,确实存在这样的问题,只有重新全跑才能解决显示上的问题;

四、上几个截图,给大家参考:
1、按月份分区跑完CUBE的情况,分别是VCD文件的内容、小MDC文件列表、主目录。

2013-09-06_223330.png


2、按日分区跑完CUBE的情况,分别是VCD文件的内容、小MDC文件列表、主目录。

3、针对机构维度调整了,分区cube跑批出现的显示错乱的情况

必须重新跑批所有CUBE显示出最新的机构,正确的机构层次。

挑战赛.jpg



五、附加一个完整的全量的CUBE设计文档,涵盖了维度、度量的设计、FM的发包、TRANSFORMER建模过程及注意事项。


六、跑批脚本及说明:

Cube_zz.sh:总的调度文件,根据CubeDate.TXT文件的记录数进行循环调度,同时生成update_cube_state.sql文件的更新数据库标志位的语句;
CubeDate.txt:记录日期值,一般由JAVA程序或者自己手动写入,记录跑批的数据日期;
update_cube_state.sh:调用update_cube_state.sql文件,进行数据库表值更新的语句;
Run_Cube.sh:CUBE跑批的脚本,首先把CUBE跑批到create_cube目录下,当跑批完成后,再把相关文件COPY到cube数据源自定的文件中;
2013-09-06
页数39
浏览7899
下载143

已下载用户的评价7.84分

您还未下载该资料,不能发表评价;
查看我的 待评价资源
PrimaPrima软件开发工程师上海2017-06-15
有用
学习学习。
smileqwesmileqwe数据库开发工程师中软2016-07-25
没用
一文不值!
linyunhuilinyunhui软件开发工程师天阳科技2016-07-08
有用
挺有用的,入门必备
sealinksealink技术总监sealink.com2015-09-14
没用
谢谢,希望对大家有帮助
zhang_1983zhang_1983需求分析师北京信息技术有限公司2015-08-21
没用
很好的资源,非常详细,学习了,谢谢推荐
zhang_1983zhang_1983需求分析师北京信息技术有限公司2015-08-21
没用
感谢分享
GeekGeek软件开发工程师公安部交通管理科学研究所2015-07-16
没用
来学习啦
zhzhj_cnzhzhj_cn项目总监万达信息2015-01-04
没用
做的不错,谢谢楼主。
ygnhzxygnhzx软件开发工程师南华2014-12-23
没用
下来学习一下
sealinksealink技术总监sealink.com2014-07-21
没用
不客气

贡献者

sealink技术总监,sealink.com
X社区推广