数仓设计标准
2018-07-04 本文已影响59人
奉先
1.编码命名规范
- 表命名(根据数据仓库的层级架构确定不同的命名):
(1)维度层:
说明:定义数据仓库公用的维度表,例如城市维度、用户状态等硬编码维表。
DIM_维表业务描述
(2)源数据层:
说明:直接获取埋点、源系统mysql等数据,做些简单的解析工作,保证和源数据一致。
ODS_源系统描述源表名
(3)基础层数据:
当前表 : DW主题域表描述[h|d]
历史表: DW_主题域表描述[h|d]HIS
(4)集市层数据:
MART主题表描述信息
(5)应用层数据:
支持报表: APP_REPORT业务描述
支持数据挖掘: APP_MINING_业务描述
2.主题域定义:
(1)订单主题域: ORD
(2)轨迹: TAK
(3)关键点分析: POI
(3)关键区域分析:AOI
2.模型设计规范
3.ETL开发规范
ETL代码开发规范,按照“XT-数据协同”中代码模板开发:
##-- 这个是sqlweaver(美团自主研发的ETL工具)的编辑模板
##-- 本模板内容均以 ##-- 开始,完成编辑后请删除
##-- ##xxxx## 型的是ETL专属文档节点标志, 每个节点标志到下一个节点标志为本节点内容
##-- 流程应该命名成: 目标库dsn名.目标表名
##Description##
##-- 这个节点填写本ETL的描述信息, 包括目标表定义, 建立时的需求jira编号等
##TaskInfo##
creator = 'AnonymousUser@meituan.com'
source = {
'db': META[''], ##-- 单引号内填写一个dsn库名,表示Extract阶段的SQL在哪个数据库里执行
}
stream = {
'format': '', ##-- 这里的单引号中填写目标表的列名, 以逗号分割, 与Extract节点的结果顺序对应, 特殊情况Extract的列数可以小于目标表列数
}
target = {
'db': META[''], ##-- 单引号内填写目标库的dsn名
'table': '', ##-- 单引号中填写目标表名
}
##Extract##
##-- Extract节点, 这里填写一个能在source.db上执行的、读取数据的sql
##Preload##
##-- Preload节点, 这里填写一个能在target.db上执行的、load数据之前执行的sql(可以留空)
##Load##
##-- Load节点, 这里填写一个能在target.db上执行的、load数据的sql(可以留空)
##TargetDDL##
##-- 目标表表结构