
【读书笔记】阿里巴巴大数据实践:元数据(第12章)
随着集团业务的快速发展,数据库表的数量不断增加,任何人都无法宣告绝对地了解所有数据。为这些纷繁复杂、交错纵横的数据库表给构建一份数据地图,梳理各个业务域的数据血缘,向数据研发和使用人员提供使用指南,提高数据链路的整体效率、创造业务价值。
·
第 12 章 元数据
一句话评论:随着集团业务的快速发展,数据库表的数量不断增加,任何人都无法绝对地宣告了解所有数据。为这些纷繁复杂、交错纵横的数据库表构建一份数据地图,梳理各个业务域的数据血缘,向数据研发和使用人员提供使用指南,提高数据链路的整体效率、创造业务价值。
1 元数据概述
(1)元数据的定义
- 元数据(Metadata)就是关于数据的数据。换言之,是对数据的描述、是数据的地图、是使用数据的说明手册。
- 技术元数据(Technical Metadata):是存储关于数据仓库系统技术细节的数据,使用者多为ETL开发和数据管理人员。例如,
- 分布式计算系统存储元数据,如MaxCompute表名、字段名、字段类型、分区信息、责任人信息等。
- 分布式计算系统运行元数据,如MaxCompute所有的作业运行信息,类似于Job日志,作业类型、实例名称、SQL、运行参数、执行时间等。
- 数据开发平台中数据同步、计算任务、任务调度等信息,如同步的输入输出表名和字段名、任务节点、任务间依赖关系等。
- 数据质量和运维相关的元数据,如任务监控、运维报警、数据质量、故障等信息。
- 业务元数据(Businesses Metadata):从业务角度描述数仓中的数据,类似于给业务人员提供的数据说明手册。例如,
- OneData元数据,如维度、属性、业务过程、指标等的规范化定义,方便业务人员高效使用。
- 数据应用元数据,如数据报表、数据产品等的配置是和运行元数据。
(2)元数据的价值
- 数据管理:在计算、存储、成本、质量、安全、模型等数据治理提供数据支持,如利用元数据查找超长运行节点。
- 数据内容:在提取和分析数据域、数据主题、业务属性等方面提供数据支持,如利用元数据构建知识图谱,给数据打标签。
- 数据应用:帮助大同产品及应用链路,保障产品数据准确、及时产出,如大同MaxCompute和应用数据,明确数据资产等级。
(3)统一元数据体系的建设
- 目标是打通数据接入–数据加工–数据消费链路,规范元数据体系与模型,提供统一的元数据服务出口,保障元数据产出的稳定性和质量。建设思路如图:
2 元数据应用
- 数据真正的价值在数据驱动决策,通过数据指导运营。
(1)DataProfile
- 核心思路是为庞大复杂的数据建立一个脉络清晰的血缘图谱,自动为数据达标、整理、归档,承担了为数据”画像“的任务,解决了 “表在哪里?”、“这个表/字段从哪里来的?”、“这个表/字段被哪些下游表使用了?”、“这个表存储了什么主题数据?” 等问题,提高 研发人员 的效率。包括四类标签:
- 基础标签:数据的存储、访问、安全情况。
- 数仓标签:数据是全量or增量、是否可以再生、生命周期等情况。
- 业务标签:为数据归属的主题域、产品线、业务类型打上标签。
- 潜在标签:为数据潜在的应用场景打标,例如”社交“、”媒体“、”电商“、”金融“等。
(2)元数据门户
- “前台”产品:数据地图,提供数据搜索、数据血缘分析等服务。
- “后台”产品:数据管理平台,为个人开发者提供计算费用、存储费用、健康分管理等服务,为管理员提供BU、应用、集群等全局资产消耗概览,分析和预测。
(3)应用链路分析
- 类似于从数据产品倒推数据链条,回答的问题诸如“这个数据产品都依赖哪些表?”、“这些被依赖的表的重要性如何?”、“某些表是否还要继续运维保障?”,利用血缘链路发现问题从而保障数据产品的稳定性。
- 通过应用链路分析,产出 表级血缘、字段血缘和表的应用血缘(难点)。 其中,表级血缘的计算方式有2种:
- 通过MaxCompute任务日志进行解析。
- 根据任务依赖进行解析。
- 特别地,表的应用血缘解析是难点,对于生意参谋这种间接使用Maxcompute且与物理数据库没有配置依赖关系的产品,主要通过统一的应用日志打点SDK来解决。(?)
(4)驱动数据建模
- 利用元数据驱动数据仓库模型建设,提高建模效率。
- 所使用的主要元数据包括,
- 表的基础元数据:包括下游情况、查询次数、关联次数、聚合次数、产出时间等。
- 表的关联元数据:包括关联表、关联类型、关联字段、关联次数等。
- 表字段的基础元数据:包括字段名称、字段注释、查询次数(select)、关联次数(join)、聚合次数(group by)、过滤次数(where)等。
- 例如,在设计星型模型时,基于下游使用中关联次数or查询次数大于1000次的表(字段)等元数据信息,筛选用于数据模型建设的表。
(5)驱动ETL开发
- 例如,可以通过DataProfile得到数据的下游依赖情况、最近被读写的次数、是否可以再生、每天消耗的存储计算等信息,根据一些规则判断可以下线,则通过OneClick触发一键下线任务,提高运维的效率。
To be continued…
更多推荐
所有评论(0)