作者的原创文章,转载须注明出处。原创文章归作者所有,欢迎转载,但是保留版权。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。

大数据数据仓库架构设计基础概念和设计思想整理

一、ODS层
ODS 全称是 Operational Data Store,一般对应的是操作性数据存储,直接面向主题的,也叫数据运营层,通常是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就是通常说的 ETL 之后的数据存入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。但是,这一层面的数据却不等同于原始数据。在源数据装入这一层时,要进行诸如去噪(例如有一条数据中人的年龄是 300 岁,这种属于异常数据,就需要提前做一些处理)、去重(例如在个人资料表中,同一 ID 却有两条重复数据,在接入的时候需要做一步去重)、字段命名规范等一系列操作。

ODS包括的是当前或接近当前的数据,ODS反映的是当前业务条件的状态,ODS的设计与用户或业务的需要是有关联的。

ODS中的数据具有以下4个基本特征:
① 面向主题的:进入ODS的数据是来源于各个操作型数据库以及其他外部数据源,数据进入ODS前必须经过 ETL过程(抽取、清洗、转换、加载等)。

② 集成的:ODS的数据来源于各个操作型数据库,同时也会在数据清理加工后进行一定程度的综合。

③ 可更新的:可以联机修改。这一点区别于数据仓库。

④ 当前或接近当前的:“当前”是指数据在存取时刻是最新的,“接近当前”是指存取的数据是最近一段时间得到的。

ODS的目的:
(1)实现企业级的OLTP操作:

传统的操作型数据库往往只存放企业某一类业务或者某一个部门的数据,因此无法面向企业全局数据的OLTP,而ODS可以实现。因为ODS的数据是面向整个企业进行集成汇总的,克服了原来面向应用的操作型数据库数据分散的缺陷。

(2)实现即时的OLAP操作:

在数据仓库上进行OALP,往往由于数据量十分庞大而需要较长的时间。而在企业实际应用中,对于一些较低层次的决策,往往并不需要太多的历史数据,可能只需要参考当前的或者接近当前的数据就可以完成,并且要求具有较快的响应时间,因此数据仓库显然无法满足这样的要求,但是ODS可以实现。ODS中不仅有面向企业全局的细节数据和汇总数据,而且规模比数据仓库小,具有较强的实时响应能力。

数据分析的概念:

OLTP:On-Line Transaction Processing联机事务处理过程(OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

OLAP:OLAP展现在用户面前的是一幅幅多维视图。

联机分析处理的概念:

维(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。

维的层次(Level):人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年)。

维的成员(Member):维的一个取值,是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)。

度量(Measure):多维数组的取值.

OLAP的基本多维分析操作有钻取(Drill-up和Drill-down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)等。

钻取:是改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)。Drill-up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill-down则相反,它从汇总数据深入到细节数据进行观察或增加新维。

切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。

旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。

OLAP是以数据仓库为基础的,其最终数据来源与OLTP一样均来自底层的数据库系统,但由于二者面对的用户不同,OLTP面对的是操作人员和低层管理人员,OLAP面员和高层管理人员.

二、DW数据仓库层

数据仓库层(DW,Data Warehouse),是数据仓库的主体.在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。

数据仓库是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。

数据仓库存储是一个面向主题(移动的用户分析也可做为一个主题)的,反映历史变化数据,用于支撑管理决策。

1、特征:

1)、效率足够高,要对进入的数据快速处理。

2)、数据质量高,数据仓库是提供很多决策需要的数据支撑,DW的数据应该是唯一的具有权威性的数据,企业的所有系统只能从DW取数据,所以需要定期对DW里面的数据进行质量审,保证DW里边数据的唯一、权威、准确性。

3)、扩展性,企业业务扩展和降低企业建设数据仓库的成本考虑

4)、面向主题,数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域,数据仓库排除对决策无用的数据,提供特定主题的简明视图。

5)、数据仓库主要提供查询服务,并且需要查询能够及时响应

6)、DW的数据也是只允许增加不允许删除和修改,数据仓库主要是提供查询服务,删除和修改在分布式系统.

2、 MDS层

MDS是数据仓库中间层,数据是以主题域划分的,并根据业务进行数据关联形成宽表,但是不对数据进行聚合处理,MDS层数据为数据仓库的上层的统计、分析、挖掘和应用提供直接支持。 

MDS层的数据也可以执行一定的老化策略。

3、 ADS层

ADS层是数据仓库的应用层,一般以业务线或者部门划分库。这一层可以为各个业务线创建一个数据库。 

ADS层的数据是基于MDS层数据生成的业务报表数据,可以直接作为数据仓库的输出导出到外部的操作型系统中(MySQL、MSSQL、Hbase、Elasticsearch等)。

4、 DIM层

DIM层是数据仓库数据中,各层公用的维度数据。比如:省市县数据。

三、DW和ODS的区别

(1)存放的数据内容不同:

  • ODS中主要存放当前或接近当前的数据、细节数据,可以进行联机更新。
  • DW中主要存放细节数据和历史数据,以及各种程度的综合数据,不能进行联机更新。
  • ODS中也可以存放综合数据,但只在需要的时候生成。

(2)数据规模不同:

由于存放的数据内容不同,因此DW的数据规模远远超过ODS。

(3)技术支持不同:

ODS需要支持面向记录的联机更新,并随时保证其数据与数据源中的数据一致。

DW则需要支持ETL技术和数据快速存取技术等。
(4)面向的需求不同:

ODS主要面向两个需求:一是用于满足企业进行全局应用的需要,即企业级的OLTP和即时的OLAP;二是向数据仓库提供一致的数据环境用于数据抽取。

DW主要用于高层战略决策,供挖掘分析使用。

(5)使用者不同:
ODS主要使用者是企业中层管理人员,他们使用ODS进行企业日常管理和控制。

DW主要使用者是企业高层和数据分析人员。

本文作者:张永清,转载请注明:https://www.cnblogs.com/laoqing/p/13042271.html

四、DM数据集市

数据集市,以某个业务应用为出发点而建立的局部DW,DW只关心自己需要的数据,不会全盘考虑企业整体的数据架构和应用,每个应用有自己的DM。还有一种DM的叫法,就是DM(Data Mining):数据挖掘,又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,简单的说,数据挖掘就是从大量数据中提取或“挖掘”知识。

数据流向的过程一般如下:

五、 Inmon

Inmon 模式从流程上看是自顶向下的,即从数据源到数据仓库再到数据集市的(先有数据仓库再有数据市场)一种瀑布流开发方法。对于Inmon模式,数据源往往是异构的,比如从自行定义的爬虫数据就是较为典型的一种,数据源是根据最终目标自行定制的。这里主要的数据处理工作集中在对异构数据的清洗,包括数据类型检验,数据值范围检验以及其他一些复杂规则。在这种场景下,数据无法从stage层直接输出到dm层,必须先通过ETL将数据的格式清洗后放入dw层,再从dw层选择需要的数据组合输出到dm层。在Inmon模式中,并不强调事实表和维度表的概念,因为数据源变化的可能性较大,需要更加强调数据的清洗工作,从中抽取实体-关系。

 

 

这个体系架构,左边是操作型系统或者事务系统,里面包括很多种系统,有数据库在线系统,有文本文件系统…等等。而这些系统的数据经过ETL的过程,加载数据到企业数据仓库中,ETL的过程是整合不同系统的数据,经过整合,清洗和统一,因此我们可以称之为数据集成

六、 Kimball

Kimball的维度数据仓库是基于维度模型建立的企业级数据仓库,它的架构有的时候可以称之为“总线体系结构”,Kimball 模式从流程上看是是自底向上的,即从数据集市到数据仓库再到数据源(先有数据集市再有数据仓库)的一种敏捷开发方法。对于Kimball模式,数据源往往是给定的若干个数据库表,数据较为稳定但是数据之间的关联关系比较复杂,需要从这些OLTP中产生的事务型数据结构抽取出分析型数据结构,再放入数据集市中方便下一步的BI与决策支持。

 

Kimball和Inmon是两种主流的数据仓库方法论,分别由 Ralph Kimbal大神 和 Bill Inmon大神提出,在实际数据仓库建设中,业界往往会相互借鉴使用两种开发模式,这两种的相同点如下:

1、都是假设操作型系统和分析型系统是分离的;

2,数据源(操作型系统)都是众多;

3、ETL整合了多种操作型系统的信息,集中到一个企业数据仓库。

不同点:

最大的不同就是企业数据仓库的模式不同,inmon是采用第三范式的格式,而kimball则采用了多维模型–星型模型,并且还是最低粒度的数据存储。其次是,维度数据仓库可以被分析系统直接访问,当然这种访问方式毕竟在分析过程中很少使用。最后就是数据集市的概念有逻辑上的区别,在kimball的架构中,数据集市有维度数据仓库的高亮显示的表的子集来表示。
有的时候,在kimball的架构中,有一个可变通的设计,就是在ETL的过程中加入ODS层,使得ODS层中能保留第三范式的一组表来作为ETL过程的过度。但是这个思想,Kimball看来只是ETL的过程辅助而已。
 
特性对比:
 

 

优缺点对比:

  

未完待续
posted @ 2020-06-04 13:02  张永清  阅读(3280)  评论(0编辑  收藏  举报
作者的原创文章,转载须注明出处。原创文章归作者所有,欢迎转载,但是保留版权。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。