请问一般cube处理更新的常用方式以及优化方法

0
    目前手里有一个cube,数据时间为11年至今,但数据量较大,约四百多GB,cube处理时间也不稳定,最少处理时间为2.5小时,最长可达4小时(同样的架构),小弟感到迷惑,相差为何会如此巨大。
    近段时期,cube处理频繁会出现处理某个分区会报查询超时的错误,导致整个cube更新失败。对此十分苦恼,一般此情况下再次发布会成功,但是这样就是很耽误时间。
(0.)在dsv中是以SQL语句建立【命名查询】虚拟表的,但更新cube时候常常会查询超时,最近才出现此现象,大咖们是否有遇到过?
小弟查询资料后,找到“处理更新、处理数据、处理索引”等方式可以配合的搭配使得增量更新cube,之前我cube采用的均为ProcessFull方式,这样的全删全insert形式确实很费资源以及时间,特此请教各位,
(1.)采用类似于:
QQ截图20151102153156.jpg

这样的方式能够完成我的需求呢?即:
量值采用【处理数据】方式,相关维度均采用【处理更新】
业务数据为近期历史数据会改变的数据,入近两周或一月中历史数据会发生改变。
采用以上的方式能够实现增量更新吗?小弟自己本机测试,貌似可以更新量值和维度,但担心实际大量数据时效率低下或者数据遗漏会~~
(2.)此外这样更新后((1)的方式)是否需要对整个cube再执行一次【处理索引】呢?
(3.)这样的数据是否可以做cube分区呢?具体怎么设置呢?
请大咖们为小弟解解迷惑,小弟万分感激~~~~~
已邀请:
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-11-02 回答

首先给你的Fact建立分区体系,每次增量的Process你的Cube.
然后确保你的Dimension量不要超过50W, 否则Process会很慢。 如果超过了,就要考虑是不是设计问题
其次是你的计算量值,Distinct Count的计算尽量要少
最后处理索引这个不需要太频繁

要回复问题请先登录注册