roman_日积跬步-终至千里

roman_日积跬步-终至千里

一. 数仓分层的意义

1. 清晰数据结构。

每一个数据分层都有它的作用域,这样我们能根据自己的需求会快定位到要使用那些层的哪些表。

 

2. 减少重复开发

规范数据分层,开发一些通用的中间层数据,能够减少数据的重复计算。

数据的逐层加工原则,下层包含了上层数据加工所需要的全量数据,这样的加工方式避免了每个数据开发人员**都重新从源系统抽取数据进行加工。**极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低存储和计算成本。

 

3. 方便数据血缘追踪

简单来说,最终给业务呈现的是一个能直接使用的业务表,但是它的数据来源有很多,如果有一张来源表出问题了,分层后的数仓能够快速准确地定位到问题,并清楚它的危害范围。
 

4. 把复杂问题简单化

将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。

 

5. 屏蔽原始数据的异常

源头系统可能极为繁杂,而且表命名、字段命名 、字段含义等可能五花八门,通过 DW 层来规范和屏蔽所有这些复杂性。如果源头系统业务发生变更,相关的变更由 DW 层来处理,对下游用户透明,无须改动下游用户的代码和逻辑。

 

6. 数据仓库的可维护性

分层的设计使得某一层的问题只在该层得到解决,无须更改下一层的代码和逻辑。

 

二. 如何进行数仓分层?

数据分层最基础的分层思想将数据分为三个层:数据引入层(ODS)、数据仓库层(DW)和数据服务层(ADS)。可以基于基础分层之上添加新的层次,来满足不同的业务需求。
【数据仓库】数仓分层方法-LMLPHP

【数据仓库】数仓分层方法-LMLPHP

1. ODS层

数据引入层(ODS,Operational Data Store,又称数据基础层),是最接近数据源中数据的一层,这将原始数据几乎无处理地存放在数据仓库系统中,结构上与源系统基本保持一致

这一层的主要职责是解决数据孤岛问题,保证数据集成完整性;数据与源系统表一致,体现非易失性;定期同步,增加表同步时间戳,体现时变性。

 
ODS层数据的来源方式:

  • 业务库
  • 埋点日志

  • 线上系统会打入各种日志,这些日志一般以文件的形式保存,

  • 消息队列:来自ActiveMQ、Kafka的数据等。

 

2. DW层

数仓层(DW, data warehouse)是核心设计的一层,本层将从 ODS 层中获得的数据按照主题建立各种数据模型,每一个主题对应一个宏观的分析领域,数据仓库层排除对决策无用的数据,提供特定主题的简明视图。在DW层会保存BI系统中所有的历史数据,例如保存10年的数据。

DW存放明细事实数据、维表数据及公共指标汇总数据。

 

2.1. DW层分类

DW层又可以细分为维度层(DIM)、明细数据层(DWD)和汇总数据层(DWS)

分层作用:

分类:

 

2.2. DWD层

DWD层做了哪些事?

1.数据清洗过滤

2.数据映射,转换

 

2.3. DWS

DWS( data warehouse service)数据服务层,汇总层宽表

DWS是根据DWD层基础数据按各个维度ID进行粗粒度汇总聚合,如按交易来源,交易类型进行汇合。整合汇总成分析某一个主题域的服务数据,一般是宽表。

该层数据表会相对比较少,大多都是宽表(一张表会涵盖比较多的业务内容,表中的字段较多)。按照主题划分,如订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。

 

公共汇总事实表命名规范:

对于小时表(无论是天刷新还是小时刷新),都用_hh来表示。对于分钟表(无论是天刷新还是小时刷新),都用_mm来表示。

举例如下:

 

3. ADS层

数据应用层(ADS,Application Data Store)存放着数据产品个性化的统计指标数据,报表数据

APP 层:为应用层,这层数据是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。如我们经常说的报表数据,或者说那种大宽表,一般就放在这里。包括前端报表、分析图表、KPI、仪表盘、OLAP、专题等分析,面向最终结果用户。

 
 

4、层次调用规范

  • 禁止反向调用

  • ODS 只能被 DWD 调用。

  • DWD 可以被 DWS 和 ADS 调用。

  • DWS 只能被 ADS 调用。

  • 数据应用可以调用 DWD、DWS、ADS,但建议优先考虑使用汇总度高的数据
    ODS->DWD->DWS>ADS
    ODS->DWD->ADS

 
参考:
https://dbaplus.cn/news-73-4907-1.html

11-14 08:16