大数据:元数据(Metadata)

一、元数据概述

 1、元数据定义

  • 元数据:按传统的定义,元数据就是关于数据的数据;

 

  • 元数据的用途:
    • 打通源数据、数据仓库、数据应用,记录数据从产生到消亡的全过程;
      • 主要记录:数据仓库中模型的定义各层级间的映射关系、监控数据仓库中的数据状态、监控 ETL 的任务的运行状态;
      • 在数据仓库系统中,元数据可以帮助数据仓库管理员和开发人员,非常方便的  到他们所关系的数据,用于指导其进行数据管理和开发,提供工作效率;

 

  • 将元数据按用途的不同分为两类:
    1. 技术元数据(Technical Metadata);
    2. 业务元数据(Business Metadata);

 1/1)技术元数据

  • 作用 / 用途:存储关于数据仓库系统技术细节的数据,用于开发和管理数据仓库
  • 例:阿里常见的技术元数据:
  1. 分布式计算系统的存储元数据
    • 如,MaxCompute 表、列、分区等:
      1. 记录了表的表名、分区信息、负责人信息、文件大小、表类型,生命周期;
      2. 列的字段名、字段类型、字段备注、是否是分区字段等;
  2. 分布式计算系统的运行元数据
    • 如,MaxCompute 上所有作业运行等信息;
      • 类似于 Hive 的 Job 日志,包括作业类型、实例名称、输入输出、SQL、运行参数、执行时间、最细粒度的 Fuxi Instance(MaxCompute 中 MR执行的最小单元)执行信息等;
  3. 数据开发平台中,数据同步、计算任务、任务调度等信息
    • 数据同步信息:数据同步的输入输出表和字段、同步任务本身的节点信息;
    • 任务调度信息:任务的依赖类型、依赖关系等,以及不同类型调度任务的运行日志等;
    • 计算任务信息:输入输出、任务本身的节点信息;
  4. 与数据质量和运维相关的元数据
    • 如任务监控、运维报警、数据质量、故障等信息,包括任务监控运行日志、告警配置及运行日志、故障信息等;

 

 1/2)业务元数据

  • 作业 / 用途:从业务角度描述了数据仓库中的数据,提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够 “读懂” 数据仓库中的数据;
  • 阿里常见的业务元数据:
    1. OneData 元数据
      • 如,维度及属性、业务过程、指标等的规范化定义,用于更好的管理和使用数据;
    2. 数据应用元数据
      • 如,数据报表、数据产品等的配置和运行元数据;

 

2、元数据的价值

  • 元数据最重要的应用价值,是数据管理、数据内容、数据应用的基础;
  1. 数据管理方面
    • 为集团数据提供在计算、存储、成本、质量、安全、模型等治理领域上的数据支持;
      • 如,在计算上可以利用元数据查找超长运行节点,对这些节点进行专项治理,保障基线产出时间;
  2. 数据内容方面
    • 为集团数据进行数据域、数据主题、业务属性等的提取和分析,提供数据材料;
      • 如,可以利用元数据构建知识图谱,给数据打标签,清楚的知道现在有哪些数据;
  3. 数据应用方面
    • 打通了产品及应用链路,保障产品数据准确、及时产出;
      • 如,打通 MaxCompute 和应用数据,明确数据资产等级,更有效的保障产品数据;

 

3、统一元数据体系建设

  • 元数据建设的目标
    • 打通数据接入到加工,再到数据消费的整个链路,规范元数据体系与模型,提供统一的元数据服务出口,保障元数据产出的稳定性和质量;

 

  • 元数据体系建设的思路:(以阿里元数据体系  OneMata  为例)

  1. 首先梳理清楚元数据底层数据

    1. 对元数据做分类,较少数据重复建设,保障数据的唯一性;
      • 分类:计算元数据、存储元数据、质量元数据、模型元数据、成本管理元数据等;
    2. 丰富表和字段使用说明,方便使用和理解;
  2. 根据元仓底层数据构建元仓中间层

    1. 依据 OneData 规范,建设元数据基础宽表,也就是元数据中间层,打通从数据产生到消费的整个链路,不断丰富中间层数据;
      • 如,MaxCompute 元数据、调度元数据、同步元数据、产品访问元数据、服务器元数据、应用注册元数据等;
    2. 基于元数据中间层,对外提供标准统一的元数据服务出口,保障元数据产出的质量;
  3. 应用

    1. 丰富的元数据中间层,能够为集团数据提供在计算、存储、成本、质量、安全、模型等治理领域上的数据支持,形成一套完整的 ROI 数据体系;
    2. 丰富的元数据中间层,还能为为集团数据进行数据内容、数据域、数据主题、业务属性等的提取和分析提供了数据素材;

 

 

二、元数据应用

  • 数据的真正价值在于,数据驱动决策,通过数据指导运营;
    • 数据化运营:通过数据驱动的方法,判断趋势,从而展开有效行动,帮助发现问题,推动创新或解决方案的产生;
  • 元数据应用示例:

    1. 对于数据使用者,可以通过元数据指导其快速找到所需要的数据;
    2. 对于 ETL 工程师,可以通过元数据指导其进行模型设计、任务优化、任务下线等各种日常 ETL 工作;
    3. 对于运维工程师,可以通过元数据指导其进行整个集群的存储、计算、系统优化等运维工作;

 

1、Data Profile

  • 核心思路为纷繁复杂的数据,建立一个脉络清晰的血缘图谱
  • 主要功能:通过图计算、标签传播算法等技术,系统化、自动化的对计算与存储平台上的数据,进行打标、整理、归档
    • 形象的说,Data Profile 实际承担的是为元数据 “画像” 的任务;

 

  • Data Profile 共有四类标签:

    • 思路:数据之间的个性化,除了应用场景的不同之外,实际上在数据研发流程、保障登记、数据质量要求、安全等级、运维策略、警告设置上都会有差异;
    • 作用:节约研发人员的时间成本,同时对阿里内部的非研发人员来说,也可以更直观的理解数据、利用数据,从而提升数据的研发效率;
    • 根据这种差异化,Data Profile 开发了四类标签:
      1. 基础标签:针对数据的存储情况、访问情况、安全等级等进行打标;
      2. 数仓标签:针对数据是增量还是全量、是否可再生、数据的生命周期来进行标签化处理;
      3. 业务标签:根据数据归属的主题域、产品线、业务类型,为数据打上不同的标签;
      4. 潜在标签:主要为了说明数据潜在的应用场景,如,社交、媒体、广告、电商、金融等;

 

 

2、元数据门户

  • 主要功能:数据搜索和数据管理;
  • 功能模块:“前台”、“后台”;
  1. “前台” 产品数据地图

    • 功能:定位消费市场,实现检索数据、理解数据等 “找数据” 的需求;
    • 数据地图
      • 服务对象:围绕数据搜索,服务于数据分析、数据开发、数据挖掘、算法工程师、数据运营等,数据表的使用者和拥有者;
      • 服务内容:提供方便快捷的数据搜索服务,拥有功能强大的血缘信息及影响分析,利用表使用说明、评价反馈、表收藏级精品表机制,为用户浮现高质量、高保障的目标数据;
        1. 如,在数据分析前,使用数据地图进行关键词搜索,帮助快速缩小范围,找到对应的数据;
        2. 如,使用数据地图根据表名直接查看表详情,快速查阅明细信息,掌握使用规则;
        3. 如,通过数据地图的血缘分析,可以查看每个数据表的来源、去向,并查看每个表及字段的加工逻辑;
  2. “后台” 产品数据管理

    • 功能:定位于一站式数据管理,实现成本管理、安全管理、质量管理等;
    • 数据管理平台:
      • 服务对象及内容:个人开发者、BU 管理者、系统管理员等用户,提供个人和 BU 全局资产管理、成本管理、质量管理等;
        1. 针对个人开发者,主要包括计算费用和健康分管理、存储费用和健康分管理,并提供优化建议和优化接口;
        2. 针对 BU 管理者和管理员,主要提供 BU、应用、集群等全局资产消耗概览、分析和预测;

 

3、应用链路分析

  • 思路 / 功能
    • 配置数据间的 “血缘关系”,用户可以通过元数据血缘,分析产品及应用的链路;通过血缘链路可以清楚的统计到某个产品所用到的数据在计算、存储、质量上存在哪些问题;通过治理优化保障产品数据的稳定性;

 

  • 实例:业务需求
    • 对于某个数据计算任务或表,其重要程度如何?是否还有下游在使用?是否可以下线?
    • 阿里的很多数据产品,都依赖哪些 MaxCompute 表?对这些 MaxCompute 表是否需要根据应用的重要程度进行资源、运维保障?
  • 解决思路:
    • 通过元数据血缘来分析产品及应用的链路,通过血缘链路可以清楚的统计到某个产品所用到的数据在计算、存储、质量上存在哪些问题,通过治理优化保障产品数据的稳定性;
  • 通过应用链路分析,产出 3 中血缘类型:表级血缘、字段血缘、表的应用血缘

 

  • 表级血缘主要有 2 中计算方式:

    1. 通过 MaxCompute 任务日志进行解析;
    2. 根据任务依赖进行解析;

 

  • 表的应用血缘解析:

    • 难点最大;
    • 按照应用和物理表的配置关系,可以分为配置型和无配置型:
      1. 配置型:

        • 如,对于数据报表、集市等应用,其数据源直接或间接使用 MaxCompute 数据,且有元数据配置依赖关系,通过配置元数据,可以获取 MaxCompute 物理表、具体的报表、集市等应用的血缘关系;
        • 问题案例:对于生意参谋等数据产品,其数据源通过数据同步方式同步到 MySQL、HBase 等数据库,间接使用 MaxCompute 数据,且无配置产品和 MySQL、HBase 等物流数据源的依赖关系,导致无法通过配置源数据解析 MaxCompute 数据和数据产品的关系;
        • 解决方案:主要通过统一的应用日志打点 SDK 来解决此类问题,可以做到配置化、应用无痕化;
      2. 无配置型:

        • 常见的应用链路分析应用:主要有影响分析、重要性分析、下线分析、链路分析、寻根溯源、故障排查等;

 

4、数据建模

  • 思路 / 业务场景:基于现有底层数据已经有下游使用的情况,可以通过下游使用的元数据指导数据参考模型;
    • 通过元数据驱动的数据仓库模型建设,提高了数据仓库建模的数据化指导,提升建模效率;
    • 下游使用情况:指查询、关联、聚合、过滤等操作;
      • 记录下游使用情况的数据,就是辅助建设模型的元数据;
    • 操作:设置阈值,记录下游对数据的使用情况,使用次数超过阈值的情况,将被用来参考建模;

 

 

  • 数据仓库建模所使用的元数据:

    • 其中,查询值 SQL 的 SELECT,关联指 SQL 的 JOIN,聚合指 SQL 的 GROUP BY,过滤指 SQL 的 WHERE

    1. 表的基础元数据
      • 包括下游情况、查询次数、关联次数、聚合次数、产出时间等;
    2. 表的关联关系元数据
      • 包括关联表、关联类型、关联字段、关联次数等;
    3. 表的字段的基础元数据
      • 包括字段名称、字段注释、查询次数、关联次数、聚合次数、过滤次数等;

 

  • 在星形模型设计过程中,可能类似于如下使用元数据:

    1. 基于下游使用中关联次数大于某个阈值的表,或查询次数大于某个阈值的表等元数据信息,筛选用于数据模型建设的表;
    2. 基于表的字段元数据,如,字段中的时间字段、字段在下游使用中的过滤次数等,选择业务过程标识字段;
    3. 基于主从表的关联关系、关联次数,确定和主表关联的从表;
    4. 基于主从表的字段使用情况,如,字段的查询次数、过滤次数、关联次数、聚合次数等,确定哪些字段进入目标模型;

 

5、驱动 ETL 开发

  • 思路:通过元数据,指导 ETL 工作,提高 ETL 的效率;
  • 实例场景:

    1. 通过 Data Profile 得到数据的下游任务依赖情况、最近被读写次数、数据是否可再生、每天消耗的存储计算等,通过这些信息判断数据是否可以下线;
    2. 如果根据一些规则判断数据可以下线,则会通过 OneClick 触发一个数据下线的工作任务流,数据 Owner 可能只需要点击提交按钮,删除数据、删除元数据、下线调度任务、下线 DQC 监控等一些列的操作就会自动在后台执行完成;

 

posted @ 2020-09-09 15:20  何永灿  阅读(11855)  评论(1编辑  收藏  举报