目 录
0 引 言
为了避免底层业务变动对上层需求影响过大,屏蔽底层复杂的业务逻辑,尽可能简单、完整的在接口层呈现业务数据,建设高内聚松耦合的数据组织,使数据从业务角度可分割,显得尤为重要。从整个集团业务条线出发,形成数据仓库总体概念框架,并对整个系统所需要的功能模块进行划分,明确各模块技术细节,建设一套完整的开发规范。
1 分层的目的
2 分层规范
2.1 分层规范
ODS(原始数据层):ODS层是数据仓库准备区,为DWD层提供基础原始数据。
DWD(明细数据层):和ODS粒度一致的明细数据,对数据进行去重,脏数据过滤,空处理,建立数据映射关系,数据脱敏,缺省值补值等操作,主要的职责就是保证数据质量。
DWS(服务数据层):轻度汇总数据及建宽表(按主题)存放数据,或称为数据汇总层,有的叫DWA层。
ADS(应用数据层):存放应用类表数据,为各种统计报表提供数据。
2.2 分层调用原则
(1)禁止逆向调用
(2)避免同层调用
(3)优先使用公共层
(4)避免跨层调用
3.表规范
3.1 命名
- 维表 命名形式:dim_描述
- 事实表 命名形式:fact_描述_[AB]
- 临时表 命名形式:tmp_ 正式表名_ [C自定义序号]
- 宽表 命名形式:dws_主题_描述_[AB]
- 备份表 命名形式:正式表名_bak_yyyymmdd
表命名解释:
- 1)表名使用英文小写字母,单词之间用下划线分开,长度不超过40个字符,命名一般控制在小于等于6级。
- 2)其中ABC第一位"A"时间粒度:使用"c"代表当前数据,"h"代表小时数据,"d"代表天数据,"w"代表周数据,"m"代表月数据,"q"代表季度数据, "y"代表年数据。
- 3)其中ABC的第二位"B"表示对象属性,用"t"表示表,用"v"表示视图。
- 4)其中ABC的第三位"C"自定义序号用于标识多个临时表的跑数顺序。
具体如下图所示:
3.2 注释
注释要结合表的英文名,要求注释简洁明了,体现出表的业务出处、主题和用途。
3.3 存储格式
所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。在数仓中建表默认用的都是PARQUET存储格式,相关语句如下所示:
STORED AS INPUTFORMAT
‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat’
OUTPUTFORMAT