DataHub调研&数据血缘

这篇具有很好参考价值的文章主要介绍了DataHub调研&数据血缘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DataHub调研&数据血缘

1. DataHub? 阿里的数据工具datahub?

回答: 不是
DataHub是由Linkedin开源的,官方喊出的口号为:The Metadata Platform for the Modern Data Stack - 为现代数据栈而生的元数据平台。官方网站A Metadata Platform for the Modern Data Stack | DataHub。目的就是为了解决多种多样数据生态系统的元数据管理问题,它提供元数据检索、数据发现、数据监测和数据监管能力,帮助大家解决数据管理的复杂性。

DataHub基于Apache License 2开源,采用基于推送的数据收集架构(当然也支持pull拉取的方式),能够持续收集变化的元数据。当前版本已经集成了大部分流行数据生态系统接入能力,包括但不限于:Kafka, Airflow, MySQL, SQL Server, Postgres, LDAP, Snowflake, Hive, BigQuery。

源码仓库地址:

  • GitHub - linkedin/datahub: The Metadata Platform for the Modern Data Stack 该仓库包含DataHub前端和后端服务的完整源码。(DataHub采用先进的前后端分离架构)
  • https://github.com/linkedin/datahub-gma 该仓库包含DataHub元数据搜索和发现服务GMA

当前支持的数据栈列表:

数据源名称版 当前支持状态
Athena 支持
BigQuery 支持
Delta Lake 计划支持
Druid 支持
Elasticsearch 支持
Hive 支持
Hudi 计划支持
Iceberg 支持
Kafka Metadata 支持
MongoDB 支持
Microsoft SQL Server 支持
MySQL Oracle PostreSQL 支持
Redshift 支持
s3 支持
Snowflake 支持
Spark/Databricks 部分支持
Trino FKA Presto 支持

市面上常见的元数据管理系统有如下几个,后面章节进行比对:
a) linkedin datahub
b) apache atlas
c) lyft amundsen

2. 主要功能

DataHub是端到端的元数据发现工具,可以帮助数据管理者挖掘其公司数据的价值。

端到端搜索和发现

1)在数据库、数据湖、BI平台、ML特征存储、工作流配置等数据资产中进行[元数据集中查询搜索]

比如:在DataHub里面搜索"health",从所有的元数据(BigQuery数据集、DataHub Tags/Users等)中,得到了所有相关结果,可以在结果中,点击查看相关的结果。

2)通过跨平台、数据集、管道的[血缘关系追踪],轻松理解数据的端到端旅程

3)通过线性血缘图,快速获取相关实体的上下文

4)获取数据集准确性和相关性的确切信息

比如:DataHub针对流行的数据仓库平台提供数据集合的详细信息浏览和实用信息统计,让数据从业者更容易理解数据的形态。

构造坚实的文档和标签基础

1)通过API或DataHub UI获取并维护公司的知识库

​ 随着我们日常操作中定义和用例的丰富,DataHub可以轻松地更新和维护文档。除了通过GMS管理文档外,DataHub通 过UI界面提供丰富的文档和外部支持链接操作界面。

2)通过API或DataHub UI创建和定义新的标签(tag)

​ 在DataHub中可以通过GraphQL API轻松的创建和添加任何实体标签,这样随着时间的推移,实体的属性回越来越丰富。当有一天我们想要查看某一标签的相关实体信息时,只需要在标签位置点击该标签,就会将所有相关的实体数据 列出来。

触手可及的数据治理

1) 快速将资产所有权分配给用户或用户组

2) 使用策略管理细粒度访问控制

DataHub管理员可以创建相应的策略,来定义谁可以在哪些资源上执行什么样的活动。在指定策略时,同时管理员还可以进行如下指定操作:

  • 平台型策略 - 最高级别的DataHub平台权限,比如用户管理、组管理和策略管理等
  • 资源型策略 - 指定资源类型,比如数据集、看板、管道等
  • 权限策略 - 选择权限范围集合,比如编辑用户、编辑文档、编辑链接等
  • 用户或组策略 - 分配相关的用户或租;比如可以直接将策略分配给资源使用的用户,而不必太关注他属于哪个组

元数据质量和使用分析

通过DataHub可以对元数据进行深度挖掘。DataHub提供的分析视图可以清晰的展示元数据相关的操作信息,比如用户权限分配的频繁度、本周活动用户、常用的搜索条件及活动等。

3. 架构

Datahub的采用了model-first的架构理念,通过提供一个通用的元数据管理模型,再通过插件的方式集成各种数据平台,进行元数据的导入。整体的架构如下:
DataHub调研&数据血缘
该架构的优点有2个:

    1. 元数据同步方式多样:可以使用Rest、GraphQL API-s、Avro API(从Kafka消费元数据)
    1. 数据平台的元数据更改可以实时的被同步到Datahub;在Datahub对元数据进行更改,可以实时的在数据平台进行更新

3.1 Ingestion Framework的架构

DataHub支持Push、Pull、同步和异步的元数据导入
DataHub调研&数据血缘

3.1.1 Metadata Change Event(MCE)

MCE是元数据导入的中心。各种数据平台的元数据的实时变更,发送到MCE(由Kafka负责),这是一种异步元数据同步。也可以直接将数据平台的元数据通过HTTP方式发送到Datahub,这是一种同步元数据导入

3.1.2 Pull-based Integration

Datahub通过基于Python的metadata-ingestion系统,从不同的数据平台Pull元数据。然后将元数据Push到Kafka(MCE)或直接Push到Datahub。还可以从Airflow调度系统同步元数据和血缘关系

3.1.3 Push-based Integration

可以向Kafka Push一个元数据变更事件(MCE),或通过HTTP Push数据到Datahub。DataHub还提供了一些简单的Python emitters ,将其集成到我们自己的系统中,以便获取我们自己的系统元数据

3.1.4 Applier(mce-consumer)

消费Kafka的元数据消息,并转换成Datahub的元数据储存格式,再同步到Datahub

3.2 Datahub Serivce Tier架构

主要的服务是datahub-gms,它提供了一个REST API和一个GraphQL API对元数据进行CRUD操作,还提供支持二级索引、全文搜索的搜索查询,和血缘关系的图数据库查询API
DataHub调研&数据血缘

3.2.1 Metadata Storage

储存元数据的数据库,如Mysql、Postgresql、Couchbase

3.2.2 Metadata Commit Log Stream(MAE)

当将元数据更改更新到Metadata Storage中,Datahub Service Tier还会将该更改事件发送到Kafka

3.2.3 Metadata Index Applier (mae-consumer-job)

mae-consumer-job消费MAE(Kafka)中的数据,然后将更改事件流更新到elastic和neo4j,并生成相应的search index和graph index

3.2.4 Metadata Query Serving

基于主键的元数据读取,是从Data store数据库读取的。基于二级索引的元数据读取和全文搜索的元数据读取,是从elastic数据库读取的。基于血缘关系的图查询是从neo4j数据库读取的

4. 内部模块

4.1 Metadata Strore

用于储存Metadata 的Entities和Aspects(切面是一组属性的集合)。同时提供插入和查询API。其中储存由MySQL、Elasticsearch、Kafka负责。Rest API由Java Spring负责
DataHub调研&数据血缘

4.2 Metadata Models

DataHub调研&数据血缘
元数据模型采用PDL建模语言进行建模。分为Entity、Aspects、Relationships。

Entity:表示一个实体(如果数据库的一个表),每个实体实例都有一个唯一标识符;
Aspects:表示实体实例的术语、标签等;(DatasetProperties)包含一组描述数据集(Dataset)的属性(attributes)。切面可以在一组实体间共享,例如:属主(Ownership)是一个可以在多个拥有“拥有者(owners)”属性的实体间共享。
Relationships:表示不同实体实例的关系

下面是一个示例图,它由3种类型的实体(CorpUser、 Chart、 Dashboard)、2种类型的关系(OwnedBy、 Contains)和3种类型的元数据方面(OwnedInfo、 ChartInfo 和 DashboardInfo)组成。
DataHub调研&数据血缘
实体(Entities)的核心类型:

  • Data Platform: 一种数据“平台”。也就是说,涉及处理、存储或可视化数据资产的外部系统。示例包括 MySQL、 Snowflake、 Redshift 和 S3。
  • DataSet: 一组数据。表、视图、流、文档集合和文件都在 DataHub 上建模为“数据集”。数据集可以有标记、所有者、链接、术语表术语和附加到它们的描述。它们还可以具有特定的子类型,如“视图”、“集合”、“流”、“探索”等。示例包括 Postgres 表、 MongoDB 集合或 S3文件。
  • Chart: 图表,从数据集派生的单个数据可视化。单个图表可以是多个仪表板的一部分。图表可以有标签、所有者、链接、术语表术语以及附加到它们的描述。示例包括超集或查看器图表。
  • Dashboard: 用于可视化的图表集合。仪表板可以有标签、所有者、链接、术语表术语和描述附加到它们上面。示例包括 Superset 或 Mode Dashboard。
  • Data Job,Task: 处理数据资产的可执行作业,其中“处理”意味着消耗数据、生成数据或两者兼而有之。数据作业可以有标签、所有者、链接、术语表术语以及附加到它们的描述。它们必须属于单个数据流。示例包括 Airflow 任务。
  • Data Flow(pipe line) : 数据作业的一个可执行集合,它们之间存在依赖关系,或者一个 DAG。数据作业可以有标签、所有者、链接、术语表术语以及附加到它们的描述。例子包括气流 DAG。

元数据模型不同实体间的关系:
DataHub调研&数据血缘
DataSets元数据模型
DataSets元数据模型支持由三部分组成:

  • Data Platform (e.g. urn:li:dataPlatform:mysql)
  • Name (e.g. db.schema.name)
  • Env or Fabric (e.g. DEV, PROD, etc.)
    完整的: urn:li:dataset:(urn:li:dataPlatform:<platform>,<name>,ENV)
    DataHub调研&数据血缘

4.3 Ingestion Framework

元数据导入框架通过插件(python库)的方式,集成到Datahub系统。
可以从不同的数据平台将元数据,两种方式:

  1. 以Rest API直接导入,
  2. 将元数据生产到Kafka,再从Kafka消费导入到Datahub

元数据导入只需定义一个YAML文件,并执行datahub元数据导入命令
DataHub调研&数据血缘
元数据摄取

元数据集成datahub支持push-based与pull-based两种方式:
push-based:直接是数据源系统在元数据发生变化时主动推送到datahub
pull-based:是连接到数据源通过批量或者增量的方式提取元数据的过程

datahub提供两种形式的元数据摄取:通过直接api调用或kafka流。前者适合离线,后者适合实时。

datahub的api基于rest.li,这是一种可扩展的,强类型的restful服务架构,已在linkedin上广泛使用。由于rest.li使用pegasus作为其接口定义,因此可以逐字使用上一节中定义的所有元数据模型。从api到存储需要多层转换的日子已经一去不复返了-api和模型将始终保持同步。

对于基于kafka的提取,预计元数据生产者将发出标准化的元数据更改事件(mce),其中包含由相应实体urn键控的针对特定元数据方面的建议更改列表。

对api和kafka事件模式使用相同的元数据模型,使我们能够轻松地开发模型,而无需精心维护相应的转换逻辑。

元数据服务
datahub旨在支持对大量元数据的四种常见查询类型:

  • 面向文档的查询
  • 面向图的查询
  • 涉及联接的复杂查询
  • 全文搜索

4.4 GraphQL API

GraphQL API提供了一个强类型的、面向Entiry的API,通过GraphQL API与储存的元数据进行交互

DataHub调研&数据血缘
4.5 User Interface

4.5 用户管理

新用户帐户可以通过3种方式在 DataHub 上供应:

    1. 共享邀请链接
    1. 使用 OpenID 链接来配置单点登录(支持的有Azure AD, Okta, keycloak,Ping!, Google Identity)
    1. 静态凭证配置文件(仅自托管)单点登录
      DataHub调研&数据血缘
      DataHub调研&数据血缘

5. 特性

5.1 SQL分析

每个表的行和列计数对于每个列:

  • 空值计数和比例
  • 不同的数量和比例
  • 最小值,最大值,平均值,中位数,标准差,一些分位数值
  • 独特值的直方图或频率
    DataHub调研&数据血缘

5.2 数据血缘

DataHub 支持的数据血缘连接类型如下:

  • 数据集到数据集
  • 流水线谱系(数据集到作业到数据集dataset-to-job-to-dataset)
  • 从仪表盘到图表的血统
  • 图表到数据集的血缘
  • Job-to-dataflow (dbt 血缘)

字段血缘支持不足 没有atlas对hive那么精细?
新版本支持了字段血缘,FineGrainedLineages可以加上下游字段对应:
DataHub调研&数据血缘
DataHub调研&数据血缘

6. 安装

6.1 release版本

Data Hub v0.1.0-alpha Pre-release 2019-10-28 warehouse

LinkedIn开源出来的,原来叫做WhereHows 。经过一段时间的发展datahub于2020年2月在Github开源文章来源地址https://www.toymoban.com/news/detail-465017.html

Version Release Date Links
v0.10.0 2023-02-07 Release Notes, View on G

到了这里,关于DataHub调研&数据血缘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一站式元数据治理平台——Datahub入门宝典

    随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程。作为新一代的元数据管理平台,Datahub在近一年的时间里发展迅猛,大有取代老牌元数据管理工具Atlas之势。国内Datahub的资料非常少,大部分公司想使用Datahub作为自己的元数据管理平台,但可参

    2024年02月11日
    浏览(52)
  • 数据治理之关键环节元数据管理开源项目datahub探索

    @ 目录 概述 定义 核心功能 概念 元数据应用 其他开源 架构 概览 组件 元数据摄取架构 服务体系结构 本地部署 环境要求 安装 摄取样例 摄取入门 介绍 核心概念 命令行MySQL摄取示例 配置ClickHouse摄取示例 datahub 官网地址 https://datahubproject.io/ 最新版本v0.10.2 datahub 官网文档地址

    2024年02月04日
    浏览(45)
  • 如何构建数据血缘系统

    在进行血缘系统构建之前,需要进行需求调研,明确血缘系统的主要功能,从而确定血缘系统的最细节点粒度,实体边界范围。 例如节点粒度是否需要精确到字段级,或是表级。一般来说, 表级粒度血缘可以解决 75% 左右的痛点需求,   字段级血缘复杂度较表级血缘高出许

    2024年02月01日
    浏览(64)
  • 数据血缘管理

    作为数据分析师,充分认识业务数据流,可以大大提高数据分析效率。 1.什么是数据血缘管理? 数据血缘管理是元数据管理的重要组成部门,它描述数据的上下游关系。 按血缘对象来分,可分为系统级血缘、表级血缘、字段(列)级血缘。不管是结构化数据还是非结构化数

    2024年02月04日
    浏览(31)
  • 数据仓库表级血缘应用

    在数据仓库的建设过程中,伴随着时间的迁移或多或少会遇到一些问题: 1、模型越来越多,表也越来越多,运维压力愈来愈大,当一大波问题来临时,感觉每张表都需要保障,但对优先保障哪些表没有数据支撑 2、业务口径的变化导致需要对下游数据链路进行改造,但数据链

    2024年02月03日
    浏览(25)
  • datahub元数据管理平台从安装到使用一站式指南(未完)

    目录 一 datahub安装 1.1 datahub在线安装 1.1.1 docker在线安装 1.1.2 python在线安装 1.1.3 datahub在线安装并启动 1.2 datahub离线安装 1.2.1 docker离线安装 1.2.2 python离线安装 1.2.3 datahub离线安装并启动 1.3 本地环境替换datahub docker 1.3 安装过程中可能遇到的问题 1.3.1 python3安装后导致yum不能正常

    2024年02月06日
    浏览(60)
  • 元数据管理平台Datahub0.10.5版本安装部署与导入各种元数据手册

    官网文档连接 DataHub Quickstart Guide | DataHub (datahubproject.io) 本文所选择的Python的版本为3.8.16,Docker版本为20.10.0,Datahub为0.10.5版本 python必须为3.7以上的版本。0.10.5不支持以下的版本 如果要使用web上的 添加数据源  直接调用的python和pip命令 需要把环境变量设置过去。不能用pyth

    2024年02月07日
    浏览(31)
  • 元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata

    大家好,我是独孤风。元数据管理平台层出不穷,但目前主流的还是Atlas、Datahub、Openmetadata三家,那么我们该如何选择呢? 本文就带大家对比一下。要了解元数据管理平台,先要从架构说起。 下面介绍元数据管理的架构实现,不同的架构都对应了不同的开源实现。 下图描述

    2024年02月03日
    浏览(32)
  • 数据血缘Atlas Rest-API使用

    atlas支持对hive元数据的管理,通过执行bin/import-hive.sh脚本即可,但目前大多数离线平台是用spark分析数据的,而spark元数据atlas解析不出来数据血缘,这就需要我们自己通过解析spark执行计划再结合atlas rest-api组建出来我们的数据血缘,接下来和大家分享一下atlas rest-api使用方法

    2024年02月08日
    浏览(40)
  • 数据血缘分析工具SQLFLow自动画出数据库的 ER 模型

    马哈鱼数据血缘分析器 通过分析你所提供的 SQL 脚本,或者连接到数据库,可以自动画出数据库的 ER 模型,可视化表和字段的关系,帮助你迅速了解数据库的设计模型,进行高效的团队沟通。 马哈鱼通过两种途径来为你自动可视化 ER 模型。 你只需要提供创建数据库的 SQL 脚

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包