一、分层逻辑

数据仓库、数据湖的业务目的就在于集中数据、标准化、形成数据产品、面向业务场景开放数据。通俗地讲就是把各个分散的、不易读的、杂乱的、封闭的业务系统数据,归集收编、分门别类、整齐划一、规范管理,让业务便捷获取、使用,最大可能大挖掘和发挥数据价值。和餐厅点菜上菜类似,生活中类似场景也非常多。其中就涉及比较多的、相互关联的细分步骤。

二、分层目的

本质上是封装与解耦。封装下层,让上层感知不到变化和影响;解耦,降低上层对下层的依赖,有个中间商来做润滑剂。

  • 复杂问题简化:将一个复杂的任务拆解为多个步骤,每个步骤只解决特定的问题
  • 减少重复开发:规范数据分层,提炼抽象公共环节,增加数据复用性
  • 构建数据资产:统一标准的数据结构,根据业务属性划分业务领域、子领域,无差别呈现给业务

三、分层适用

数据仓库的概念虽然历史久远,但它的作用或者理念与数据湖形成映射,甚至二者结合形成湖仓一体,都还在发挥着重要作用。数据湖在数据的来源范围、数据类型、数据数量、实时性、技术手段、数据质量、数据标准、使用人群、数据用途等方面有所扩展和增强,但在数据的全生命周期的各个阶段中,个人理解没有什么本质区别。非要说个先后、强弱或者渐进的关系,数据湖以及湖仓一体,是在大数据、物联网、人工智能时代对数据仓库的进一步迭代,外加数据治理领域的配套措施。

我不纠结它是单纯的数据仓库、数据湖还是湖仓一体还是什么,市面上的解决方案、服务、产品等要么肢解各个解耦层形成独立的产品,要么综合尽量多的功能,形成在业务看来大而全的一套方案。从实际操作上、产品呈现上,不同层面的功能时而独立销售/使用、时而集成汇聚。关键是看业务需要什么,通过怎么样的产品和产品组合来达成业务目的、方便管理和演进,细分下去就是功能区域的划分和协作,这就回到了核心的数据仓库分层模型上。

四、分层划分

这个分层目前没有找到国家标准、行业标准之类的权威参考,数据管理领域权威DMBOK、国家标准DCMM也没有把这些术语拿来讲解。这两者更多讲的是理论/业务完整性,而下面要讲的分层更多的在于具体技术实现。当前的分层,中英文初看比较杂论,不同厂家也有不同的叫法。

序号

英文简写

英文全称

中文(本文倾向)

其他词汇

分层功能

1

Buffer

Buffer

缓冲层

接口层、Stage

常规理解的数据缓冲

2

ODS

SDI

Operational Data Store

Source Data Integration

贴源数据层

操作数据层、原始数据层、数据运营层、

数据引入层、数据基础层

ETL之后业务原始数据存储,

尽量原汁原味

3

DWD

DWI

Data WareHouse Detail

Data Warehouse Integration

明细数据层

数据细节层、数据整合层、明细事实表

ODS数据的简单清洗、

维度退化、数据脱敏、格式统一

4

DWB

DWM

MID

Data Warehouse Base

Data Warehouse Middle

Middle

轻度汇总层

基础数据层、数据中间层

对核心维度进行指标统计,

减少重复计算

5

DWS

DWR

DWT

Data Warehouse Service

Data Warehouse Report

Data Warehouse Topic

主题数据层

服务数据层、数据服务层、数据报告层、

宽表层、汇总数据层

按主题汇聚多字段为宽表,

简化查询

6

ADS

DM

App

Application Data Service

Data Mart

数据集市层

数据应用层、数据产品层、专题数据层

统计汇总数据,

供业务应用直接使用

7

DIM

Dimension

维表

码表、维度表

DWD及之上数据层共用,

比如国家编码、机场编码、商品类型

8

DW

CDW

Data Warehouse

Common Dimenions Model

数据仓库层

数据公共层

包含DWD、DWM、DWS、DIM

从上表看出,大体分层固定,不同厂家或者方案都有不同的叫法,但是表达的分层意思几乎一样,具体分层所承载的数据功能也大同小异。命名格式上,有xx数据层,也有数据xx层,还有xx层。只要保持分层清晰,逻辑表达连贯完整,我想就无所谓用哪个名字。

五、分层组合

DM数据仓库层,包含DWD、DWB和DWS。至于DIM严格来说不算是一个层次,而是DWD及其之上层次的一个共享部分。而上述的分层不一定非要全部构建,而是根据组织、业务的实际需求及其变化频率、大小,实现难度、投入产出比来综合选定。个人的实践总结是适量前瞻性设计、能有多简单就多简单,并且设计的分层还会根据业务和环节变化不停迭代。另外,从DWD开始往上的每一层都可以直接提供给上层业务使用,而从业务系统中ETL之后的数据一定是先存放在ODS之中,尽量杜绝其他分层重复地直接从业务系统抽取数据,减少数据同步对业务系统的影响,达到一次抽取,多次利用。

分层架构模型怎么做 分层模型的概念_数据仓库

六、参考资料