Marquez 是一种开源元数据服务,用于数据生态系统元数据的收集、聚合和可视化。它维护数据集的消费和生成方式的来源,提供作业运行时和数据集访问频率的全局可见性、数据集生命周期管理的集中化等等。Marquez 由WeWork发布并开源。
Marquez 是一个LF AI & Data Foundation孵化项目,正在积极开发中,我们希望得到您的帮助!
想要添加吗?以我们的方式发送拉取请求!
Marquez 提供了一种使用OpenLineage收集和查看数据集、作业以及运行元数据的简单方法。最简单的启动和运行方法是使用 Docker。从 Marquez 存储库的基础上,运行:
$ ./docker/up.sh
提示:使用该
--build
标志从源构建图像,和/或--seed
使用示例谱系元数据启动 Marquez。有关使用示例元数据的更完整示例,请遵循我们的快速入门指南。
注意:端口 5000 现在为 MacOS 保留。如果在 MacOS 上本地运行,您可以运行
./docker/up.sh --api-port 9000
将 API 配置为侦听端口 9000。请记住,您需要使用适当的端口号更新下面的 URL。
WEB UI
您可以打开http://localhost:3000开始探索 Marquez Web UI。UI 使您能够通过沿袭图发现作业及其生成和使用的数据集之间的依赖关系,查看当前和先前作业运行的运行元数据等等!
<span data-target="animated-image.imageContainer">
<img data-target="animated-image.replacedImage" alt="demo.gif" class="AnimatedImagePlayer-animatedImage" src="https://github.com/MarquezProject/marquez/raw/main/web/docs/demo.gif" style="display: block; opacity: 1;">
<canvas class="AnimatedImagePlayer-stillImage" aria-hidden="true" width="814" height="448"></canvas></span></a>
<button data-target="animated-image.imageButton" class="AnimatedImagePlayer-images" tabindex="-1" aria-label="Play demo.gif" hidden=""></button>
<span class="AnimatedImagePlayer-controls" data-target="animated-image.controls" hidden="">
<button data-target="animated-image.playButton" class="AnimatedImagePlayer-button" aria-label="Play demo.gif">
<svg aria-hidden="true" focusable="false" class="octicon icon-play" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 13.5427V2.45734C4 1.82607 4.69692 1.4435 5.2295 1.78241L13.9394 7.32507C14.4334 7.63943 14.4334 8.36057 13.9394 8.67493L5.2295 14.2176C4.69692 14.5565 4 14.1739 4 13.5427Z">
</path></svg>
<svg aria-hidden="true" focusable="false" class="octicon icon-pause" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<rect x="4" y="2" width="3" height="12" rx="1"></rect>
<rect x="9" y="2" width="3" height="12" rx="1"></rect>
</svg>
</button>
<a data-target="animated-image.openButton" aria-label="在新窗口中打开" class="AnimatedImagePlayer-button" href="https://github.com/MarquezProject/marquez/blob/main/web/docs/demo.gif" target="_blank">
<svg aria-hidden="true" class="octicon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg>
</a>
</span>
</span></animated-image>
HTTP API
Marquez HTTP API侦听5000
所有调用的端口和5001
管理界面的端口。管理界面公开了有用的端点,例如/healthcheck
和/metrics
。要验证 HTTP API 服务器是否正在运行并侦听localhost
,请浏览到http://localhost:5001。要开始将沿袭元数据收集为 OpenLineage 事件,请使用LineageAPI或 OpenLineage集成。
注意:默认情况下,HTTP API 不需要任何形式的身份验证或授权。
GRAPHQL
要通过 graphql 探索元数据,请浏览到http://localhost:5000/graphql-playground。graphql 端点目前处于测试阶段,位于http://localhost:5000/api/v1-beta/graphql。
我们邀请每个人帮助我们改进并保持文档最新。文档在此存储库中维护,可以在 下找到docs/
。
注意:要开始使用 Marquez 收集元数据,请遵循我们的快速入门指南。您将在下面找到从源代码启动和运行的步骤。
除非另有说明,Marquez 的版本与 OpenLineage 兼容。我们通过使用较旧的 OpenLineage 规范版本记录事件来确保与较新版本的 Marquez 向后兼容。我们强烈建议您了解 OpenLineage 规范的 版本控制 和发布方式。
马尔克斯 | 开放血统 | 地位 |
---|---|---|
UNRELEASED |
1-0-5 |
CURRENT |
0.43.0 |
1-0-5 |
RECOMMENDED |
0.42.0 |
1-0-5 |
MAINTENANCE |
注意:和库
openlineage-python
的openlineage-java
版本将高于 OpenLineage规范,因为它们有不同的版本要求。
我们目前维护三类兼容性:CURRENT
、RECOMMENDED
和MAINTENANCE
。当 Marquez 的新版本发布时,它被标记为RECOMMENDED
,而以前的版本进入MAINTENANCE
模式(尽可能修复错误)。Marquez 的未发布版本已被标记CURRENT
,并且不提供任何保证,但假定与 OpenLineage 保持兼容,尽管意外发生并且可能存在罕见的例外。
Marquez 采用多项目结构并包含以下模块:
注意:该
integrations
模块已在 中删除0.21.0
,因此请使用 OpenLineage集成来轻松收集沿袭事件。
注意:要连接到正在运行的 PostgreSQL 实例,您将需要标准
psql
工具。
要构建整个项目,请运行:
./gradlew build
可执行文件可以在下面找到api/build/libs/
要运行 Marquez,您必须定义marquez.yml
. 配置文件将传递给应用程序并用于指定您的数据库连接。配置文件创建步骤概述如下。
使用创建数据库时createdb
,我们建议调用它marquez
:
$ createdb marquez
创建数据库后,您现在可以复制marquez.example.yml
:
$ cp marquez.example.yml marquez.yml
然后,您需要设置以下环境变量(我们建议将它们添加到您的.bashrc
):POSTGRES_DB
、POSTGRES_USER
和POSTGRES_PASSWORD
。环境变量会覆盖配置文件中的等效选项。
默认情况下,Marquez 使用以下端口:
- TCP 端口
8080
可用于 HTTP API 服务器。 - TCP 端口
8081
可用于管理界面。
注意:中的所有配置设置都
marquez.yml
可以在配置文件或环境变量中指定。
运行HTTP API服务器
$ ./gradlew :api:runShadow
Marquez 监听8080
所有 API 调用的端口和8081
管理界面的端口。要验证 HTTP API 服务器是否正在运行并侦听localhost
,请浏览到http://localhost:8081。我们鼓励您熟悉Marquez 的数据模型和API。要运行 Web UI,请按照此处概述的步骤操作。
注意:默认情况下,HTTP API 不需要任何形式的身份验证或授权。
OpenLineage
:元数据和谱系收集的开放标准
- 网站: https: //marquezproject.ai
- 来源: https: //github.com/MarquezProject/marquez
- 聊天:MarquezProject Slack
- 推特:@MarquezProject
有关如何贡献的更多详细信息,请参阅CONTRIBUTING.md 。
如果您发现项目中存在漏洞,请提出问题并附上“安全”标签。
SPDX-许可证-标识符:Apache-2.0 版权所有 2018-2023 Marquez 项目贡献者。