对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至有人把Inmon和Kimball之争称之为数据仓库界的“宗教战争”,那么本文就通过对两位提倡的数据仓库体系和市场流行的另一种体系做简单描述和比较,不是为了下定义那个好,那个不好,而是让初学者更明白两位数据仓库鼻祖对数据仓库体系的见解而已。 首先,我们谈Inmon的企业信息化工厂。
2000年5月,W.H.Inmon在DM Review杂志上发表一篇文章,里面写到一句话“......如果明天非得设计一个数据集市,我将不考虑使用其他的方法”;正是揭示了他的企业信息化工厂的特点。下图是关于他的企业信息化工厂的架构图:
我们理解一下这个体系架构,左边是操作型系统或者事务系统,里面包括很多种系统,有数据库在线系统,有文本文件系统...等等。而这些系统的数据经过ETL的过程,加载数据到企业数据仓库中,ETL的过程是整合不同系统的数据,经过整合,清洗和统一,因此我们可以称之为数据集成。
企业数据仓库是企业信息化工厂的枢纽,是原子数据的集成仓库,但是由于企业数据仓库不是多维格式,因此不适合分析型应用程序,BI工具直接查询。他的目的是将附加的数据存储用于各种分析型系统。
数据集市,是针对不同的主题区域,从企业数据仓库中获取的信息,转换成多维格式,然后通过不同手段的聚集、计算,最后提供最终用户分析使用,因此Inmon把信息从企业数据仓库移动到数据集市的过程描述为“数据交付”。
接下来我们来看Kimball的维度数据仓库:
kimball的维度数据仓库是基于维度模型建立的企业级数据仓库,它的架构有的时候可以称之为“总线体系结构”,和inmon提出的企业信息化工厂有很多相似之处,都是考虑原子数据的集成仓库;我们来根据下面的架构来分析他的观点:
虽然初看两个图有很多不一样的地方,但是这两种结构有很多相似之处:一,都是假设操作型系统和分析型系统是分离的;二,数据源(操作型系统)都是众多;三,ETL整合了多种操作型系统的信息,集中到一个企业数据仓库。
当然如果去区别他们的不同,最大的不同就是企业数据仓库的模式不同,inmon是采用第三范式的格式,而kimball则采用了多维模型--星型模型,并且还是最低粒度的数据存储。其次是,维度数据仓库可以被分析系统直接访问,当然这种访问方式毕竟在分析过程中很少使用。最后就是数据集市的概念有逻辑上的区别,在kimball的架构中,数据集市有维度数据仓库的高亮显示的表的子集来表示。
当然有的时候,在kimball的架构中,有一个可变通的设计,就是在ETL的过程中加入ODS层,使得ODS层中能保留第三范式的一组表来作为ETL过程的过度。但是这个思想,Kimball看来只是ETL的过程辅助而已。另外,还可以把数据集市和企业维度数据仓库分离开来,这样多一层所谓的展现层(presentationlayer),这些变通的设计都是可以接受的,只要符合企业本身分析的需求。
最后一种是独立型数据集市,来自市场的实施过程被广泛使用,下面是独立型数据集市的架构:特点是非常简单,容易实现,而且实施时间段。但是最大的问题是,由于快速的实施,廉价的过程,导致长期费用的提供和效率的低下。
开发一个独立的数据集市是获得可见结果的最有效的方法,因为不需要做跨部门,跨功能的分析,并且数据集市可以很快投入到生产中,因此能够迅速和廉价地获得结果,所以很多机构应用这种方法。而且很多ERP集成商的系统中也自带了类似的功能作为一个卖点来吸引客户。虽然它有很多有点,但是最致命的缺点,短期的成功却带来长期的棘手问题。特别是独立型数据集市支持多主题区域时,会导致多个部门数据不一致,就是数据打架的现象。并且使得各个数据集市成为信息孤岛,缺乏兼容性。因此这种方案很多时候是不可接受的。
通过本文的简要的介绍3种体系结构,希望能帮助你准确的理解数据仓库的体系结构和实施方法。
- 浏览: 1052926 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
发表评论
-
CDH与原生态hadoop之间的区别
2017-07-26 12:45 995需要认识的几个问题 ------------------- ... -
Cloudera的CDH和Apache的Hadoop的区别
2017-07-26 12:49 577目前而言,不收费的Hadoop版本主要有三个(均是国外厂商) ... -
大数据、云计算系统高级架构师课程学习路线图
2017-07-24 17:10 599大数据、云计算系统高级架构师课程学习路线图 大数据 ... -
Oozie简介
2017-07-24 12:17 1067在Hadoop中执行的任务有时候需要把多个Map/Reduc ... -
清理ambari安装的hadoop集群
2017-07-24 11:29 928本文针对redhat或者centos 对于测试集群,如果通 ... -
hawk大数据基础知识总结(2)
2017-05-13 15:13 514hawk 英[hɔ:k] 美[hɔk] n. 鹰; 霍克; ... -
hawk大数据基础知识总结(1)
2017-05-13 14:41 797一、大数据概述 1.1大 ... -
ambari是什么
2017-05-11 19:52 649Apache Ambari是一种基于Web的工具,支持Apa ... -
Hive的meta 数据支持以下三种存储方式
2017-05-04 13:48 904测试环境下Hive总出问题 ... -
大数据要学习知识
2017-05-02 17:18 49301 技术层面 1.紧贴 ... -
Spark Streaming简介
2017-05-02 16:28 7481.1 概述 Spark Streaming 是Spark ... -
pentaho套件
2017-04-28 15:52 833有人统计过,在整个数据分析过程里,收集、整理数据的工作大致占全 ... -
Impala:新一代开源大数据分析引擎
2017-04-22 10:48 730大数据处理是云计算中非常重要的问题,自Google公司提出M ... -
Weka是什么
2017-04-10 13:17 1073Weka的全名是怀卡托智 ... -
解密Apache HAWQ ——功能强大的SQL-on-Hadoop引擎
2017-04-10 12:04 841一、HAWQ基本介绍 HAWQ ... -
Kettle的使用
2017-04-06 12:11 600Kettle是一款国外开源 ... -
clouder manager端口7180没有打开为什么
2017-03-27 10:56 1186修改 clouder-manager.repo新建内容我们需要 ... -
Impala与Hive的比较
2017-03-19 13:09 7891. Impala架构 Impala是Clo ... -
Cloudera Manager、CDH零基础入门、线路指导
2017-03-19 12:53 1268问题导读:1.什么是cloudera CM 、CDH?2.C ... -
DB、ETL、DW、OLAP、DM、BI关系结构图
2017-03-17 10:10 732DB、ETL、DW、OLAP、DM、BI关系结构图 ...
相关推荐
他认为,良好的数据质量管理不仅能够提高数据仓库数据的准确性,还能够增强数据的可信度和可靠性。 安全性也是Inmon在构建数据仓库时考虑的重要方面。随着数据仓库中存储的数据越来越多,数据安全性问题日益凸显。...
一本学习数据库的好书,大家可以看看
在这个压缩包中,我们很可能会找到Inmon关于数据仓库理论与实践的详细讲解。 1. **数据仓库的定义**:数据仓库是一个系统,用于报告和数据分析,它是从各种操作数据源中集成的数据集合。与常规操作数据库不同,数据...
数据仓库体系架构、主要过程与技术介绍 数据仓库是一门用来支持管理决策的数据集合,其核心思想在于整合大量分散的、异构的、动态变化的数据,转换为信息丰富、稳定且面向主题的数据仓库。数据仓库的体系架构在设计...
一本学习数据库的好书,大家可以看看
数据仓库 ,由数据仓库之父比尔·恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,...
与Inmon方法相比,Kimball数据仓库设计采用维度建模技术,强调的是业务指标和事实的表示,以及易于理解和使用的多维数据库或关系数据库。维度设计关注业务的KPI(关键绩效指标),而度量设计则涉及具体的数值计算。...
数据仓库建模与数据分析是企业信息化过程中的关键环节,它涉及到数据仓库的架构设计、粒度选择、维度建模以及数据的转换与分析。在这个关卡中,我们主要讨论了三种常见的数据仓库架构,粒度和维度的概念,并进行了...
在实践中,企业需要权衡数据仓库和数据湖的优缺点,考虑数据治理、安全性、性能和成本等因素,制定符合业务场景的数据架构策略。例如,对于需要高效事务处理的场景,数据仓库可能是更好的选择;而对于需要灵活分析和...
### 数据仓库的基本架构与实现 #### 四、数据仓库架构 数据仓库的架构主要包括以下几个方面: 1. **数据源**:包括企业内部的各个业务系统以及外部数据源。 2. **数据集成层**:负责从各种数据源抽取数据,进行...
数据仓库是信息技术领域中的一个重要概念,它主要用于存储和管理企业级的数据,以便进行高效的数据分析和决策支持。数据仓库的设计通常遵循OLAP(在线分析处理)原则,与传统的在线事务处理(OLTP)系统有所不同。...
Bill Inmon 被誉为“数据仓库之父”,他提出的企业级数据仓库模型强调的是从顶层架构设计入手,自上而下的构建方式。Inmon 认为企业级数据仓库应该具备以下特点: - **主题导向**:数据按业务领域或主题进行组织。 ...
一本学习数据库的好书,大家可以看看
一本学习数据库的好书,大家可以看看
数据仓库是一种专为数据分析和决策支持服务的系统,它与传统的事务处理系统有着显著的区别。在事务处理系统中,数据是实时更新的,注重高效快速地处理单个事务,而在数据仓库环境中,数据是静态的,主要用于数据分析...
Inmon 和 Kimball 两位专家对 ODS 的定义略有不同,但都强调其在数据整合和预处理中的角色。 2. **3NF(第三范式)数据仓库建模**:3NF 建模是一种基于关系数据库理论的方法,它遵循数据库设计的标准范式,确保数据...