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

大家好,我是独孤风。

又到了本周的开源项目推荐。最近推荐的元数据管理项目很多,但是很多元数据管理平台的功能复杂难用。

那么有没有轻量一点的元数据管理项目呢?

今天为大家推荐的开源项目,就是一个轻量级的元数据管理工具。虽然轻量,但是元数据的收集、展示、数据血缘等功能都是支持的。

让我们一起来看看吧~

Marquez概述

今天为大家推荐的开源项目名为Marquez。这是WeWork开源的元数据管理工具,可以对元数据进行收集,聚合和可视化。

Marquez提供了开源的元数据服务,用于数据生态系统元数据的收集、聚合和可视化。通过它可以对数据集整体的产生和消费情况进行把控。

并提供数据处理全过程的数据可视化,并可以对数据集的生命周期进行集中管理。

该项目还在蓬勃发展中,目前标星数为1.5K,最新版本为三周前发布的0.43.1。主要开发语言为Java和TS。

Marquez的部署与Java项目类似,只要启动对应的Web端服务和API服务就可以了。

特别强调一下Marquez的血缘API非常的简洁,可以轻松建立数据血缘依赖关系,这可以为数据质量等原因分析提供保证。

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

功能演示

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

如何安装?

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

拉取项目

bash 复制代码
$ git clone https://github.com/MarquezProject/marquez && cd marquez

可以用下面的命令启动

python 复制代码
$ ./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未来会支持越来越多的数据源,让我们一起期待一下吧~

相关推荐
常念阿弥陀佛7 天前
使用 fabric.js 开发移动端 H5 图片编辑器
开源项目·快图设计·图片编辑器·在线ps源码
Crazy Struggle1 个月前
.NET 8.0 前后分离快速开发框架
vue.js·开源项目·.net 8.0·权限管理系统
软件架构师-叶秋1 个月前
qmk开源键盘 rgb_matrix_indicators_advanced_user函数
github·键盘·开源项目·qmk键盘
时光追逐者1 个月前
C#/.NET/.NET Core技术前沿周刊 | 第 2 期(2024年8.19-8.25)
c#·asp.net·.net·.netcore·开源项目
强哥之神1 个月前
您知道有哪些主流的大模型LLM开源项目吗?
语言模型·chatgpt·大模型·llm·bert·transformer·开源项目
Crazy Struggle2 个月前
.NET 免费开源工业物联网网关
物联网·网关·.net·开源项目
Crazy Struggle2 个月前
推荐一款界面优雅、功能强大的 .NET + Vue 权限管理系统
.net·开源项目·权限管理系统
爱听书的程序员阿超2 个月前
技术文档必备工具:注释目录树神器 Annotree,我的第一个正式开源项目
前端·开源项目·效率工具
时光追逐者3 个月前
【干货】微信小程序免费开源项目合集
微信小程序·小程序·开源项目
破碎的天堂鸟3 个月前
Java集合框架中迭代器Iterator的作用是什么?
java·开发语言·开源项目