数据库技术狂热爱好者,执着的ABCD领域探索者
关注他
18 人赞同了该文章
    1.引言
   
当前属于大数据时代,数据爆炸式增长,当然管理数据的工具也是层出不穷,从传统的单机关系型数据库PostgreSQL、Oracle、MySQL、MS SQL到擅长分析的Greenplum、Clickhouse、Vertica等,再到前几年火的不要不要的Hadoop体系,种类繁多的数据管理软件,也得有上百种了。以下截图节选自知名VC Matt Turck分享的数据栈:
     
   
     
   
    完整图片获取地址:
    
     http://mattturck.com/wp-content/uploads/2021/12/2021-MAD-Landscape-v3.pdf
    
   
    2.问题的产生
   
当然我们今天不是要讨论这些数据管理软件的优劣。大家从第一部分也可以看到,数据管理软件层出不穷,小型企业可能并不能切身感受到多种数据技术带来的苦恼,但是稍微成规模的企业,总要有自己的业务系统数据库、分析型数据平台、海量数据存储的平台等等,那么这么多平台带来的最直观的问题就是管理。
    数据平台多,数据可能存在多个不必要的副本,数据质量就无法保证,
    
     数据的空间感就会很差
    
    ,数据管理的混乱,导致的直接问题就是,业务无法第一时间找到最合适的数据源,数据平台之间不能产生数据的联动。
   
    这个问题不是刚出现的问题,在数据发展的历史长河中,已经有很多人对这个问题进行了研究,进而产生了各种开源与闭源方案。那么今天,我们就来看看近几年由Linkedin开源的元数据管理/数据治理平台:
    
     DataHub
    
    是如何解决这个问题的。
   
    3.DataHub简介
   
     
   
    DataHub是由Linkedin开源的,官方喊出的口号为:
    
     The Metadata Platform for the Modern Data Stack – 为现代数据栈而生的元数据平台
    
    。官方网站
    
     传送门
    
    。目的就是为了解决多种多样数据生态系统的元数据管理问题,它提供
    
     元数据检索
    
    、
    
     数据发现
    
    、
    
     数据监测
    
    和
    
     数据监管
    
    能力,帮助大家解决数据管理的复杂性。
   
DataHub基于Apache License 2开源,采用基于推送的数据收集架构(当然也支持pull拉取的方式),能够持续收集变化的元数据。当前版本已经集成了大部分流行数据生态系统接入能力,包括但不限于:Kafka, Airflow, MySQL, SQL Server, Postgres, LDAP, Snowflake, Hive, BigQuery。
- 
     
 源码仓库地址
 
 :- 
       
 linkedin/datahub
 
 : 该仓库包含DataHub前端和后端服务的完整源码。(DataHub采用先进的前后端分离架构)
- 
       
 linkedin/datahub-gma
 
 : 该仓库包含DataHub元数据搜索和发现服务GMA
 
- 
       
     
   
     
   
    4.DataHub主要功能
   
DataHub是端到端的元数据发现工具,可以帮助数据管理者挖掘其公司数据的价值。DataHub的主要功能特点如下。
    4.1 端到端搜索和发现
   
    4.1.1 在数据库、数据湖、BI平台、ML特征存储、工作流配置等数据资产中进行[元数据集中查询搜索]
   
    从下面两个截图可以看到,在DataHub里面搜索
    
     health
    
    ,从所有的元数据(BigQuery数据集、DataHub Tags/Users等)中,得到了所有相关结果,可以在结果中,点击查看相关的结果。
   
     
   
     
   
    4.1.2 通过跨平台、数据集、管道的[血缘关系追踪],轻松理解数据的端到端旅程
   
从下面两个截图可以看到,“DataHub Health”这个查询的依赖关系表一级一级的展示出来,可以通过点击➕展开下一级内容。通过使用lineage视图,可以详细的查看在数据集和管道中的依赖关系。
     
   
     
   
    4.1.3 通过线性血缘图,快速获取相关实体的上下文
   
从下面截图可以看到,通过在图上点击相关实体,可以很容易的查看文档、使用状态、用户等信息。
     
   
    4.1.4 获取数据集准确性和相关性的确切信息
   
DataHub针对流行的数据仓库平台提供数据集合的详细信息浏览和实用信息统计,让数据从业者更容易理解数据的形态。
     
   
    4.2 构造坚实的文档和标签基础
   
上面4.1部分展示的是DataHub的搜索查看特性,本节介绍一下它在维护编辑方面的特性。
    4.2.1 通过API或DataHub UI获取并维护公司的知识库
   
随着我们日常操作中定义和用例的丰富,DataHub可以轻松地更新和维护文档。除了通过GMS管理文档外,DataHub通过UI界面提供丰富的文档和外部支持链接操作界面。
     
   
    4.2.2 通过API或DataHub UI创建和定义新的标签(tag)
   
通过下图可以看到,在DataHub中可以通过GraphQL API轻松的创建和添加任何实体标签,这样随着时间的推移,实体的属性回越来越丰富。当有一天我们想要查看某一标签的相关实体信息时,只需要在标签位置点击该标签,就会将所有相关的实体数据列出来。
     
   
    4.3 触手可及的数据治理
   
元数据管理平台,最终的目的是实现数据的有效治理,DataHub提供一系列的数据治理功能,本部分介绍它的几个特性。
    4.3.1 快速将资产所有权分配给用户或用户组
   
通过点击实体的详细信息,进入详细信息浏览界面,可以在【Owners】部分轻松快速的将该资产分配给某个用户或用户组。如下图所示:
     
   
    4.3.2 使用策略管理细粒度访问控制
   
DataHub管理员可以创建相应的策略,来定义谁可以在哪些资源上执行什么样的活动。在指定策略时,同时管理员还可以进行如下指定操作:
- 平台型策略 – 最高级别的DataHub平台权限,比如用户管理、组管理和策略管理等
- 资源型策略 – 指定资源类型,比如数据集、看板、管道等
- 权限策略 – 选择权限范围集合,比如编辑用户、编辑文档、编辑链接等
- 用户或组策略 – 分配相关的用户或租;比如可以直接将策略分配给资源使用的用户,而不必太关注他属于哪个组
下面给大家放一张直观的策略分配图:
     
   
    4.4 元数据质量和使用分析
   
通过DataHub可以对元数据进行深度挖掘。DataHub提供的分析视图可以清晰的展示元数据相关的操作信息,比如用户权限分配的频繁度、本周活动用户、常用的搜索条件及活动等。
     
   
    5.当前支持的数据栈列表
   
DataHub仍然处于活跃开发阶段,在最后这一部分,给大家罗列一下DataHub目前支持的数据栈有哪些:
    5.1 支持的数据源有哪些
   
| 数据源名称 | 当前支持状态 | 
|---|---|
| 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 | 支持 | 
    5.2 支持的BI工具有哪些
   
| 数据源名称 | 当前支持状态 | 
|---|---|
| Business Glossary | 支持 | 
| Looker | 支持 | 
| Redash | 支持 | 
| Superset | 支持 | 
| Tableau | 计划支持 | 
| Grafana | 部分支持 | 
    5.3 支持的ETL/ELT工具有哪些
   
| 数据源名称 | 当前支持状态 | 
|---|---|
| dbt | 支持 | 
| Glue | 支持 | 
    5.4 支持的工作流编排工具有哪些
   
| 数据源名称 | 当前支持状态 | 
|---|---|
| Airflow | 支持 | 
| Prefect | 计划支持 | 
最后的最后,如果您感觉我的分享有用,欢迎点赞并关注,后续会继续分享更具体的Datahub操作案例给大家。
 
