3. 元数据基础与分类
在数据治理语境中,元数据不是“关于数据的备注”,而是描述数据资产身份、结构、含义、来源、变化和使用方式的结构化信息。它决定了数据能否被找到、被理解、被信任,也决定了血缘、影响分析和审计能否成立。Azure 中常见的元数据来源包括 Microsoft Purview、Azure SQL Database 系统目录、Azure Data Factory 活动日志、Azure Synapse 工作区元数据、Databricks Unity Catalog 以及各类存储账户的路径与文件属性。理解元数据分类,是后续设计采集、存储和治理流程的前提。
三类元数据的核心区别
技术元数据描述“数据长什么样、存在哪里、如何被处理”。典型内容包括数据库名、表名、列名、数据类型、主外键、分区键、文件格式、存储路径、压缩方式、索引、视图定义、ETL 任务名、管道参数、连接字符串引用等。它主要服务于开发、运维和数据工程人员,回答的是结构、位置和加工方式问题。
业务元数据描述“数据代表什么业务含义、由谁负责、如何使用”。典型内容包括业务术语、指标定义、计算口径、数据域、数据产品、负责人、敏感级别、数据质量规则、使用限制、SLA 等。它主要服务于数据分析师、业务用户和治理人员,回答的是“这个字段能不能用来算活跃客户”“营收口径是否含税”这类问题。
操作元数据描述“数据在何时、以何种方式被处理、被访问、被变更”。典型内容包括任务运行时间、持续时间、成功/失败状态、读取行数、写入行数、错误信息、访问日志、查询历史、数据更新时间、作业触发方式、资源消耗等。它主要服务于运维、审计和可观测性场景,回答的是“昨晚的管道是否成功”“这张表最近谁查过”“延迟是否异常”等问题。
三者不是互相替代,而是互相补全。技术元数据提供结构骨架,业务元数据提供语义解释,操作元数据提供运行证据。缺少技术元数据,血缘无法精确到列;缺少业务元数据,数据发现结果难以被业务用户理解;缺少操作元数据,影响分析和故障定位会失去时间维度。
元数据在数据发现、血缘与影响分析中的作用
数据发现依赖业务元数据与技术元数据的联合检索。假设业务用户想找“客户流失率”相关数据,如果只按表名搜索,可能得到 dw_cust_churn_tbl 这类难以理解的名称;如果该表已绑定术语“客户流失率”,并标注了负责人、敏感级别和更新频率,用户就能快速判断是否可用。Azure Purview 的搜索体验正是把术语、分类、资产类型和联系人组合成过滤条件,使发现过程从“猜表名”变成“按业务语义定位”。
血缘追踪依赖技术元数据与操作元数据的结合。技术元数据提供“表 A 经过管道 P 写入表 B”的结构关系,操作元数据提供“管道 P 在 2025-03-18 02:15 成功运行,读取 120 万行,写入 118 万行”的运行证据。Azure Data Factory 和 Synapse 管道在运行时会向 Purview 推送活动级血缘,Databricks 作业可通过 Unity Catalog 血缘事件补充列级关系。这样形成的血缘图不仅能显示方向,还能显示最近一次实际执行情况。
影响分析是血缘的反向应用。当源表某列类型从 nvarchar(50) 改为 nvarchar(20) 时,影响分析需要回答:哪些下游表、视图、管道、报表和指标会受影响?技术元数据给出依赖路径,业务元数据标出关键指标和负责人,操作元数据则帮助判断哪些下游任务最近仍在运行、哪些已经停用。三者结合后,变更评审才能从“凭经验判断”转为“按证据评估”。
Azure中的典型存储与采集方式
Azure 中元数据并非集中在一个地方,而是分布在多个服务中,再通过采集汇聚到治理平台。常见方式包括:
- Microsoft Purview 扫描:对 Azure SQL、Synapse、ADLS Gen2、Databricks 等数据源注册后,由扫描规则自动抽取技术元数据,包括表、列、类型、分区和部分分类信息。
- Purview 术语表与分类:业务元数据通常由数据管理员手工登记或通过 API 批量导入,绑定到具体资产上,形成业务语义层。
- ADF / Synapse 血缘推送:管道运行时自动向 Purview 发送活动级血缘,无需额外编写采集代码,但需要确保数据工厂与 Purview 账户已建立连接。
- Azure Monitor / Log Analytics:操作元数据如管道运行状态、持续时间、错误码、资源消耗等,可通过诊断设置输出到 Log Analytics,再用于监控和审计。
- Unity Catalog:在 Azure Databricks 中,表、列、血缘、访问权限等元数据由 Unity Catalog 统一管理,并可与 Purview 集成实现跨平台治理。
一个可参考的元数据登记示例
以下示例展示一张销售事实表在 Purview 中可能登记的元数据字段,用于说明三类元数据如何落在同一资产上。示例为教学假设,不代表真实系统输出。
| 元数据类别 | 字段/属性 | 示例值 | 作用 |
|---|---|---|---|
| 技术元数据 | 资产名称 / 列 / 类型 | dbo.FactSales / OrderDate / date | 定位结构与数据类型 |
| 技术元数据 | 存储路径 / 格式 | abfss://curated@datalake.dfs.core.windows.net/sales/parquet | 确认物理位置与读取方式 |
| 业务元数据 | 业务术语 / 指标口径 | 销售额 = 含税净额,不含退货 | 统一业务理解 |
| 业务元数据 | 负责人 / 敏感级别 | 销售数据域 / 内部 | 明确责任与访问限制 |
| 操作元数据 | 最近运行时间 / 状态 | 2025-03-18 02:15 / 成功 | 判断数据新鲜度与可用性 |
| 操作元数据 | 读取行数 / 写入行数 | 1,200,000 / 1,180,000 | 发现数据量异常与丢失 |