数据治理工具-元数据管理


数据治理里面较关键的元数据管理,元数据打通数据源、数据仓库、数据应用,记录了数据从产生到消费的完整链路。它包含静态的表、列、分区信息(也就是MetaStore);动态的任务、表依赖映射关系;数据仓库的模型定义、数据生命周期;以及ETL任务调度信息、输入输出等。

元数据是数据管理、数据内容、数据应用的基础。例如可以利用元数据构建任务、表、列、用户之间的数据图谱;构建任务DAG依赖关系,编排任务执行序列;构建任务画像,进行任务质量治理;数据分析时,使用数据图谱进行字典检索;根据表名查看表详情,以及每张表的来源、去向,每个字段的加工逻辑;提供个人或BU的资产管理、计算资源消耗概览等。

数据治理解决方案:

WhereHows/Datahub

WhereHows是LinkedIn开源的元数据治理方案。Azkaban调度器抓取job执行日志,也就是Hadoop的JobHistory,Log Parser后保存DB,并提供REST查询。WhereHows太重,需要部署Azkaban等调度器,以及只支持表血缘,功能局限。

  • Wherehows是独立于源系统的,即在部署上wherehows与hive、Azkaban等源系统是无关的,wherehows仅仅是从源系统抓取元数据,这些元数据可以分为数据集类和作业类,其中作业类就是指调度任务信息(从调度系统的数据库中抓取以及从日志服务器抓取),如Azkaban、Oozie的调度信息以及相关执行日志
    • 数据集类源系统:以Hive为例,wherehows从Hive的元数据库如MySQL中抽取元数据并存储在自身的元数据仓库中,从而最终可以从wherehows中查看Hive中的元数据信息,如Hive中有哪些Database、Database下有哪些表等。Wherehows不能直接得到数据集的血缘,wherehows中数据集的血缘是从相关作业的分析中得到的。
    • 作业类源系统:以Azkaban为例,假设运行hive或pig任务,则wherehows可以从Azkaban的元数据库中获取作业信息、并从JobHistory获取实际运行的Hive或pig的日志,并对这些元数据以及日志数据解析形成血缘。

之后Linkedin根据了痛点和新的需求,重构了wherehows,目前datahub包括了四块,metadata, gms, etl, datahub。其中medata定义模型,gms基于模型生成服务,etl进行模型数据加工,datahub提供基于gms的元数据应用展现。
linkedin datahub:
https://github.com/linkedin/datahub

Atlas

Atlas是Apache开源的元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并提供数据资产的协作功能。
altas
架构包括5大部分:

  1. 存储部分:
    • Metadata Hbase:采用Hbase来存储元数据
    • Index store:采用Solr来建索引
  2. 提取元数据:metadata Sources,目前,Atlas支持以下来源提取和管理元数据:Hbase,Hive,Sqoop, Storm,Kafka。
  3. 应用层:
    • Admin UI:该组件是一个基于Web的应用程序,允许使用者发现和注释元数据,这里最重要的是搜索界面和类似SQl的查询语言,可用于查询Atlas管理的元数据类型和对象。
    • Ranger Tag Policies:权限管理模块
    • Business Taxonomy:业务分类
  4. 核心层:
    • (Ingest/Export)采集/导出:采集组件允许将元数据添加到Atlas。同样,导出组件将Atlas检测到的元数据更改公开为事件。
    • Type System:用户为他们想要管理的元数据对象定义模型。Type System称为“实体”的“类型”实例,表示受管理的实际元数据对象。
    • Graph Engine图形引擎:Atlas再内部使用Graph模型持久保存它管理的元数据对象。
  5. 融合层:
    • API:Atlas的所有功能都通过REST API向最终用户暴露,该API允许创建,更新和删除类型的实体。它也是查询和发现Atlas管理的类型和实体的主要机制。
    • Messaging:除了API之外,用户还可以选择使用基于Kafka的消息传递接口与Atlas集成。

apache atlas:
https://github.com/apache/atlas
http://atlas.apache.org/

Amundsen

Amundsen是一个元数据管理的程序,可以将数据资产(物理表,元数据,用户资源代表,仪表板)可视化,同时建立索引并根据表的使用热度来支持页面上的元数据搜索,它包括三个微服务,一个图数据库,是一个公共库:
Amundsen1
1. amundsen frontendlibrary:前端服务,它是带有React前端的Flask应用程序,用于服务请求并充当元数据或搜索服务请求的中介。
2. amundsen searchlibrary:利用Elasticsearch(默认情况下,搜索服务与ElasticSearch 6.x集成在一起,但也可以与Apache Atlas集成,后者与Solr提供类似的搜索功能。)的搜索功能的搜索服务用于增强前端元数据搜索。
- 常规搜索:返回与给定搜索词和特定资源类型最相关的结果。
- 类别搜索:筛选主要搜索词与给定元数据类别匹配的资源(例如,搜索database:hive),然后根据相关性返回与次要搜索词匹配的结果。
- 通配符搜索:允许用户对不同资源执行通配符搜索。
3. amundsen metadatalibrary:元数据服务,利用Neo4j或Apache Atlas作为持久层,默认持久层是Neo4j,以提供各种元数据。
Amundsen2
4. amundsen databuilder:用于构建元数据图和搜索索引的数据提取框架。使用Apache Airflow作为Databuilder的编排引擎。每个数据构建器作业都是DAG(有向无环图)中的一个单独任务。每种类型的数据资源都将具有单独的DAG,因为它可能必须以不同的时间表运行。
amundsen3
5. amundsen common:在Amundsen的所有微服务中保存着通用代码。

Lyft Amundsen https://github.com/lyft/amundsen

猜你喜欢

转载自blog.csdn.net/weixin_42526352/article/details/105371012