数据治理到底能不能干

2022-07-01 00:00:00 数据 规范 指标 维度 词根

为什么是脏活、累活?

1. 源数据

  • 烟囱式开发:业务繁多、数据库多而乱,系统与系统之间错综复杂
  • 数据库种类:架构经历多次变迁,切换不完全,需要从Mysql、oracle、hbase甚至excle表中跨库、跨实例、跨种类才能获得有效业务数据
  • 数据结构混乱:同一字段,类型、命名都不一致
  • 文档缺失:无数据库文档或文档陈旧

2. 变迁

  • 系统版本升级:每一次升级都只是掩盖之前的错误,数据治理需要从源头
  • 人员变更:梳理过程中的大部分问题终答案:“不清楚,原来维护人已离职”
  • 数据流转:数据从源头经过很多次不规范的同步

3. 存量

  • 各自为政:各业务部门已有自己的统计逻辑和报表,同一指标汇总维度又不一致,梳理、治理、输出还要尽量不影响已有报表结果
  • 半途而废:前任都知道数据治理、统一出口的重要性,但只完成一部分就放弃了。问题在于“完成的一部分”有人还在用

怎么开始?

1. 方法论

  • 统一定义:对个性化的数据指标统一规范定义
  • 标准建模:建立数据公共层对模型架构进行标准规范设计和管理
  • 规范研发:将建模方法体系贯穿在整个数据研发流程
  • 工具保障:通过研发一系列的工具保障方法体系的落地实施

2. 统一方法策略:统一归口、统一出口


图片来源:阿里巴巴 OneData


3. 统一业务归口

1.模型

规范化模型分层、数据流向和主题划分,从而降低研发成本,增强指标复用性,并提高业务的支撑能力。

2.规范

规范是数仓建设的保障。为了避免出现指标重复建设和数据字段难以理解的情况

(1) 词根

词根是维度和指标管理的基础,划分为普通词根与专有词根,提高词根的易用性和关联性。

  • 普通词根:描述事物的小单元体
  • 专有词根:具备约定成俗或行业专属的描述体,如:-USD。

(2) 表命名规范

通用规范

  • 表名、字段名采用一个下划线分隔词根(示例:clienttype->client_type)。
  • 每部分使用小写英文单词,属于通用字段的必须满足通用字段信息的定义。
  • 表名、字段名需以字母为开头
  • 表名、字段名长不超过64个英文字符。
  • 优先使用词根中已有关键字(数仓标准配置中的词根管理)
  • 在表名自定义部分禁止采用非标准的缩写

表命名规则

表名称 = 所处分层 + 业务主题 + 子主题 + 表含义 + 更新频率 + [分表:_0、_10]

(3) 指标命名规范

结合指标的特性以及词根管理规范,将指标进行结构化处理。

A. 基础指标词根,即所有指标必须包含以下基础词根:

基础指标词根 英文全称 Hive数据类型 MySQL数据类型 长度 精度 词根 样例
数量 count Bigint Bigint 10 cnt
金额类 amout Decimal Decimal 20 4 amt
比率/占比 ratio Decimal Decimal 10 4 ratio 0.9818

B.日期修饰词,用于修饰业务发生的时间区间。

日期类型 全称 词根 备注
daily d
weekly w
monthy m
季度 quarterly q Q1 ~ Q4

C.聚合修饰词,对结果进行聚集操作。

聚合类型 全称 词根 备注
平均 average avg
周累计 wtd wtd

E.基础指标,单一的业务修饰词 + 基础指标词根构建基础指标 ,例如:交易金额 - trade_amt

F.派生指标,多修饰词+基础指标词根构建派生指标。派生指标继承基础指标的特性,例如:新增门店数量-new_store_cnt

(4) 清洗规范

确认了字段命名和指标命名之后,根据指标与字段的部分特性,我们整理出了整个数仓可预知的24条清洗规范:

数据类型 数据类别 Hive类型 MySQL类型 长度 精度 词根 格式说明 备注
日期类型 字符日期类 string varchar 10 date YYYY-MM-DD 日期清洗为相应的格式
数据类型 数量类 bigint bigint 10 cnt 活跃门店

3. 统一数据出口

数仓建设保证数据质量以及数据的使用,对数据资产管理和统一数据出口之前:

  • 统一指标管理,保证了指标定义、计算口径、数据来源的一致性
  • 统一维度管理,保证了维度定义、维度值的一致性
  • 统一数据出口,实现了维度和指标元数据信息的出口,维值和指标数据的出口

4. 数据资产沉淀

相关文章