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

f4c0f2e5acf88cef050b927f2755e9d3.png

大家好,我是独孤风。

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

49cee93b904f7ec0d72ab944ea59d51d.jpeg

Marquez概述

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

e95eaf16721ffd56f61f74783244887f.jpeg

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

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

功能演示

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

如何安装?

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

  • Docker 17.05+

  • Docker Compose

拉取项目

$ 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,请从下拉列表中单击该作业:

7a572aa9cdc30b44b6a1900c8815c741.png

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

3ef828746d0b2257bd96e6fff013c4c1.png

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

dea338b680d048fa604396c27ab5deb3.png

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的响应。

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

8c04830ca1f54bcf9f2a25b4b9c64290.png

这只是Marquez的基本用法。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/340365.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL之list

目录 list定义和结构 list容器模板接受两个参数: list容器的特点 双向性 动态大小 不连续存储 实例 代码输出 需要注意的点 list常用函数 代码示例 list定义和结构 list的使用频率不高,在做题时极少遇到需要使用list的情景。 list是一种双向…

SpringBoot用MultipartFile.transferTo传递相对路径的问题

问题描述: 打算给自己的项目添加一个上传文件保存功能,于是我使用MultipartFile.transferTo()来完成这个功能,由于我的项目要部署到服务器,所以我使用了相对路径把上传的文件保存到当前项目的工作目录下,但是报错了&am…

软件测试|探索Python中获取最高数值的几种方法

前言 在数据分析、统计和编程领域,经常会遇到需要从一组数值中找出最高数值的情况。Python 作为一门功能丰富的编程语言,提供了多种方法来实现这一目标。在本文中,我们将探索几种获取最高数值的方法,帮助大家在不同情况下选择最适…

X3En【禾川】

地址: P9-00 波特率:【005】 故障码:

使用python读取yaml文件数据

使用python读取yaml文件: yaml文件数据:data.yaml login_data:url: http://www.baidu.comcase1:user1: password1: 12345errorText: 请输入用户名case2:user2: adminpassword2: errorText: 请输入密码case3:user3: adminpassword3: 123456errorText: 登…

0111qt

实现闹钟,并播报懒虫...~ daytest.pro: QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (th…

Spring Security介绍

一、Spring Security: 1、简介:Spring Security 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(A…

基于SpringBoot的教学管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

热点报告 | “尔滨”火出东北,本期热点带你盘活冬季营销

您是否曾有以下困惑?打开小红书首页推荐,似乎已经被算法教育成了成熟的信息茧房,想要找到下一个热点,又忧虑一叶以障目;看着搜索框热词,又担心无法掌握热词背后的话题命脉,难以在浮光掠影中寻找…

基于OpenMV与STM32的数据通信项目(代码开源)

前言:本文为手把手教学 OpenMV 与 STM32 的数据通信项目教程,本教程使用 STM32F103C8T6 与 OpenMV 进行操作。 OpenMV 是非常强大的计算机视觉实现工具,自身提供了非常多的视觉项目案例,编程与使用门槛极低。为了进一步增强作品的…

模型的可解释性

一、PI:Permutaion Importance — 排列重要性 作用:衡量特征重要性方法 原理: 代码示例:基于模型用球队的统计数据预测一个足球队会不会出现“全场最佳球员” import numpy as np import pandas as pd from sklearn.model_sele…

Scrapy框架自学

配置国内镜像源 # pip设置配置 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set trusted-host pypi.tuna.tsinghua.edu.cn创建虚拟环境 # 使用conda创建虚拟环境(具体内容请参考课件) conda create -n py_s…