本文为您介绍ODS层设计规范。
数据同步及处理规范
数据同步方式的选择
基本规范通过需求形式落地到DataWorks的数据集成,规范落地情况依赖工具的推进节奏。一个系统的源表只允许同步一次到MaxCompute。
数据加载与处理
通过一键实时同步至MaxCompute方案实现,请参见一键实时同步至MaxCompute。
命名规范
表命名规范
表命名规则:{层次}{源系统表名}{保留位/delta与否}。
增量数据:{project_name}.s{源系统表名}delta。
全量数据:{project_name}.s{源系统表名}。
ODS ETL过程的临时表:{project_name}.tmp{临时表所在过程的输出表}{从0开始的序号}。
按小时同步的增量表:{project_name}.s{源系统表名}{delta}_{hh}。
按小时同步的全量表:{project_name}.s{源系统表名}{hh}。
当不同源系统同步到同一个Project下的表命名冲突时,您需要给同步较晚的表名加上源系统的dbname以解决冲突。
字段命名规范
字段默认使用源系统的字段名。
字段名与MaxCompute关键字冲突时,在源字段名后加上col,即源字段名col。MaxCompute关键字详情请参见保留字与关键字。
同步任务命名规范
任务名:{源系统表名}[delta]。
说明同一Project下异库同名表的任务名为{源系统表名}{tddl的appname}[_delta]。
任务的输出名称,即输出表的名称,需要与数据存储及生命周期管理规范保持一致。详情请参见数据存储及生命周期管理规范。
数据存储及生命周期管理规范
数据表类型 | 存储方式 | 最长存储保留策略 |
ODS流水型全量表 | 按天分区 |
|
ODS镜像型全量表 | 按天分区 |
|
ODS增量表 | 按天分区 |
|
ODS ETL过程临时表 | 按天分区 | 最多保留最近7天分区。 |
DBSync非去重数据 | 按天分区 | 由应用通过中间层保留历史数据,默认ODS层不保留历史数据。 |
数据质量规范
每个ODS全量表必须配置唯一性字段标识。
每个ODS全量表必须有注释。
每个ODS全量表必须监控分区空数据。
仅有监控要求的ODS表才需要创建数据质量监控规则。您可以通过DataWorks配置数据质量监控规则,详情请参见配置数据质量监控。
建议对重要表的重要枚举类型字段进行枚举值变化及枚举值分布监控。
建议对ODS表的数据量及数据记录数设置周同环比监控,如果周同环比无变化,表示源系统已迁移或下线。