数仓设计标准

1.编码命名规范

  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 = '[email protected]'

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##
##-- 目标表表结构

4.流程规范:

数仓设计标准_第1张图片
数仓开发流程

你可能感兴趣的:(数仓设计标准)