目录
1.贴源层(ODS: Operational Data Store)
2.DWD(data warehouse detail)数据明细层
3. DWS(data warehouse service)数据服务层,汇总层宽表
4.应用层ADS(application Data Service)应用数据服务层
一、背景
1.引言
数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用
2.目的与范围
数据模型用于有效组织企业的数据资产,其设计工作应当在一定的规范约束下进行,这是建设高质量数据模型的前提条件。
3.使用对象
- 数据架构师
- 数据开发者
- 数据应用人员
- 企业数据管理者
4.分层意义
1)清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
数据关系条理化:源系统间存在复杂的数据关系,数据仓库会对相同主题的数据进行统一建模,把复杂的数据关系梳理成条理清晰的数据模型。
2)数据复用,减少重复开发:规范数据分层,开发一些通用的中间层数据,能够极大减少的重复计算。数据的逐层加工原则,下层包含了上层数据加工所需要的全量数据,这样的加工方式避免了每个数据开发人员都重新从源系统抽取数据进行加工。通过汇总层的引人,避免了下游用户逻辑的重复计算,节省了用户的开发时间和精力,同时也节省了计算和存储。极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低存储和计算成本。
3)把复杂问题简单化:把一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
4)屏蔽原始数据的(影响) 屏蔽业务系统的影响(例如系统数据切源):业务或系统发生变化时,不必每次调整业务系统就需要大规模的调整报表逻辑只需要重新接入数据即可。提高数据稳定性和连续性。
屏蔽源头业务系统的复杂性:源头系统可能极为繁杂,而且表命名、字段命名 、字段含义等可能五花八门,通过 DW 层来规范和屏蔽所有这些复杂性,保证下游数据用户使用数据的便捷和规范。如果源头系统业务发生变更,相关的变更由 DW 层来处理,对下游用户透明,无须改动下游用户的代码和逻辑。
数据仓库的可维护性:分层的设计使得某一层的问题只在该层得到解决,无须更改下一层的代码和逻辑。大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。
二、数据仓库(ETL的四个操作)
ETL(extraction transformation loading)负责将分散的、异构数据源中的数据抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中。ETL 是实施数据仓库的核心和灵魂,ETL规则的设计和实施约占整个数据仓库搭建工作量的 60%~80%。
- 数据抽取(extraction),包括初始化数据装载和数据刷新:初始化数据装载主要关注的是如何建立维表、事实表,并把相应的数据放到这些数据表中。
- 数据清洗(cleaning)主要是针对源数据库中出现的二义性、重复、不完整、违反业务或逻辑规则等问题的数据进行统一的处理。即清洗掉不符合业务或者无效的的数据。
- 数据转换(transformation)主要是为了将数据清洗后的数据转换成数据仓库所需要的数据:来源于不同业务系统的同一数据字段的数据字典或者数据格式可能不一样(比如A表中叫id,B表中叫ids),在数据仓库中需要给它们提供统一的数据字典和格式,对数据内容进行归一化;另一方面,数据仓库所需要的某些字段的内容可能是源系统所不具备的,而是需要根据源系统中多个字段的内容共同确定。
- 数据加载(loading)是将最后上面处理完的数据导入到对应的存储空间里(hbase,mysql等)以方便给数据集市提供,进而可视化。
三、数据仓库的技术架构
数据中台包含的内容很多,对应到具体工作中的话,它可以包含下面的这些内容:
- 系统架构:以大数据等组件为中心的架构体系
- 数据架构:顶层设计,主题域划分,分层设计,ODS-DW-ADS
- 数据建模:维度建模,业务过程-确定粒度-维度-事实表
- 数据管理:资产管理,元数据管理、主数据管理、数据标准、数据安全管理
- 辅助系统:调度系统、ETL系统、监控系统
- 数据服务:数据门户、机器学习数据挖掘、数据查询、分析、报表系统、可视化系统、数据交换分享下载
四、数仓分层架构
数据仓库标准上可以分为四层。但是这种划分和命名不是唯一的,一般数仓都是四层,也有分层大于四层,但是核心的理念都是从四层延伸出来
1.贴源层(ODS: Operational Data Store)
数据引入层(ODS,Operational Data Store,又称数据基础层)
将原始数据几乎无处理地存放在数据仓库系统中,结构上与源系统基本保持一致,是数据仓库的数据准备区。这一层的主要职责是将基础数据同步、存储。一般来说 ODS 层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说 ODS 层的数据粒度是细的。ODS 层的表通常包括两类,一个用于存储当前需要加载的数据,根据具体需求设置生命周期(如果是库存数据建议不设置生命周期,便于回溯历史数据)。一个用于存储处理完后的历史归档数据。历史数据一般保存 3-6个月后根据清除,以节省空间。但不同的项目要区别对待,如果来源系统的数据量不大,可以保留更长的时间,甚至全量保存。