ODS层设计规范

本文为您介绍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流水型全量表

按天分区

  • 不可再生情况下,永久保存。

  • 日志(数据量非常大,例如一天数据量大于100 GB)数据保留24个月。

  • 自主设置是否保留历史月初数据。

  • 自主设置是否保留特殊日期数据。

ODS镜像型全量表

按天分区

  • 重要的业务表及需要保留历史的表视情况保存。

  • ODS全量表的默认生命周期为2天,支持通过ds=max_pt(tablename)方式访问数据。

ODS增量表

按天分区

  • 有对应全量表,最多保留最近14天分区数据。

  • 无对应全量表,需要永久保留数据。

ODS ETL过程临时表

按天分区

最多保留最近7天分区。

DBSync非去重数据

按天分区

由应用通过中间层保留历史数据,默认ODS层不保留历史数据。

数据质量规范

  • 每个ODS全量表必须配置唯一性字段标识。

  • 每个ODS全量表必须有注释。

  • 每个ODS全量表必须监控分区空数据。

  • 仅有监控要求的ODS表才需要创建数据质量监控规则。您可以通过DataWorks配置数据质量监控规则,详情请参见配置数据质量监控

  • 建议对重要表的重要枚举类型字段进行枚举值变化及枚举值分布监控。

  • 建议对ODS表的数据量及数据记录数设置周同环比监控,如果周同环比无变化,表示源系统已迁移或下线。