目录

  • 一、为什么要分层
  • 二、数据集市和数据仓库区别
  • 三、数仓命名规范
  • 1. 表命名
  • 2. 脚本命名
  • 3. 表字段类型



一、为什么要分层

分层说明:

ODS 层:原始数据层,存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。

DWD 层:对 ODS 层数据进行清洗 (去除空值,脏数据,超过极限范围的数据)、脱敏等。保存业务事实明细,一行信息代表一次业务行为,例如一次下单。

DIM 层:维度层,保存维度数据,主要是对业务事实的描述信息,例如何人,何时,何地等。

DWS 层:以 DWD 为基础,按天进行轻度汇总。一行信息代表一个主题对象一天的汇总行为,例如一个用户一天下单次数。

DWT 层 : 以 DWS 为基础,对数据进行累积汇总。一行信息代表一个主题对象的累积行为,例如一个用户从注册那天开始至今一共下了多少次单。

ADS 层 : 为各种统计报表提供数据。

数仓schema 数仓dwd层做什么_数仓schema

仓库为什么要分层?

A、把复杂问题简单化:将复杂的任务分解成多层来完成,每一层只处理简单的任务,方使定位问题。

B、减少重复开发:规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。

C、隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。

二、数据集市和数据仓库区别

数据集市 (Data Market),现在市面上的公司和书籍都对数据集市有不同的概念。

数据集市则是一种微型的数据仓库,它通常有更少的数据,更少的主题区域,以及更少的历史数据,因此是部门级的,一般只能为某个局部范围内的管理人员服务。

数据仓库是企业级的,能为整个企业各个部门的运行提供决策支持手段。

数仓schema 数仓dwd层做什么_数据_02

三、数仓命名规范

1. 表命名

  • ODS 层命名为 ods_表名
  • DIM 层命名为 dim_表名
  • DWD 层命名为 dwd_表名
  • DWS 层命名为 dws_表名
  • DWT 层命名为 dwt_表名
  • ADS 层命名为 ads_表名
  • 临时表命名为 tmp_表名

2. 脚本命名

  • 数据源_to_目标_db/log.sh
  • 用户行为脚本以 log 为后缀,业务数据脚本以 db 为后缀

3. 表字段类型

  • 数量类型为 bigint
  • 金额类型为 decimal(16, 2),表示:16位有效数字,其中小数部分2位
  • 字符串(名字,描述信息等)类型为 string
  • 主键外键类型为 string
  • 时间戳类型为 bigint