维度建模的一些问题

29 views
Skip to first unread message

王艺团

unread,
Oct 20, 2009, 11:33:25 PM10/20/09
to ttnn BI 观点
经过比较‘漫长’的、迷迷糊糊的、艰难的架构选型,尤其是数据仓库建模选型,收集完需求,开始乖乖的搞

维度建模啦,在此,先感谢ttnn各位童鞋的支持,从各位的讨论和以往的帖子里面,收获很多。

在扔出具体的维度建模问题之前,先说一个比较郁闷的情况,作为网络时代的BI菜鸟,有问题,我肯定是先

请教baidu和google老师的,问题是找到了些蛮好的blog和bbs,发现都不怎么更新了,比如dwdmstudio(自在

空间)、Jerome(chinabi)等等,真是郁闷啊-----不过,从他们的blog里面,都能找到ttnn的影子哈,嘿嘿,对

ttnn更加膜拜了-----这些情况是不是说明啥问题啊?有人告诉我BI碰上寒流啦?

以下为我的问题:
1、一些比较特殊的事实如何建模?
A、半加性事实
Kimball的《数据仓库工具箱》说采用平均算法,里面还举了一个银行日平均结余额的例子,没看明白

,因为根本不懂银行业务,哪位知道的,帮忙看下。
我现在碰到的例子有两个:
一个是库存,库存在时间维上不是可加的,我们以前的方法是在前台的数据存取工具处理,取查询区间

的期末值或者期初值,问题是我们现在用SAP的BO,没看到BO哪里支持这种。
第二个是品牌数,品牌数应该是完全不可加的,比如9月1日订了5个品牌,9月30日订了6个品牌,那么9

月订了并不是5+6=11个品牌,这种在《数据挖掘:概念与技术》一书中称之为“整体聚集函数”(在这本书里面

,对度量的定义为:一个关于各维度的数值函数,分为三种类型:分布的<比如销量>、代数的<比如均价>、

整体的),不知道大伙是怎么处理的?

B、日期相关的特殊事实
比如,上期、同期、本期累计等等,以前的处理方式有两种,一种是我们自己开发的展现工具本身支持

这种特殊事实,说穿了,就是行转列的把戏,性能可能有点影响;另外一种,就是预处理,增加上期、同期

、累计的事实项,维度建模的方案应该就是这种吧?不过,看起来有点笨拙哈,数据量可能会增加不少,但

是性能还是不错的。

C、计量单位转换
之前我们用的自己开发的展现工具,支持计量单位的自动转换,就是在注册事实<相当于BO语义层>时

,指定计量单位,计量单位有单独的换算管理,不过,这个要依赖前端工具,BO好像也不支持吧?《维度

建模工具箱》里面提到的转换因子,不明白怎么用?

2、聚集、粒度、总线结构
【这个很迷惑,期待大家多多指教】
聚集的目的和重要性毫无疑问,但是,如果有不同粒度的聚集事实表,维表是不是也要有响应的粒度?

比如,按天的事实表关联的日期维是按天粒度的,如果事实表汇总聚集到月粒度,也要弄个月份维表出来了

吧?
问题在于,明细的核心事实表和聚集事实表可以有个聚集导航产生关联,不知道日期维表和月份维表又

是怎么关系呢?维度建模的总线矩阵要怎么填?总不能说聚集之后的算是一个新的模型吧??
还有,一致性维度可以保证我们执行drill across(交叉探查,跨模型?跨主题?)的准确性。举个例子,

购销存的例子,购进模型(采购部门需要)和销售模型(营销部门需要)的细节粒度肯定不一样,但是,两

个都可以聚集到品牌这个一致性维度来进行交叉探查,请问一下,是否有必要独立建一个购销存模型,把购

进、销售和库存合并到同一张事实表?
还有一个比较特殊的例子,之前《指标分解》里面有人提到的,我们做的计划一般都是半年,但是销

售肯定是一天天的嘛,如果有这样一张报表,希望按照月份的约束条件查询,得到以下效果:
4月销售 1-4月累计销售 上半年计划 计划进度(%)
如下样式的报表,各位童鞋,怎么处理?

ps:以上问题我已经想了蛮久了,手里的资料也在查,因为时间比较紧,所以就放出来问问大伙,希望大

伙儿不吝赐教哈。
如果大伙儿没时间详说,给俺指条路子更好,现在已经不是埋头努力实践的问题了,是需要有人指个方向哈

,谢谢大伙儿。

大伙儿如果有类似的经历,又有整理的资料,不妨大方给一份哈
如果有哪些能解决这些的site,大伙儿也指点下。
花了一个早上写了这些,先吃饭去

xichen...@gmail.com

unread,
Oct 21, 2009, 4:16:56 AM10/21/09
to tt...@googlegroups.com
1 品牌是不是可以订了5个品牌就把一条记录分拆成5条记录。每条记录记载某个具体品牌
2 关于聚集月是不是也要搞一个维度表,那本master data warehouse aggregate有讲,里面的说法是要搞一个单独的月度维度表。至于导航也有讲,你可以参考一下。

 
2009/10/21 王艺团 <theseu...@gmail.com>

王艺团

unread,
Oct 21, 2009, 4:27:48 AM10/21/09
to ttnn BI 观点
1、品牌是不是可以订了5个品牌就把一条记录分拆成5条记录。每条记录记载某个具体品牌
---这样子的话,就只能每次都查询明细事实(订单条目)咯,性能受到很大限制

2、那维度建模的总线矩阵要怎么填?聚集的事实表和维表与原先明细粒度的事实表和维表是什么关系呢?

innovate511

unread,
Oct 21, 2009, 10:39:56 AM10/21/09
to ttnn BI 观点
数据仓库建模有一套技术,不过核心内容还是看业务。书上说的建模要先确定主题,所以LZ现在得考虑建立购、销、存主题后,是否建立综合主题,建立综合主
题是否符合条件,作用是什么,都得先研究清楚。

要在维度模型中建立并不难,比如商品、组织单位、时间,都是可以统一定义的,但这样的分析作用并不是很大。最重要的是将商品生命周期从业务单据能否
连成一条线,这样你可以分析整个供应链,而供应链对于大多数商品销售型企业来说才是最有价值和难度的分析综合主题。

首先得考虑当前的信息化系统是否支持供应链综合分析,如果单据运转到一个阶段后,你就不知道这些商品以后怎么处理的了,那就只能部分综合分析,如存销分
析、商品周转分析或购存分析。其次供应链打通的目的是什么,核心用户对供应链想解决什么样的业务问题,帮助其决策和指导操作。

这样的模型才能衍生出很多高价值信息和知识,比如发现销售及时发现异地调拨补货,以及过程中是否及时审批,是否达到生产预警点,是否需要改进某些商品结
构等等。单纯维度模型的组合产生不了太多额外价值,高价值衍生信息和知识需要从基础业务模型在数据仓库中链起来,再计算出来形成新的维度模型,然后与统
一维度构造成新的主题模型。

xichen...@gmail.com

unread,
Oct 25, 2009, 10:04:55 PM10/25/09
to tt...@googlegroups.com
赞同,整个链条结合起来分析,可产生的价值更大,意义也更大。真正能够做到的,我想对大多数公司都是很有价值的。

2009/10/21 innovate511 <innov...@gmail.com>
Reply all
Reply to author
Forward
0 new messages