首页 > 其他分享 >【开源项目】轻量元数据管理解决方案——Marquez

【开源项目】轻量元数据管理解决方案——Marquez

时间:2024-01-10 09:22:41浏览次数:29  
标签:name 数据 轻量 namespace 数据管理 OpenLineage Marquez my

大家好,我是独孤风。

又到了本周的开源项目推荐。最近推荐的元数据管理项目很多,但是很多元数据管理平台的功能复杂难用。
那么有没有轻量一点的元数据管理项目呢?
今天为大家推荐的开源项目,就是一个轻量级的元数据管理工具。虽然轻量,但是元数据的收集、展示、数据血缘等功能都是支持的。
让我们一起来看看吧~

Marquez概述

今天为大家推荐的开源项目名为Marquez。这是WeWork开源的元数据管理工具,可以对元数据进行收集,聚合和可视化。
Marquez提供了开源的元数据服务,用于数据生态系统元数据的收集、聚合和可视化。通过它可以对数据集整体的产生和消费情况进行把控。
并提供数据处理全过程的数据可视化,并可以对数据集的生命周期进行集中管理。

该项目还在蓬勃发展中,目前标星数为1.5K,最新版本为三周前发布的0.43.1。主要开发语言为Java和TS。
Marquez的部署与Java项目类似,只要启动对应的Web端服务和API服务就可以了。
特别强调一下Marquez的血缘API非常的简洁,可以轻松建立数据血缘依赖关系,这可以为数据质量等原因分析提供保证。

可在大数据流动后台回复“Marquez”获取安装包,源代码与学习资料。

功能演示

请参考大数据流动视频号的功能演示:

如何安装?

可以docker快速安装,需要至少满足如下版本。

拉取项目

$ git clone https://github.com/MarquezProject/marquez && cd marquez

可以用下面的命令启动

$ ./docker/up.sh --seed

请通过访问http://localhost:3000浏览到 UI 。然后,使用页面右上角的搜索栏搜索该职位etl_delivery_7_days。要查看 的沿袭元数据etl_delivery_7_days,请从下拉列表中单击该作业:

您应该看到作业namespacename和数据集,input并且output作业运行标记为COMPLETED

最后,单击 的输出数据public.delivery_7_daysetl_delivery_7_days。您应该看到数据集nameschemadescription

API的使用

项目启动后就可以调用API了。

下面是一个简单的例子,首先我们要启动一个血缘事件。

$ curl -X POST http://localhost:5000/api/v1/lineage \
  -i -H 'Content-Type: application/json' \
  -d '{
        "eventType": "START",
        "eventTime": "2020-12-28T19:52:00.001+10:00",
        "run": {
          "runId": "d46e465b-d358-4d32-83d4-df660ff614dd"
        },
        "job": {
          "namespace": "my-namespace",
          "name": "my-job"
        },
        "inputs": [{
          "namespace": "my-namespace",
          "name": "my-input"
        }],  
        "producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
        "schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/definitions/RunEvent"
      }'

随后完成该任务。

$ curl -X POST http://localhost:5000/api/v1/lineage \
  -i -H 'Content-Type: application/json' \
  -d '{
        "eventType": "COMPLETE",
        "eventTime": "2020-12-28T20:52:00.001+10:00",
        "run": {
          "runId": "d46e465b-d358-4d32-83d4-df660ff614dd"
        },
        "job": {
          "namespace": "my-namespace",
          "name": "my-job"
        },
        "outputs": [{
          "namespace": "my-namespace",
          "name": "my-output",
          "facets": {
            "schema": {
              "_producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
              "_schemaURL": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/spec/OpenLineage.json#/definitions/SchemaDatasetFacet",
              "fields": [
                { "name": "a", "type": "VARCHAR"},
                { "name": "b", "type": "VARCHAR"}
              ]
            }
          }
        }],     
        "producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
        "schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/definitions/RunEvent"
      }'

注意运行正常的话我们应该接到201 CREATED的响应。

在页面搜索,将得到血缘展示。

这只是Marquez的基本用法。

Marquez提供元数据采集的一个标准方案,目前支持Spark,Airflow的表级别和列级别的数据血缘收集。
而Flink暂时只支持表级别的血缘收集。
相信Marquez未来会支持越来越多的数据源,让我们一起期待一下吧~

标签:name,数据,轻量,namespace,数据管理,OpenLineage,Marquez,my
From: https://www.cnblogs.com/tree1123/p/17953454

相关文章

  • #星计划#OpenHarmony轻量系统-获取当地时间
    前言在轻量设备里面,我们常常需要获取本地时间,用于时间显示,log记录,帮助RTC芯片纠正时间等等。我们在之前设计了一个智慧时钟,需要使用到本地当前时间,因此本篇文章想在OpenHarmony上实现SNTP获取本地时间,并将此功能集成为一个模块,便于我们的主程序调用。环境OpenHarmony3.1润和his......
  • 简洁、轻量级的 Go API 框架
    本次分享的框架是「gin-api-mono」介绍gin-api-mono前先了解go-gin-apigo-gin-api这是一个基于Gin的API框架,它提供了WEB界面一键安装的方式,让你可以快速启动一个开箱即用的Go项目。无论你是否有项目经验,这个框架都适合作为练手项目使用(新手入门必备)。该框架采用了......
  • 问题:项目主数据管理原则? ()
    今日学习笔记【机械类-新能源汽车工程试题】每一道题都有解答问题:项目主数据管理原则?()A.归口管理原则B.联动共享原则C.阶段性更新原则D.风险预控原则参考答案如图所示......
  • 轻量对象存储 LighthouseCOS 用户实践征文
    产品使用攻略、上云技术实践,有奖征集,多重好礼等您带回家~存储桶一键挂载轻量应用服务器,简单易用,腾讯云轻量对象存储用户实践征文活动特惠:腾讯云轻量云专场特惠活动。投稿说明注册/登录腾讯云账号,腾讯云开发者社区PC端页面右上角点击写文章发布文章,作者可自荐上首页及分享文......
  • Docker搭建轻量个人文件分享服务-文件传输自由
    title:Docker搭建轻量个人文件分享服务-文件传输自由tags:[Docker,文件分享,下载,分享,网盘,PingvinShare,NAS]新版原文:https://query.carlzeng.top:3/appsearch?q=Docker搭建轻量个人文件分享服务-文件传输自由版权声明:本博客所有文章除特别声明外,均采用BY-NC-SA许可......
  • 经纬恒润轻量化网络自动化测试系统TestBase_DESKNAT重磅发布!
        经纬恒润桌面式网络自动化测试系统TestBase_DESKNAT2.0产品重磅发布! ......
  • go-carbon v2.3.1 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库
    carbon是一个轻量级、语义化、对开发者友好的golang时间处理库,支持链式调用。目前已被awesome-go收录,如果您觉得不错,请给个star吧github.com/golang-module/carbongitee.com/golang-module/carbon安装使用Golang版本大于等于1.16//使用github库goget-ugithu......
  • 低代码之光!轻量级 GUI 的设计与实现
    前言每当提起低代码,很多人都会下意识的出现过激反应,吐槽低代码都是**,唯恐避之不及。可能大部分人觉得低代码就是替代手写代码,对于程序员来说这是不可接受的。其实低代码表述的含义非常宽泛,我相信很多人可能都在低代码平台中受益过,而且确实可以提升效率。像原型工具(Figma)、建站平......
  • 轻量级力量:深入MiniZip库,实现C++中ZIP文件的简便压缩与解压
     MiniZip是一个轻量级的压缩库,它是zlib库的一部分,用于在C++中进行ZIP文件的压缩和解压缩操作。以下是MiniZip的一些功能和优点:功能:创建ZIP文件: MiniZip可以用于创建包含一个或多个文件的ZIP归档。压缩: MiniZip支持使用不同的压缩算法对文件进行压缩,例如DEFLATE。解压缩......
  • 玩转云端 | 多云时代,数据管理就该这么“库”!
    随着上云成为普遍趋势、企业需求的多样化发展,单一的云模式已经无法满足企业用户的复杂需求,单云模式下深度绑定一朵云所带来的成本不确定性以及安全风险日益增加。数据显示,超过92%的企业计划选择多云的上云方案。天翼云作为云服务国家队,凭借在资源充裕度、网络覆盖范围、产品安全性......