数据仓库的分层,你知道吗?


数据库更多地表现为一种管理和使用数据的方法,是一套完整的理论体系过程,包括数据建模、ETL(数据提取、转换、装载)和角色调度等等。

在构建过程中,常常需要进行数据仓库的分层处理。企业不同,对层次结构的技术处理方法也不同。其主要原因在于,当进行数据管理时,能够更清楚地掌握数据。具体来说,主要原因如下。

明晰的数据结构每个数据层都有其作用域,使得在使用时更容易找到和理解。

把复杂问题简化为把一项复杂的工作分成几步完成,每一层只处理单个问题,既简单又易于理解。并且方便维护数据的精确性,在数据发生问题后,不必对所有数据进行修复,只需在存在问题的地方开始修复。

降低重复开发规范数据仓库的分层和开发一些通用中间层数据,可以减少大量的重复计算。

避免原数据异常屏蔽业务的影响,无需更改业务时需重新访问数据。

亲属数据跟踪最终会向企业展示一个可以直接使用业务表,但其来源非常广泛,如果存在一张源列表出现问题,借助血缘关系最终可以迅速准确地找到问题,并且清楚其危害范围。

常用的数据仓库的分层一般有三层,即数据操作层、数据仓库层和应用数据层(数据集市层)。自然根据研发人员的经验或者业务,可以分成多个不同的层次,只要能做到过程清晰、便于查询。

接下来,通过一个图表显示了一个仓位仓库的层次结构,如图所示:

数据仓库的分层,层次结构,埋点日志

接着,勾叔向您详细地介绍了数据仓库的层次结构。

ODS(操作数据存储区)

数据库源系统中的数据表通常只保存一份,这就是ODS层,也被称为预备区。这是随后的数据仓库层处理数据的来源。ODS层数据主要来源于业务数据库、埋设日志和其它数据源。

业务数据库:可以使用DataX,Sqoop等工具进行提取,每天定时提取;在实时应用程序中,可以用Canal监听MySQL的Binlog,实时访问更改数据。

埋点日志:联机系统会进入各种日志,这些日志一般都是文件形式,可以在Flume时间内取出来。

其它数据源:从第三方购买的数据,或网络爬行器捕获的数据。

DW(DataWarehouse数据仓库层)

DWD、DWS、DIM、DIM层是由ODS层数据处理而成,其主要功能是完成数据加工与集成,建立一致性维度,建立可重用的面向分析和统计的明细事实表,以及汇总通用粒度的指标。

DWD(DataWarehouseDetail细节数据层),是业务层和数据仓库的分隔层,DWD把业务过程作为模型的驱动,根据各个具体业务过程的特点,建立细粒度的明细清单。可根据企业的数据使用特点,对明细事实表的一些重要属性字段做适当冗余,也就是宽表化处理。

DWS(DataWarehouseService服务数据层),基于DWD的基本数据,对特定主题领域进行整合和汇总。在分析的主题基础上,根据产品的上层应用和需求指标,建立总的通用粒度指标事实表。

DIM(公共维度层),根据维模型的概念,建立了一致性的维度。

TMP层:临时层,存储在计算期间临时生成的数据。

ADS(应用程序数据存储应用程序)

在DW层次上,对数据进行综合汇总,形成主题域的服务数据,以提供后续业务查询等功能。

对数据仓库层次的划分并非一成不变,可根据实际需要适当调整或增加。DWD,DWS可以在相对简单和独立的情况下被合并。接下来,我们以第三方支付企业支付宝的数据仓库架构为例来说明如下:

数据仓库的分层,层次结构,埋点日志