Dataworks数仓建设基础

时间:2023-02-08 15:05:27

1 数仓基本概念

1.1 数据仓库架构

源数据, 数据仓库, 数据应用,具体架构如下:

Dataworks数仓建设基础

源数据:该部分数据主要是从生产数据库,线下手工数据和日志数据,集成到dataworks中,形成了数仓的第一层ods层的数据明细

数据仓库:主要是按照业务域,对明细数据进行建模,建立各个业务域的聚合数据和数据模型

数据应用:主要是在数据仓库的基础上,结合公司业务需求,聚合成前端报表展示需要的数据;数据分析需要的数据以及一些用户画像以及数据标签依赖的数据

   按照目前企业通行惯例,数仓具体分层架构如下:

Dataworks数仓建设基础

1.2 数据仓库具体业务域划分

目前数据根据业务线,划分如下

表1 业务域命名

Dataworks数仓建设基础

1.3 数据仓库数据流动方向

ods→dim→dwd→dws→ads

  • 切记,数据流动方向只能按照上述方向进行流动,可以跨层,比如 ods  dwd  dws  ads, 或者 ods  dim  dws  ads等,但是,不允许        类似的数据逆向流动

1.4 数据仓库中表命名规范

1.4.1 ods数据源层表命名规范

前缀名+业务域名+实例名(库名)+表名+表更新频次
前缀名

  • 按照数仓分层来命名,即ods来命名

业务域名

  • 按照上述业务域命名为准,如ilp指代国际小包

实例名

  • 是指数据来自数据源的实例名称或者数据库的名字,如uexpress

表名

  • 即是在源数据源中的表名或者自定义的线下表的名字

表更新频次

  • 表述由两个字符组成,前者表示更新的时间频次,后者表示更新的是表的全量还是增量

举例说明一个实际中使用频次最多的案例 - df ,d:意思为day,指每天更新,同理,y(year),q(quarter),m(month),h(hour),mi(minute);f:意思为full,指全量更新,而增量更新用i指代,是increase的缩写。

而两者可以进行随机组合,比如 hi,表示每小时增量更新

命名为小写,不允许大写

1.4.2 dim维表层表命名规范

前缀名+表名

尽管dim维表层数据跟dwd是同一层,但是按照通用做法,给其单独的前缀,比如;另外需要注意的是,由于dim层的维度表相对固定,所以,可能不定期进行更新或者并不会配置调度,因此需要在后续依赖维表的调度和脚本进行特殊的处理,具体在后续进行介绍。

命名为小写,不允许大写

1.4.3 dwd数据明细层表命名规范

 前缀名 + 业务域名 + 表名,具体如下:

前缀名

  • 按照数仓分层来命名,即dwd来命名

业务域名

  • 按照上述业务域命名为准,如ilp指代国际小包

表名

  • 该表名根据模型+业务进行独立命名

关于表名书写规则

  • 全部命名为小写,不允许大写

1.4.4 dws数据明细层表命名规范

dws数据明细层命名按照 前缀名 + 业务域名 + 表名,具体如下:

前缀名

  • 按照数仓分层来命名,即dws来命名

业务域名

  • 按照上述业务域命名为准,如ilp指代国际小包

表名

  • 该表名根据模型+业务进行独立命名

关于表名书写规则

  • 全部命名为小写,不允许大写

1.4.5 ads数据应用层表命名规范

ads数据应用层命名按照 前缀名 + 业务域名 + 表名,具体如下:前缀名

  • 按照数仓分层来命名,即ads来命名

业务域名

  • 按照上述业务域命名为准,如ilp指代国际小包

表名

  • 该表名根据模型+业务进行独立命名

关于表名书写规则

  • 全部命名为小写,不允许大写