zoukankan      html  css  js  c++  java
  • 数据仓库中的一些争议之我见(一)

            Ralph Kimball的dimensional modeling 为基础的结构和Inmon的以ER model为基础的结构是当前数据仓库的两种主流理论. Ralph经常在他的著作中提到一些对数据仓库的misunderstanding,很明显都是针对Inmon的理论,而Inmon的支持者们也经常指责dimension模型的不足.事实上,两种理论对数据仓库的定义和理解就不同,这也是双方结构差异和互相指责的根源所在.

           从功能上看,KIMBALL的数据仓库理论强调面向整个企业级别的业务流程主题,例如定单系统,支付系统. 每个系统构成独自的数据集市,由事实表(由度量类属性如价格和维表外键组成)和维表(各种维度如时间,各自按照不同级别组成)构成.这些数据来源于DBMS,经过ETL(EXTRACT,CLEAN,CONFORM,DELIVER)过程,存放在数据集市中.,然后供使用者查询. 而INMON的结构更倾向着眼于AD HOC查询和数据挖掘等更广泛的应用. 他将所有的数据经过ETL过程后,进行3NF的NORMALIZE,作成一个企业级的数据仓库(EDW),使用者可以直接对这个数据仓库进行查询,也可以查询从这个数据仓库得到的数据集市. 这个结构能更灵活的应对各种BUSINESS QUESTION. 

           由于这种理念的不同,自然导致双方所设计的结构差异.举例来说,KIMBALL提到过的对数据集市概念的MISUNDERSTANDING,见下表

    CORRECT DEFINITION        MISGUIDED DEFINITION
    Process Based                           Department Based
    Atomic Data Foundation            Aggregated Data Only
    Data Measurement Based          User Question Based

    他认为"Our data marts (call them dimensional data marts) look the same to all observers and would be implemented identically by anyone with access to the underlying measurement events. Furthermore, since dimensional data marts are always based on the most atomic data, these data marts are impervious to changes in application focus; by definition, they contain all the detail that is possible from the original sources. Data marts constructed according to the misguided definitions will be unable to handle changing business requirements because the details have been presummarized."

    事实上他所说的这种MISGUIDED DIFINITION往往都是来自于EDW的设计,他们的数据集市只是针对AD HOC查询所产生的,和KIMBALL的有本质不同.同时由于有EDW的存在,在这种数据集市中"Aggregated Data Only
    "和"Department Based"也就无所谓不足了,因为根据用户的需要,可以随时从EDW中生成新的数据集市.

    简单来说,KIMBALL的体系由于不需要通过JOIN等动作,即时生成大量的表,而大大的提高了响应速度,但有个重要前提,就是这些查询是在预先已知范围内的,否则他的系统将无能为力. 而ER MODEL为基础的EDW,则由于ER固有的特性,首先提供了数据的一致性(CONSISTENCY), 以及减少了冗余(REDUNDANCY). 由于它是整个企业级别的数据仓库,并且可以直接供终端用户查询,因此对与数据挖掘等有很大的价值.此外,它能针对各种AD HOC查询,提供更好的灵活性,缺点是由于需要即时的JOIN各个表,因此会耗费更多的时间.

    从个人角度,我认为更强大和灵活的功能比响应速度更重要,因此倾向于INMON的模型.

    参考资料:
    Kimball, R., & Caserta, J. (2004) "Chapter One: Surrounding the Requirements" in The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleaning, Conforming, and Delivering Data., (pp. 1-28), Wiley.

    Kimball, R. and R. Margy (2002) The Data Warehouse Toolkit : The Complete Guide to Dimensional Modelling (Second edition) John Wiley & Sons.

    Inmon, W.H. (2000) Definition of a Data Warehouse White paper, www.billinmon.com

    Armstrong, R. "Rebuttal to Ralph" NCR White Paper, 1997


    (未完待续)
  • 相关阅读:
    Java多线程系列 JUC锁03 公平锁(一)
    Java多线程系列 JUC锁02 互斥锁ReentrantLock
    JDBC课程3--通过ResultSet执行查询操作
    JDBC课程2--实现Statement(用于执行SQL语句)--使用自定义的JDBCTools的工具类静态方法,包括insert/update/delete三合一
    JDBC_通过DriverManager获得数据库连接
    JDBC课程1-实现Driver接口连接mysql数据库、通用的数据库连接方法(使用文件jdbc.properties)
    [终章]进阶20-流程控制结构--if/case/while结构
    MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子
    MySQL进阶18- 存储过程- 创建语句-参数模式(in/out/inout-对应三个例子) -调用语法-delimiter 结束标记'$'- 删除/查看/修改-三个练习
    SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量
  • 原文地址:https://www.cnblogs.com/rhett/p/54448.html
Copyright © 2011-2022 走看看