本文为您介绍建设MaxCompute数据仓库的公共规范。
层次调用约定
应用层应优先调用公共层数据,必须存在中间层CDM数据,不允许应用层跨过中间层CDM从ODS层重复加工数据。
中间层CDM需要积极了解应用层数据的建设需求,将公用的数据沉淀到公共层,为其他层提供数据服务。应用层需要积极配合中间层CDM持续改造公共层。必须避免出现过度的引用ODS层、不合理的数据复制以及子集合冗余。
- ODS层数据不能被应用层任务引用,中间层CDM不能有沉淀的ODS层数据,必须通过CDM层的视图访问。CDM层视图必须使用调度程序进行封装,保持视图的可维护性与可管理性。
- CDM层任务的深度不宜过大(建议不超过10层)。
- 原则上一个计算刷新任务只允许一个输出表。
- 如果多个任务刷新输出一个表(不同任务插入不同的分区),DataWorks上需要建立一个依赖多个刷新任务的虚拟任务,通常下游应该依赖此虚拟任务。
- CDM汇总层应优先调用CDM明细层。在调用可累加类指标计算时,CDM汇总层尽量优先调用已经产出的粗粒度汇总层,以避免大量汇总直接从海量的明细数据层计算。
- CDM明细层累计快照事实表优先调用CDM事务型事实表,以保持数据的一致性产出。
- 避免应用层过度引用和依赖CDM层明细数据,需要针对性地建设好CDM公共汇总层。
MaxCompute项目分配
按实际需求分配不同的ODS和CDM项目。一个ODS层项目对应一个CDM项目。例如:
- ODS层项目,按业务部门的粒度建立。
- CDM层项目,按业务部门的粒度建立。
- ADS层项目,按应用的粒度建立。
一个项目的划分结构如下图所示。
项目命名规范
- ODS层项目名称以
ods
为后缀,例如tb_ods
。 - 中间层CDM项目名称以
cdm
为后缀,例如tb_cdm
。 - 应用层项目中,数据报表、数据分析等应用名称以
bi
为后缀,例如tb_bi
;而数据产品等应用名称以app
为后缀,例如sycm_app
。
数据类型规范
ODS层的数据类型应基于源系统数据类型转换。例如,源数据为MySQL时的转换规则如下。
MySQL数据类型 | MaxCompute数据类型 |
---|---|
TINYINT | TINYINT |
SMALLINT/MEDIUMINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
DECIMAL | DECIMAL |
CHAR/VARCHAR | VARCHAR |
LONGTEXT/TEXT | STRING |
DATE/TIMESTAMP/TIME/YEAR | STRING |
DATETIME | DATETIME |
CDM数据公共层如果是引用ODS层数据,则默认使用ODS层字段的数据类型。其衍生加工数据字段按以下标准执行:
- 金额类及其它小数点数据使用DOUBLE类型。
- 字符类数据使用STRING类型。
- ID类和整形数值使用BIGINT类型。
- 时间类型数据使用STRING类型(如果有特殊的格式要求,可以选择性使用DATETIME类型)。
- 状态使用STRING类型。
公共字段定义规范
- 数据统计日期的分区字段按以下标准:
- 按天分区:ds(YYYYMMDD)。
- 按小时分区:hh(00~23)。
- 按分钟:mi(00~59)。
- is_{业务}:表示布尔型数据字段。以Y和N表示,不允许出现空值域。
- 原则上不需要冗余分区字段。
数据冗余
一个表做宽表冗余维度属性时,应该遵循以下建议准则:
- 冗余字段与表中其它字段高频率(大于3个下游应用SQL)同时访问。
- 冗余字段的引入不应造成其本身的刷新完成时间产生过多后延。
- 公共层数据不允许字段重复率大于60%的相同粒度数据表冗余,可以选择在原表基础上拓宽或者在下游应用中通过JOIN方式实现。
数据拆分
数据的水平和垂直拆分是按照访问热度分布和数据表非空数据值、零数据值在行列二维空间上分布情况进行划分的。
- 在物理上划分核心模型和扩展模型,将其字段进行垂直划分。
- 将访问相关度较高的列在一个表存储,将访问相关度较低的字段分开存储。
- 将经常用到的Where条件按记录行进行水平切分或者冗余。水平切分可以考虑二级分区手段,以避免多余的数据复制与冗余。
- 将出现大量空值和零值的统计汇总表,依据其空值和零值分布状况可以做适当的水平和垂直切分,以减少存储和下游的扫描数据量。
空值处理原则
- 汇总类指标的空值:空值处理,填充为零,当前MaxCompute基于列存储的压缩技术不会由于填充大量空值导致存储成本上升。
- 维度属性值为空:在汇总到对应维度上时,对于无法对应的统计事实,记录行会填充为-99(未知),对应维表会出现一条-99(未知)的记录。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/158875.html