Marquez API实战10个关键端点详解与使用技巧【免费下载链接】marquezCollect, aggregate, and visualize a data ecosystems metadata项目地址: https://gitcode.com/gh_mirrors/ma/marquezMarquez是一个开源的元数据服务用于数据生态系统的元数据收集、聚合和可视化。通过其强大的API接口用户可以轻松管理数据集、作业、运行和 lineage 信息实现数据可追溯性和治理。本文将详细介绍Marquez API的10个关键端点帮助新手快速掌握API使用技巧。1. 检索数据集Retrieve a dataset端点路径GET /namespaces/{namespace}/datasets/{dataset}获取指定命名空间下数据集的详细信息包括字段结构、标签、版本和源信息。这是数据探索和验证的基础操作。使用示例curl -X GET http://localhost:5000/api/v1/namespaces/my-namespace/datasets/my-dataset \ -H Accept: application/json响应示例{ id: { namespace: my-namespace, name: my-dataset }, type: DB_TABLE, name: my-dataset, physicalName: public.mytable, createdAt: 2019-05-09T19:49:24.201361Z, fields: [ {name: a, type: INTEGER, tags: []}, {name: b, type: TIMESTAMP, tags: []} ], currentVersion: b1d626a2-6d3a-475e-9ecf-943176d4a8c6 }技巧通过fields数组检查数据集 schema 变化结合currentVersion跟踪版本历史。Marquez UI中的数据集元数据详情视图展示了API返回的字段结构和版本信息2. 创建作业运行Create a run端点路径POST /namespaces/{namespace}/jobs/{job}/runs为指定作业创建新的运行实例记录执行参数和时间信息。虽然此端点已标记为 deprecated但仍是理解作业生命周期的重要参考。使用示例curl -X POST http://localhost:5000/api/v1/namespaces/my-namespace/jobs/my-job/runs \ -H Content-Type: application/json \ -d {args: {retries: 1, emailOnFailure: false}}响应示例{ id: 870492da-ecfb-4be0-91b9-9a89ddd3db90, state: RUNNING, startedAt: 2019-05-09T15:17:32.690346, args: {retries: 1, emailOnFailure: false} }注意官方推荐使用OpenLineage事件代替此端点记录运行信息详见OpenLineage规范。3. 搜索数据集和作业Search datasets and jobs端点路径GET /search通过灵活的查询参数快速定位数据资产支持模糊匹配、类型过滤和时间范围筛选。使用示例curl -X GET http://localhost:5000/api/v1/search?qmy-datasetfilterdatasetsortupdated_atlimit10 \ -H Accept: application/json响应示例{ totalCount: 1, results: [ { type: DATASET, name: public.delivery_7_days, updatedAt: 2019-05-09T19:49:24.201361Z, namespace: food_delivery, nodeId: dataset:food_delivery:public.delivery_7_days } ] }高级技巧使用%通配符实现模糊搜索如qmy-%结合namespace参数限定搜索范围。Marquez搜索界面展示了API返回的数据集结果支持多条件过滤和排序4. 获取数据血缘Get lineage端点路径GET /lineage/{nodeId}获取指定节点数据集或作业的血缘关系展示数据流转路径和依赖关系。使用示例curl -X GET http://localhost:5000/api/v1/lineage/dataset:food_delivery:public.delivery_7_days \ -H Accept: application/json技巧通过depth参数控制血缘深度directionUPSTREAM只显示上游依赖。Marquez血缘视图直观展示了API返回的上下游数据关系5. 创建命名空间Create namespace端点路径PUT /namespaces/{namespace}创建逻辑隔离的数据命名空间用于组织不同项目或团队的元数据。使用示例curl -X PUT http://localhost:5000/api/v1/namespaces/my-namespace \ -H Content-Type: application/json \ -d {owner: data-teamexample.com, description: Analytics datasets}最佳实践命名空间命名采用{team}-{project}格式便于权限管理和元数据组织。6. 记录Lineage事件Record lineage端点路径POST /lineage提交OpenLineage格式的血缘事件记录作业执行过程中的数据输入输出关系。使用示例curl -X POST http://localhost:5000/api/v1/lineage \ -H Content-Type: application/json \ -d lineage-event.json事件结构包含作业信息、输入输出数据集、事件时间和运行上下文详见官方文档。7. 获取作业详情Get job端点路径GET /namespaces/{namespace}/jobs/{job}获取作业的元数据信息包括描述、所有者、调度信息和关联的数据集。使用示例curl -X GET http://localhost:5000/api/v1/namespaces/my-namespace/jobs/my-job \ -H Accept: application/json响应亮点inputs和outputs字段展示作业的数据依赖关系latestRun显示最近执行状态。作业元数据详情展示了API返回的输入输出数据集和调度信息8. 标记数据集删除Delete dataset端点路径DELETE /namespaces/{namespace}/datasets/{dataset}软删除数据集保留元数据历史但在搜索结果中隐藏。使用示例curl -X DELETE http://localhost:5000/api/v1/namespaces/my-namespace/datasets/my-dataset注意删除操作可通过PUT请求恢复不会永久删除数据。9. 获取列级血缘Get column lineage端点路径GET /column-lineage/{datasetUrn}获取数据集的列级血缘信息追踪字段级别的数据流转。使用示例curl -X GET http://localhost:5000/api/v1/column-lineage/urn:marquez:dataset:my-namespace:my-dataset \ -H Accept: application/json价值支持数据质量追踪和敏感字段审计是数据治理的关键功能。10. 完成作业运行Complete run端点路径PUT /runs/{runId}/complete更新运行状态为完成记录结束时间和执行结果。使用示例curl -X PUT http://localhost:5000/api/v1/runs/870492da-ecfb-4be0-91b9-9a89ddd3db90/complete \ -H Content-Type: application/json \ -d {endedAt: 2019-05-09T20:05:46.815920Z}状态管理配套端点/runs/{runId}/fail和/runs/{runId}/abort用于处理异常情况。API调用最佳实践版本控制所有端点路径包含API版本如/api/v1确保兼容性错误处理关注4xx状态码特别是404资源不存在和400参数错误批量操作使用limit和分页参数避免请求过大认证授权生产环境需配置OAuth2或API密钥详见部署文档客户端选择Java用户可使用官方客户端Python用户可参考客户端库总结Marquez API提供了全面的元数据管理能力从基础的资源CRUD到高级的血缘分析。通过本文介绍的10个关键端点您可以构建完整的数据治理流程实现数据可发现性、可追溯性和质量监控。建议结合OpenLineage规范使用以获得最佳的元数据收集体验。要开始使用Marquez可通过以下命令克隆仓库git clone https://gitcode.com/gh_mirrors/ma/marquez更多API细节请参考官方API文档如有问题可查阅常见问题或提交issue。【免费下载链接】marquezCollect, aggregate, and visualize a data ecosystems metadata项目地址: https://gitcode.com/gh_mirrors/ma/marquez创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考