基于DataHub元数据血缘管理实施方案

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

目录

1. 元数据管理实施方案总览

2. 元数据分类

2.1 技术元数据

2.2 业务元数据

3. 元数据标签体系

 基础标签 

数仓标签

 业务标签

潜在标签

4. 表元数据

4.1  基于pull机制抽取元数据

web端ui方式

cli端yml方式

yml解析

yml模板

4.2. RESET-API方式

API-MEDTADA人工构建模板

5. 血缘元数据

5.1 基于push机制构建血缘元数据

 SparkSql场景

SparkSession场景

5.2 基于Rest API机制构建血缘元数据

RESET-API-LINEAGE DEMO

RESET-API-LINEAGE构建工具

 mr hql程序基于REST-API构建血缘(走pub_execute_sql脚本)

 mr hql回算程序基于REST-API构建血缘(走回算脚本)

 waterdrop  hive-ck REST-API 构建血缘(water drop脚本方式)

6. cli手工删除元数据

删除开发环境中的所有数据集

删除特定平台的所有容器

删除开发环境中的所有管道和任务

删除 PROD 环境中的所有 bigquery 数据集

删除所有外观仪表板和图表

删除与查询匹配的所有数据集

7. 基于graphiql查询血缘以及上下游数量

Demo

查询表依赖上下游数量以及依赖明细UTILS


1. 元数据管理实施方案总览

基于DataHub元数据血缘管理实施方案

2. 元数据分类

元数据按用途的不同分为两类:技术元数据( Technical Metadata)和业务元数据( Business Metadata )

2.1 技术元数据

技术元数据是存储关于数据仓库系统技术细节的数据,用于开发和管理数据仓库使用的数据。常见的技术元数据有:

    • 分布式计算系统存储元数据:如Hive表、列、分区等信息。记录了表的表名。分区信息、责任人信息、文件大小、表类型,生命周期,以及列的字段名、字段类型、字段备注、是否是分区 段等信息。
    • 分布式计算系统运行元数据:如 Spark上所有作业运行等信息:类似于 Job 日志,包括作业类型、实例名称、输入输出、 SQL 、执行时间。数据开发平台中数据同步、计算任务、任务调度等信息。
    • 数据质量和运维相关元数据:如任务监控、运维报警、数据质量、故障等信息,包括任务监控运行日志、告警配置及运行日志、故障信息等。

2.2 业务元数据

业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够看懂数据仓库中的数据。常见的业务元数据有:

    • Data 元数据:如维度及属性、业务过程、指标等的规范化定义,用于更好地管理和使用数据。
    • 数据应用元数据:如数据报表、数据产品等的配置和运行元数据。

3. 元数据标签体系

    利用元数据标签不仅可以节约研发人员的时间成本,同时对公司内部的非研发人员来说,也可以更直观地理解数据、利用数据,从而提升数据的研发效率。所以在datahub里可以预先建设domain共和glossary词库用于对数据进行打标。

  •  基础标签 

  1. 数据的存储情况
  2. 访问情况
  3. 数据安全等级
  • 数仓标签

  1. 数据是增量/全量
  2. 是否可再生
  3. 数据的生命周期
  •  业务标签

  1. 数据归属的主题域
  2. 产品线BU
  3. 业务类型
  • 潜在标签

这类标签主要是为了说明数据潜在的应用场景

  1. 社交
  2. 媒体
  3. 广告
  4. 电商
  5. 金融

4. 表元数据

4.1  基于pull机制抽取元数据

    Datahub的pull是基于插件的方式。可以检查数据源获取插件Source,转换插件transformer,获取插件Sink。插件安装命令如:pip install 'acryl-datahub[mysql]'

使用命令查看当前已安装的插件python3 -m datahub check plugins

基于DataHub元数据血缘管理实施方案

  • web端ui方式

基于DataHub元数据血缘管理实施方案

  • cli端yml方式

基于DataHub元数据血缘管理实施方案

yml解析

模板

source:
type: mysql #数据源可以是hive等其他,相应的config配置有细微不同
config:
   host_port: 172.16.8.69:3308
   database: test
    username: "root"
    password: "root"
    profiling: #hive中统计慎用,容易资源拉满,集群垮掉
        enabled: True
        include_field_min_value: True
       include_field_max_value: True 
    stateful_ingestion: #开启状态,在拉取全数据时候会自动增删
      enabled: True
      remove_stale_metadata: True
#大部分情况transformer不需要配置
transformers:
- type: "simple_remove_dataset_ownership"
config:
owner_urns:
     - "urn:li:corpuser:username1"
     - "urn:li:corpuser:username2"
     - "urn:li:corpGroup:groupname"
ownership_type: "PRODUCER"
#默认就是datahub-rest
sink:
   type: "datahub-rest"
config:
    server: 'http://localhost:8080'
pipeline_name: mysql_pipline #要支持状态,必须有pipline名称
datahub_api: # Optional. But if provided, this config will be used by the "datahub" ingestion state provider.
server: "http://localhost:8080"

source

更多config 详情见官方文档Input objects | DataHub (datahubproject.io)

source:
type: mysql #数据源可以是hive等其他,相应的config配置有细微不同
config:
   host_port: 172.16.8.69:3308
   database: test
    username: "root"
    password: "root"
    profiling:
        enabled: True
        include_field_min_value: True
       include_field_max_value: True 
    stateful_ingestion: #开启状态,在拉取全数据时候会自动增删
      enabled: True
      remove_stale_metadata: True

transformer(可不配置)

(1)添加标签

使用 simple_add_dataset_tags 模块给添加标签。
可以使用自己的模块函数通过 add_dataset_tags 自定义标签。
transformers:
- type: "simple_add_dataset_tags"
config:
tag_urns:
- "urn:li:tag:NeedsDocumentation"
- "urn:li:tag:Legacy"

(2)更改拥有者

使用 simple_remove_dataset_ownership 清除数据拥有者。
transformers:
- type: "simple_remove_dataset_ownership"
config: {}

使用 simple_add_dataset_ownership 添加一系列用户。
transformers:
- type: "simple_add_dataset_ownership"
config:
owner_urns:
- "urn:li:corpuser:username1"
- "urn:li:corpuser:username2"
- "urn:li:corpGroup:groupname"
ownership_type: "PRODUCER"

(3)根据数据集 urn 模式设置拥有者关系,为不同的数据集设置不同的拥有者。

transformers:
- type: "pattern_add_dataset_ownership"
config:
owner_pattern:
rules:
".*example1.*": ["urn:li:corpuser:username1"]
".*example2.*": ["urn:li:corpuser:username2"]
ownership_type: "DEVELOPER"

(4)标记数据集状态

不想在界面看到某个数据集,就需要将其标记为“已移除”。
transformers:
- type: "mark_dataset_status"
config:
removed: true

(5)添加数据集浏览路径

通过转换为数据集添加浏览路径。有 3 个可选变量:

ENV:传递的环境变量,默认 prod。

PLATFORM:DataHub 支持的平台,例如:mysql、postgres。

DATASET_PARTS:斜线分割的数据集名称,例如:database_name/[table_name]。

这样就会给 hive 数据库的 cn_sisyphe_dm_book.biz_batch_operate_record浏览路径 表生成一个:

/prod/hive/cn_sisyphe_dm_book/biz_batch_operate_record浏览路径。

transformers:
- type: "set_dataset_browse_path"
config:
path_templates:
- /ENV/PLATFORM/DATASET_PARTS
#不需要 ENV 并且固定路径中的某部分。
transformers:
- type: "set_dataset_browse_path"
config:
path_templates:
- /PLATFORM/marketing_db/DATASET_PARTS
这会为 MySQL 数据库 sales.orders 表产生浏览路径:/mysql/marketing_db/sales/orders。
可以设置多浏览路径。不同的人对同样的数据资产有不同的名字。
transformers:
- type: "set_dataset_browse_path"
config:
path_templates:
- /PLATFORM/marketing_db/DATASET_PARTS
- /data_warehouse/DATASET_PARTS
这样会生成 2 个浏览路径:
① /mysql/marketing_db/sales/orders
② /data_warehouse/sales/orders
 

sink

  • (1)Console

将元数据事件输出到标准输出。
用于试验和调试。
source:
source configs
sink:
type: "console"
 

  • (2)DataHub

① DataHub Rest
使用 GMS Rest 接口将元数据推送到 DataHub。
任何错误可以立即被报告。
还有一些字段可以设置:timeout_sec、token、extra_headers、max_threads。
source:
source configs
sink:
type: "datahub-rest"
config:
   server: "http://datahubip:8080"
② DataHub Kafka
通过发布消息到 Kafka 将元数据推送至 DataHub。
异步的可以处理更高的流量。
有一些跟连接相关的字段配置信息。

source:
source configs
sink:
type: "datahub-kafka"
config:
   connection:
   bootstrap: "localhost:9092"
   schema_registry_url: "http://datahubip:8081"
 

  • (3)File

将元数据输出到文件。
使用 File 汇可以将源数据源的处理和推送从 DataHub 解耦。
也适合于调试目的。
使用 File 源可以从 File 汇的数据文件读取元数据。
source:
source configs
sink:
type: file
config:
   filename: ./path/to/mce/file.json
 

  • yml模板

不论是ui方式还是cli方式都需要配置yml文件。例举如下我司常用的组件,更多模板详见Athena | DataHub (datahubproject.io)

mysql模板

能力

地位

笔记

数据探查 (可选)通过配置启用
检测已删除的实体 通过有状态引入启用
通过配置字段支持domain
平台实例 默认启用

此插件提取以下内容:数据库、架构和表的元数据 通过可选的 SQL 分析与每个表关联的列类型和架构 表、行和列统计信息

正在上传…重新上传取消文章来源地址https://www.toymoban.com/news/detail-473870.html

clickhouse模板

能力

地位

笔记

数据探查 (可选)通过配置启用
检测已删除的实体 通过有状态引入启用

此插件提取以下内容:

        • 表、视图、实例化视图和字典的元数据
        • 与每个表关联的列类型(*聚合函数和日期时间与时区除外)
        • 通过可选的 SQL 分析对表、行和列进行统计信息。
        • 表,视图,具体化视图和字典(带有CLICKHOUSE source_type)血缘

正在上传…重新上传取消

clickhouse-usage模板(统计ck使用详情)

能力

地位

笔记

数据探查 (可选)通过配置启用
检测已删除的实体 通过有状态引入启用

此插件具有以下功能 -

        1. 对于特定的数据集,此插件引入以下统计信息 -
          1. 前 n 个查询。
          2. 顶级用户。
          3. 数据集中每列的用法。
        2. 将这些统计信息按天或小时粒度聚合到存储桶中。

hive模板

能力

地位

笔记

通过配置字段支持domain
平台实例 默认启用

此插件提取以下内容:

        • 数据库、架构和表的元数据
        • 与每个表关联的列类型
        • 详细的表和存储信息
        • 通过可选的 SQL 分析对表、行和列进行统计信息。

4.2. RESET-API方式

手工构建元数据(即使表不存在)

基于DataHub元数据血缘管理实施方案

API-MEDTADA人工构建模板

正在上传…重新上传取消

5. 血缘元数据

5.1 基于push机制构建血缘元数据

    •  SparkSql场景

自动解析sparksql依赖关系

基于DataHub元数据血缘管理实施方案

 sparksql模板

正在上传…重新上传取消

    • SparkSession场景

自动解析sparkrdd/df依赖关系

sparkSession模板

spark = SparkSession.builder \
.master("spark://spark-master:7077") \
.appName("test-application") \
.config("spark.jars.packages","io.acryl:datahub-spark-lineage:0.8.23") \
.config("spark.extraListeners","datahub.spark.DatahubSparkListener") \
.config("spark.datahub.rest.server", "http://ipt:8080") \
.enableHiveSupport() \
.getOrCreate()

5.2 基于Rest API机制构建血缘元数据

    • RESET-API-LINEAGE DEMO

手工构建表与表之间血缘

基于DataHub元数据血缘管理实施方案 正在上传…重新上传取消

RESET-API-LINEAGE构建工具

基于DataHub元数据血缘管理实施方案

正在上传…重新上传取消

    •  mr hql程序基于REST-API构建血缘(走pub_execute_sql脚本)

基于DataHub元数据血缘管理实施方案

    •  mr hql回算程序基于REST-API构建血缘(走回算脚本)

基于DataHub元数据血缘管理实施方案

    •  waterdrop  hive-ck REST-API 构建血缘(water drop脚本方式)

基于DataHub元数据血缘管理实施方案

6. cli手工删除元数据

基于DataHub元数据血缘管理实施方案

datahub delete --urn "urn:li:dataset:(urn:li:dataPlatform:clickhouse,DatabaseNameToBeIngested.add_record.product_user_new_20220117,PROD)" --hard(必须要硬删,软删可能会导致后续同名的表注册不进去)

删除开发环境中的所有数据集

datahub delete --env DEV --entity_type dataset

删除特定平台的所有容器

datahub delete --entity_type container --platform s3

删除开发环境中的所有管道和任务

datahub delete --env DEV --entity_type "datajob"
datahub delete --env DEV --entity_type "dataflow"

删除 PROD 环境中的所有 bigquery 数据集

datahub delete --env PROD --entity_type dataset --platform bigquery --hard

删除所有外观仪表板和图表

datahub delete --entity_type dashboard --platform finereport --hard
datahub delete --entity_type chart --platform finereport --hard

删除与查询匹配的所有数据集

datahub delete --entity_type dataset --query "_tmp" -n

7. 基于graphiql查询血缘以及上下游数量

172.16.8.69:9002/api/graphiql#,查询地址,更多文档详见DataHub GraphQL API | DataHub (datahubproject.io)

Demo

query{
dataset(
urn: "urn:li:dataset:(urn:li:dataPlatform:hive,cn_sisyphe_dim.biz_employee_account,PROD)" #查询的表
) {
lineage(
input: {direction: DOWNSTREAM, start: 0, count: 100, separateSiblings: true} #direction可选DOWNSTREAM或者UPSTREAM,start:从offset第几个起 count:返回结果数
) {
start #返回字段
count #返回字段
total #返回总共有多少条结果
relationships {
type
degree
entity {
type
urn
relationships(input: {types: [], start: 0, count: 100, direction: 查询该表关联的表,该层可以不查询
start
count
total
relationships {
type
entity {
urn
type
}
created {
actor
}
direction
}}}}}}}

查询表依赖上下游数量以及依赖明细UTILS

基于DataHub元数据血缘管理实施方案

正在上传…重新上传取消

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

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

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

相关文章

  • 238页9万字大数据治理与服务平台建设及数据服务实施方案(word)

    本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 1.1.1nbsp; 业务需求分析 根据对招标要求的理解,建设业务需求主要包括如下几个方面: (1)建设完善数据库:通过人口、法人、空间地理库数据源整合开发,并对接电子证照库。实现对人口、法人、空

    2024年02月02日
    浏览(36)
  • 三级等保安全解决方案——实施方案

    实施方案设计 本方案将依照国家有关信息安全建设的一系列法规和政策,为电台建立体系完整、安全功能强健、系统性能优良的网络安全系统。以“统一规划、重点明确、合理建设、逐步强化”为基本指导原则。根据电台网络系统不同信息的重要性调整保护策略,不欠保护也

    2024年04月29日
    浏览(37)
  • 水库大坝安全监测系统实施方案

    一、方案概述 水库大坝作为特殊的建筑,其安全性质与房屋等建筑物完全不同,并且建造在地质构造复杂、岩土特性不均匀的地基上,目前对于大坝监测多采用人工巡查的方法,存在一定的系统误差,其工作性态和安全状况随时都在变化。如果出现安全问题,将会引发大坝下

    2024年02月12日
    浏览(38)
  • 明厨亮灶监控实施方案 opencv

    明厨亮灶监控实施方案通过python+opencv网络模型图像识别算法,一旦发现现场人员没有正确佩戴厨师帽或厨师服,及时发现明火离岗、不戴口罩、厨房抽烟、老鼠出没以及陌生人进入后厨等问题生成告警信息并进行提示。OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机

    2024年02月10日
    浏览(30)
  • Jmeter的自动化测试实施方案

    前言: Jmeter是目前最流行的一种测试工具,基于此工具我们搭建了一整套的自动化方案,包括了脚本添加配置、本地配置和运行、服务器配置等内容,完成了自动化测试闭环,通过这种快捷简便高效的方式,希望可以解决自动化测试上手难的痛点。下面闲言少叙,我们直接切

    2024年02月10日
    浏览(42)
  • DataHub调研&数据血缘

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

    2024年02月07日
    浏览(34)
  • 电信联通5G共建共享方案实施及验证

    一、情况概述 随着2019年9月9日中国电信集团与联通签署《5G网络共建共享框架合作协议书》,电信与联通在全国范围内合作共建5G接入网络。根据合作协议,联通运营公司将与中国电信在全国范围内合作共建一张5G接入网络, 双方划定区域,分区建设,各自负责在划定区域内的

    2024年01月25日
    浏览(33)
  • 案例分享:西河水库安全监测信息化系统实施方案

    一、项目概述 1.1项目背景 西河水库信息化工作已开展多年,但是由于西河水库监测设备都已经老化或者损坏,现有设备已渐渐不能满足新时期西河水库信息化和现代化发展需求。因此,灌区管理局拟在运用现代信息和通信技术手段感测、分析、整合水库运行核心系统的各项

    2024年02月09日
    浏览(47)
  • AMD老电脑超频及性能提升方案及实施

    收拾电子元件的时候找到了若干古董的CPU 其中有一个X3 440 是原来同学主板烧了之后给我的,我从网上配了AM2 昂达主板,然后又买了AMD兼容内存,组成了win7 64位电脑,用起来非常不错,我把硬件配置和升级过程说明下,先看现在的配置: 处理器: 其中前端总线和总线速度都

    2024年02月05日
    浏览(40)
  • promise时效架构升级方案的实施及落地

    promise时效包含两个子系统:内核时效计算系统(系统核心是时效计算)和组件化时效系统(系统核心是复杂业务处理以及多种时效业务聚合,承接结算下单黄金流程流量),后者依赖前者,分别由两组技术团队支持;因为有些业务的渗透造成两个系统的边界越来越不清晰;有

    2024年02月05日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包