数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。因此数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层——源数据、数据仓库、数据应用:
从图中可以看出数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自上而下流入数据仓库后向上层开放应用,而数据仓库只是中间集成化数据管理的一个平台。
下面主要简单介绍下数据仓库架构中的各个模块,当然这里所介绍的数据仓库主要是指网站数据仓库。
1、数据仓库的数据来源2、数据仓库的数据存储3、数据的聚合4、多维数据模型5、业务模型6、数据仓库的数据应用7、报表展示8、即席查询9、数据分析10、数据挖掘11、元数据管理
最后做个Ending,数据仓库本身既不生产数据也不消费数据,只是作为一个中间平台集成化地存储数据;数据仓库实现的难度在于整体架构的构建及ETL的设计,这也是日常管理维护中的重头;而数据仓库的真正价值体现在于基于其的数据应用上,如果没有有效的数据应用也就失去了构建数据仓库的意义。
而数据仓库是一种体系结构,而不是一种技术。数据仓库最为核心的内容分类两部分:
- 基于关系数据库的多维建模(RDBMS-based dimensional modeling)
- 基于数据立方体的 OLAP 查询(cube-based OLAP)
数据仓库体系结构包含了从外部数据源或者数据库抽取数据的 ETL 工具。ETL 还负责数据的转换,清洗,然后加载到数据仓库的存储中。一般来说,数据都会加载到存取速度较慢的存储中,以原始数据的方式保存下来。
为了提高查询效率,原始数据会按主题分类,以聚合的方式存储到数据集市中,称之为聚合数据。
数据湖架构
Pentaho 的 CTO James Dixon 在 2011 年提出了 “Data Lake” 的概念。在面对大数据挑战时,他声称:不要想着数据的 “仓库” 概念,想想数据 的 “湖” 概念。数据 “仓库” 概念和数据湖概念的重大区别是:数据仓库中数据在进入仓库之前需要是事先归类,以便于未来的分析。这在 OLAP 时代很常见,但是对于离线分析却没有任何意义,不如把大量的原始数据线保存下来,而现在廉价的存储提供了这个可能。
Nearly unlimited potential for operational insight and data discovery. As data volumes, data variety, and metadata richness grow, so does the benefit.
形象的来看,如下图所示,数据湖架构保证了多个数据源的集成,并且不限制 schema,保证了数据的精确度。数据湖可以满足实时分析的需要,同时也可以作为数据仓库满足批处理数据挖掘的需要。数据湖还为数据科学家从数据中发现更多的灵感提供了可能。