On 9月9日, 下午5时33分, "王艺团" <theseus.w...@gmail.com> wrote:
> 各位大大:
>
> 作为一名刚入门的bier,在进行数据仓库建模的过程中,产生诸多疑惑,请教各位一下,不知道各位有这些疑惑没有
>
> 1、星型模式/多维模型怎么体现数据仓库的集成?
> 按理说,数据仓库出现的动力,就是因为"信息孤岛",造成同一个实体(?)的信息分散在不同的企业应用里面,所以要进行集成(集成应该说不仅仅是数据的一致性,-还要是全面的,对吧?)
> 那么,星型模式怎么体现出来把数据集成起来呢??
> 比如,超市卖东西,如果是销售部门做销售分析,只分析产品的销售数据,这个应该是部门级的数据集市咯,强调的是对销量相关度量的不同维度/角度的分析,强调的是-多维分析,因此,要用多维模型,放在关系数据库实现,就是星型模式/雪花模式了
> 但是,产品的信息肯定不只有销售啊,还包括购进啊、库存啊、计划啊等等,难道这些也都应每个对应部门建立数据集市/多维模型么?这个时候,不同部门的数据集市也-还是分散的嘛,怎么体现集成呢?这时候还不是数据仓库吧,那如果要升级到数据仓库,怎么组织刚才说的这些数据?
> 数据仓库应该是数据面向主题的抽取、转换、清洗、加载和管理,关键是数据要全面、一致,面向企业范围的,如果用维度模型,我看不出来哪里体现了全面和一致。
>
> 2、主题如何确定?
> 蛮多的书上,讲到主题,都是说"分析的对象",那就是从客户的分析需求出发咯
> 我觉得大部分书上说的主题这个概念更多的是前端展现的概念,如果从业务和客户的需求出发整理出来的主题,就是前端的主题,或者叫展现模型,这时候,用维度模型自-然没有问题的,完全满足多维分析
>
> 而按照本意,主题应该是一个在较高层次上对数据的抽象,注意,是对数据的抽象,不关应用和客户分析需求的啥事,面向主题的数据组织(即数据仓库)应该独立于数据-的处理逻辑的,不管是事务处理逻辑还是分析处理逻辑
1、星型模式/多维模型怎么体现数据仓库的集成?
不要小看星型模式/多维模型哦, 这个概念和数据仓库集成应该不矛盾. 因为dimension可以建立在全局的层次上, 比如calendar表,
肯定是通用的, 比如商品类别表, 这些都是全局性的, 可以和最detail的fact表关联建立一个星形结构, 也可以和一张summary
table建立星形结构.
在我看来, 星形结构主要为方便分析考虑 (部分也为BI实施方便考虑), 和是否全局/部分无关.
2、主题如何确定?
这个可能和你的具体的业务有关系. 比如对于taobao.com来说, 我估计"用户"就是一个主题, "商品"是一个主题, "交易"是一个主
题, "Buyer"也许是一个主题, "Seller"也是一个主题, Revenue是个主题....等等.
主题的确定和公司的业务关系非常密切, 还没有想到统一处理的方法.
On Sep 9, 4:22 am, "王艺团" <theseus.w...@gmail.com> wrote:
> 谢谢gary的回复
>
> dimension建立在全局的层次,这点是没问题,还有些疑问
>
> 我举个例子哈
>
> 销量这个事实,要求有两个dim,客户和产品
> 购进和库存,也要求有两个dim,产品和供应商(同样的产品可能由不同的供应商供应,购入价格也不一样)
>
> 两种情况:
> 1、满足客户已知部分需求:销售部门希望分析不同产品的在哪些客户群体里面卖的最好?公司领导希望有关于存销比(库存周转)方面的决策建议和供应商的评价?
> 2、包容未来的一些需求:做数据仓库,根本的一点就是抓住数据,希望搞出来的数据组织可以支持众多的OLAP需求,比如未来要分析供应商与客户群体的相关性之类-的
>
> 诸如这些,打算如何构建数据仓库?如何建模?
>
> 事实上,我比较迷惑的一点是,数据仓库不一定要为分析服务,对吧?而你说法"在我看来, 星形结构主要为方便分析考虑 (部分也为BI实施方便考虑)"
>
> 我比较坚持以下说法:
> 1、面向主题的数据组织(即数据仓库)应该独立于数据的处理逻辑的(这也是数据库出现的初衷),不管是事务处理逻辑还是分析处理逻辑
> 2、OLTP/操作型数据库就是因为本来描述同一客观实体的数据由于与不同的应用逻辑捆绑在一起而变得不统一,使原本是一个完整的客观实体的数据分散在不同的数-据库模式/应用系统中
> 3、多维模型/星型结构,把数据和分析逻辑绑定在一起了,它会提高某个部门的分析效率,但却让其他部门的分析陷入麻烦(To Gary:dimension的全局是必然的,但无法避免这点,fact是全局的么?)
> 4、数据仓库应该不仅适合于分析型的数据环境,还应该适合于建设企业全局数据库
>
> to raullew & kai ZHANG 张恺
> 谢谢关注,可能是有点"思而不学则罔"了,可是,如果几位大大能直接指出我哪里想岔了,那就更好了。
>
> 2009-09-09
>
> 王艺团

DM/data market(not data minning):
Table_Fact_Sail
Table_Dim_Customer
Table_Dim_Time
Table_Dim_Product
Table_Dim_Supplier
Table_Dim_Region
"中国制造",讲述中国60年往事
另外,在当时建模的过程中,有些可能是技术方面引起的原因,比如我之前提到的,对于同一个分析主题,如果在同一个维度的不同粒度上用不同的度量指标,如何构建fact?
..

DM/data market(not data minning):
Table_Fact_Sail
Table_Dim_Customer
Table_Dim_Time
Table_Dim_Product
Table_Dim_Supplier
Table_Dim_Region
“担心以后又要被客户的分析需求追着跑”,这个担心恐怕是会发生的。要不你提前预计到客户的分析需求,提前应对。要不你就皮厚一点,当客户分析需求追过来的时候,你别跑。想搞出一个大而全的数据仓库,这种想法我想几乎是每个dw建模者,特别是一开始搞的人通常的想法,我认为没有必要。对于那些能够全局理解业务的设计师来说,他们可以有信心去做这种大而全的东西,因为他们心里有底。否则,还是先根据客户的分析需求来,甚至在开始的时候,很多分析需求都没有浮出水面,谁都没底。比如,分析客户要从哪些方面入手?一开始这类分析需求肯定都是简单的,而一旦你的数据能够快速满足这些需求,才会有更加复杂的需求产生,如果你的数据仓库无法满足,再想办法去修正吧,在一开始,你的dw模型迭代个三四次是起码的。至于是搞数据仓库和数据集市,区别这也没多大意义,dw架构类型很多,让这两个概念的区分就很模糊,比如集中式的、联邦式的等等,很多项目将数据集市叫数据仓库,不必要理解数据仓库是揽括企业所有的数据,因为不是还有个词叫EDW嘛,企业数据仓库。也许他们只是在规模,在针对性上有些小小差异而已。在“新型olap的设想”中,没怎么谈到数据仓库,更多是谈到基于dw中统一的数据,如何屏蔽掉常见的多个cube,合成一个大的虚拟cube,以提供一种更好的分析体验。要做到这一步,需要都维度和指标进行规范的管理,至于这种管理是在哪儿,在dw还是dm,无所谓。
以上2点,绝对是我10年的经验,免费赠送给你。 数据仓库项目对技术人员其实最烦的还不是以上这个问题,恰恰是数据质量的问题。
2、这时候发现,一些度量不好处理,表现以下方面:A、同一个主题里面,度量A在高层综合有意义,但在轻微综合没有意义,而公司的产品要求,同一个主题的所有度量必须在最细事实表(我们称之为核心表)存在,因为主题的模型配置这边,聚合导航如果找不到聚合表的话,应该要允许到核心表即席汇总聚合,就想Oracle的查询重写,如果找不到物化视图,那就查询源表了。问题就在这里,既然是即席查询,我们无法控制客户会怎样去查询分析,会怎样的交叉查询,如果客户配置的某个查询没有对应的聚合表,该度量在细节粒度上又没有意义,查询出来的结果也就没意义。当然,上面这个问题,我们有个解决方法,就是设置度量和粒度的互斥,这个本来是好的,问题在于,我们的主题划分似乎很失败,主题范围太大了,度量和力度太多,导致互斥的地方也很多,维护到后来,就有点崩溃了到最后呢,想了一下,如果我们把主题再细分一下,太复杂的查询和分析就是通过跨主题查询分析来实现,可惜当时产品提供的跨主题查询不好,没有太多实践。以上这种情况,兄弟们给点改进意见?主题要如何划分比较合适,才不会产生这些问题?
...
On Sep 9, 9:40 pm, "王艺团" <theseus.w...@gmail.com> wrote:
> 赞一个,谢谢interstage的实用经验,反复咀嚼中~~~
>
> 1、interstage兄建议的最佳实践方法,还是从分析需求出发,赶紧建数据集市,满足最终用户的分析需求~~~~~嗯,现在就是这么做来的
> 2、嗯,数据质量确实是最重要的,强烈同意
> 3、小小的疑问和感概:传说中的数据仓库,与事务处理逻辑和分析处理逻辑无关的数据仓库,真的没法搞?
>
> 2009-09-10
>
> 王艺团
On 9月10日, 下午12时40分, "王艺团" <theseus.w...@gmail.com> wrote:
> 赞一个,谢谢interstage的实用经验,反复咀嚼中~~~
>
> 1、interstage兄建议的最佳实践方法,还是从分析需求出发,赶紧建数据集市,满足最终用户的分析需求~~~~~嗯,现在就是这么做来的
> 2、嗯,数据质量确实是最重要的,强烈同意
> 3、小小的疑问和感概:传说中的数据仓库,与事务处理逻辑和分析处理逻辑无关的数据仓库,真的没法搞?
>
> 2009-09-10
>
> 王艺团
不过你说的那个"传说"的牛人是谁啊?我刚来ttnn两天呢
ps:
今天下午请了Oracle专家来介绍Oracle数据仓库解决方案,在讨论过程中,Oracle专家坚称他以前做过的项目,确实有EDW成功的例子,再
三确定,的确如此。可惜,一个下午时间而已,说下次还会来具体深入讨论,比较期待。
另外,现在在看interstage兄的bifactor.pdf,受益颇多,再次遥致敬意。
对于'整体'的度量(就是那种无法从下一级累计上来的,只能从整体的细节汇总),比如产品数,假设由细节汇总到某区县的销售产品数,接下来要汇总地市,
肯定-不能将区县的数据累加。
> > > 以上2点,绝对是我10年的经验,免费赠送给你。 数据仓库项目对技术人员其实最烦的还不是以上这个问题,恰恰是数据质量的问题。- Hide quoted text -
>
> - Show quoted text -
On 9月11日, 上午9时36分, xichengmyl...@gmail.com wrote:
> 如果传说中的那个牛人出来了,这个帖子的长度会增加一倍的!!!
>
> 在09-9-10,王艺团 <theseus.w...@gmail.com> 写道:
> > > ODS-EDW-CDW-DM的4大组件来实现的,楼主可以向他请教,应该有所收获。- 隐藏被引用文字 -
>
> - 显示引用的文字 -
先发几句牢骚,公司是烟草的第三产业,60年国庆+中秋到了,天天被抓去唱歌,搞“爱国歌曲大家唱”~~~都没法干活了,所以早早看到daiyan童鞋
的精彩发言,到现在才回复哈
以下正式回复和疑问:
1、daiyan童鞋的观点也是走实用的路子,嗯,做应用不是做产品,客户需求才是最最重要需要考虑的,所以从客户的分析需求出发,走维度建模;
2、“分析主题概念”--赞,不是我咬文嚼字啊,我觉得对于维度建模来说,数据仓库面向主题的特性中的主题,说成分析主题更贴切点哈;到目前为止,我所
理解的“传说”中的数据仓库应该是与任何事务逻辑、分析逻辑无关的,所以它的主题应该仅仅是数据本身的概念上的划分(不过,说实话,我也讲不太清楚,因
为我说了哈,“传说”,我不知道是不是存在);我只是觉得,数据库是信息的集合,它关注信息的存储,而不关注信息是怎么使用,如果信息为满足某种处理而
优化、重组,那么OLTP和OLAP,从本质上来说,是没有啥区别的,都是把数据组织成对各自的处理来说是最优化的,那么,假设将来,又有新的类型的处
理呢?
3、但是,从应用开发和商业软件来说,满足客户需求才是最重要的,就是前辈说的“应该赶紧烧掉书,投入实际的开发”和daiyan兄说的“考虑的极其重
要因素是产出品的服务级别协议....我们所要达到的朴素而关键的目标”,这个时候,维度建模是最佳的选择。
4、daiyan兄说到“ 对建模过程的设计和定义也非常关键”和“自己设计了一套建模的标准和产出物模板”,不知道介意多多介绍一下这个不?非常关
注,很希望有操作性比较强的建模过程的指导。
daiyan wrote:
> 关于维度建模,我也琢磨了一套方案,吸收了众多同事和已有项目的众多经验,还有理论界的和行业模型的诸多观点,也包括从ttnn得到的启发----思索方案那段时间,在这里发帖了,其中一句话,出现在了下面。这几天看着这个帖子的讨论得热火朝天,我只能抑制住心中的激动,因为,现在正在天天加班实施那套维度建模方案,可紧张了!
>
> 待过一阵有个相对安静的时间,再回头来总结一下,其中的核心思想----对于一个需要在特定背景下在特定时期特定环境中实施的方案,需要考虑的极其重要因素是产出品的服务级别协议,也即我们产品的KPI指标----譬如"时效"和"准确性"这些我们所要达到的朴素而关键的目标。
>
> 第一是明确建模的目标。维度建模更多地归向了应用层次,和需求的分析主题挂钩,所以维度建模容易形成一种直通式模型----即围绕具体的分析主题(或者报表,指多维分析报表,在此处等价于分析主题概念)建立模型,相同的事实会被重复、多次获取,存放到数量众多的事实表中等。
>
> 直通式模型在现应用中应该是广泛存在的。这个模型的好处是各个报表数据准备流程的耦合度低,某个程序出问题的时候不至于影响一大片。但我觉得问题更是显而易见,而且这中模型的缺陷是本质上的缺陷,是必须从数据建模方案的高度来克服的。
>
> 关于维度建模的目标,我下了一个定义,原文为了严谨,比较冗长,这里不太方便发布(有点给隔靴瘙痒了,多原谅),核心思想就在于
> 把握数据的业务本质和业务分析的过程,对这个过程建立集成、一直的模型,保证事实一致性和维度一致性(我的观点是,维度一致性可不是都引用同一个维表就可以美其名曰了,真正的核心在于维度键值计算的一致性----这个可以算是方案中的一个大挑战了),并对ETL架构和方案友好,达成关于时效和准确性方面的服务级别协议约定,提供对业务规模和种类的扩展性支持(扩展性也不能过于苦苦追求)。