多维模型发生异常(变更或错误)如何进行处理?

当多维模型的事实表或维表产生异常(例如业务希望新增度量、新增维度、维度层级发生变更、维值变化、或事实表数据出现错误,往往涉及到多维cube的重新生成,应当如何进行处理?


参与7

3同行回答

白帝舞剑行白帝舞剑行IT顾问IBM
回复 1# julian1983 鉴于这些问题我们可以一个一个的说明新增度量:首先要判断这个新增的度量值在我们之前的模型中是否已经cover到,如果有,直接取用就好。其次我们要根据我们的数据仓库集市层模型的设计方式去判断如果事实表为‘窄表’,只需ETL将这个新的度量抽取到这个‘窄...显示全部
回复 1# julian1983

鉴于这些问题我们可以一个一个的说明新增度量:
首先要判断这个新增的度量值在我们之前的模型中是否已经cover到,如果有,直接取用就好。
其次我们要根据我们的数据仓库集市层模型的设计方式去判断
如果事实表为‘窄表’,只需ETL将这个新的度量抽取到这个‘窄表’即可。
如果为‘宽表’可能还需要考虑是否需要新增事实表,或者在原有的事实表中重新增加字段。
维值变化(缓慢变化维)
1、当某个维度成员的数据发生变化时,最新的列值将覆盖以前的维度记录,从而清除了该维度成员的历史记录
这种处理最简单,但是将会导致分析结果的失真,直接的表现就是将销售员在原来部门的销售业绩带入到新的部门中
2、当某个维度成员的数据发生变化时,最新的列值将存储为维度中的新记录,从而提供了一个维度成员的多个实例,这样便保留了历史记录
会产生的问题:当一个销售员由部门A调入部门B,在调回部门A的时候,就会一个销售员出现在部门A中两次的情况。
3、当某个维度成员的列数据发生变化,而数据仓库要保留该变化列的最后一个版本时,原始数据将移到该维度记录的最后一个版本列中,并且所有新维度信息将覆盖现有列。
可能会涉及到动态改变数据仓库模型,这样会带来比较大的开销,所以在实际的数据仓库实现中并不经常使用
事实表数据出现错误
如果是事实表中出现了数据错误,通常我们的做法是先修正数据,再重新刷数(全量和增量两种方式)。
但我们常常遇到的场景是,我某月的数据进行了调整,cube需要去更新为调整后的数据。
鉴于这种情况,如果采用全量刷新的方式,会比较慢。
我们可以采用增量刷新的方式来快速解决这种问题。(请参考下面帖子)
http://www.cognoschina.net/club/thread-98269-1-1.html
http://www.cognoschina.net/club/thread-98287-1-1.html
新增维度
维度就是业务的角度,新增维度的操作其实与需求变更一样。
同理:如果原本的数据仓库是可以cover新维度的话,直接取用就好。如果cover不到,就得重新进行需求梳理,是否业务部门开拓了新的业务,
          增加了新的视角(维度)可以通过覆盖新业务新增加需求的方式来进行梳理开发。
收起
软件开发 · 2015-07-30
浏览865
慕名而来慕名而来软件开发工程师中科软
简单来说:"新增度量、新增维度、维度层级发生变更" 这些变更不只是重新刷/CUBE的问题. 模型本身就要做出对应调整.一般来说会对数据进行全量更新."维值变化或事实表数据出现错误" 前者.如果 在生成CUBE时,没有选择保存维度视图.那它会自动把增减的维值更新进来. 后者方法...显示全部
简单来说:
"新增度量、新增维度、维度层级发生变更" 这些变更不只是重新刷/CUBE的问题. 模型本身就要做出对应调整.一般来说会对数据进行全量更新.
"维值变化或事实表数据出现错误" 前者.如果 在生成CUBE时,没有选择保存维度视图.那它会自动把增减的维值更新进来. 后者方法同楼上,排除问题,然后更新CUBE.收起
政府机关 · 2015-07-30
浏览882
白帝舞剑行白帝舞剑行IT顾问IBM
回复 3# 慕名而来    老胡,87V5显示全部
回复 3# 慕名而来


   老胡,87V5收起
软件开发 · 2015-07-30
浏览825

提问者

julian1983
需求分析师厦门银行

相关问题

相关资料

问题状态

  • 发布时间:2015-07-30
  • 关注会员:1 人
  • 问题浏览:2356
  • 最近回答:2015-07-30
  • X社区推广