数仓分层及命名
分层
为什么要分层
- 把复杂问题简单化:将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题
- 减少重复的开发:规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性
- 隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开
数仓命名规范
表命名:
- ODS层命名为
ods_
表名 - DIM层命名为
dim_
表名 - DWS层命名为
dws_
表名 - DWT层命名为
dwt_
表名 - ADS层命名为
ads_
表名 - 临时表命名为
tmp_
表名
脚本命名: - 数据源
_to_
目标_db/log.sh
- 用户行为脚本以log为后缀;业务数据脚本以db为后缀
表字段类型: - 数量类型为bigint
- 金额类型为decimal(16, 2),表示:16位有效数字,其中小数部分2位
- 字符串(名字,描述信息等)类型为string
- 主键外键类型为string
- 时间戳类型为bigint
数据集市与数据仓库的不同
- 数据集市(Data Market): 是一种微型的数据仓库,通常有更少的数据,更少的主题区域,以及更少的历史数据,因此是部门级的,一般只能为某个局部范围内的管理人员服务
- 数据仓库是企业级的,能为整个企业各个部门的运行提供决策支持的手段