返回市场
麦普服务器数据枢纽

麦普服务器数据枢纽

作者:acryldata64 星标更新:2025-11-20

项目介绍

DataHub MCP Server

这是一个为DataHub实现的Model Context Protocol服务器。

什么是DataHub?

DataHub是一个开源的上下文平台,它使组织能够在整个数据供应链中获得单一视图。DataHub统一了数据发现、治理和可观测性,涵盖了每个表、列、仪表板管道、文档和ML模型。

通过强大的数据配置文件、数据质量监控、数据血缘、数据所有权和数据分类等功能,DataHub结合了技术和组织上下文,使得团队能够找到、创建、使用和维护可信的数据。

使用场景

DataHub MCP服务器使AI代理能够:

  • 查找可信数据:使用自然语言在整个数据环境中搜索,以找到可以回答最关键问题的表、列、仪表板和指标。利用数据流行度、质量、血缘和查询历史等信任信号来确保每次都能正确找到数据。
  • 探索数据血缘并规划数据变更:在影响下游用户之前,通过丰富的资产和列级别的数据血缘理解重要数据变更的影响。
  • 了解您的业务:导航重要的组织上下文,如业务术语表、数据域、数据产品和数据资产。理解关键指标、业务流程和数据之间的关系。
  • 解释并生成SQL查询:借助数据文档、数据血缘和组织内热门查询等关键上下文,生成准确的SQL查询以回答最重要的问题。

为什么选择DataHub MCP服务器?

通过DataHub MCP服务器,您可以立即让AI代理看到整个数据生态系统。查找并理解存储在数据库、数据湖、数据仓库和BI可视化工具中的数据。探索数据血缘,理解使用情况和用例,识别数据专家,并生成SQL——所有这些都通过自然语言完成。

带有上下文过滤的结构化搜索

超越关键词匹配,使用强大的查询和过滤语法:

  • 通配符匹配:/q revenue_* 查找 revenue_kpisrevenue_dailyrevenue_forecast
  • 字段搜索:/q tag:PII 查找所有标记为PII的数据
  • 布尔逻辑:/q (sales OR revenue) AND quarterly 进行复杂查询

SQL智能与查询生成

访问热门SQL查询,并生成新的准确查询:

  • 看分析师如何查询表(非常适合SQL生成)
  • 理解连接模式和常见过滤器
  • 学习生产查询模式

表和列级血缘

跟踪数据流,包括表和列级别:

  • 跟踪 user_id 如何变成下游的 customer_key
  • 理解转换逻辑
  • 上游和下游探索(1-3+跳)
  • 处理企业规模的血缘图

理解您的数据生态系统

在搜索前理解您的数据是如何组织的:

  • 发现相关数据域、拥有者、标签和术语表
  • 浏览跨数据平台和环境
  • 导航数据景观的复杂性而不必猜测

使用方法

请参阅DataHub MCP服务器文档获取说明。

演示

查看由Block团队合作制作的demo视频

工具

DataHub MCP服务器提供以下工具:

search

使用结构化的关键词搜索(/q语法)搜索DataHub,支持布尔逻辑、过滤、分页和可选的按使用指标排序。

get_lineage

检索任何实体(数据集、列、仪表板等)的上游或下游血缘,支持过滤、血缘内的查询、分页和跳跃控制。

get_dataset_queries

获取引用数据集或列的实际SQL查询——手动或系统生成的——以理解使用模式、连接、过滤器和聚合行为。

get_entities

根据URN获取一个或多个实体的详细元数据;支持批量检索以高效检查搜索结果。

list_schema_fields

列出数据集的模式字段,支持关键词过滤和分页,当搜索结果截断字段或探索大型模式时非常有用。

get_lineage_paths_between

检索两个资产或列之间的精确血缘路径,包括中间转换和SQL查询信息。

示例:数据发现与理解流程(用于使用DataHub工具的代理)

此示例展示了AI代理如何协调DataHub MCP工具以回答用户的查询。它演示了决策流程、调用哪些工具以及如何使用响应。

1. 用户提问

示例:

“我如何找出上个月有多少宠物被领养?”

代理将其识别为数据发现→查询构建工作流程。它需要(a)找到相关的数据集,(b)检查元数据,(c)构建正确的SQL查询。

2. 搜索相关数据集

代理从search工具开始(取决于配置,可能是语义或关键词)。

工具: search
输入: 自然语言查询

示例调用:

{
  "query": "宠物领养"
}

目的: 识别数据集如领养宠物概况宠物详情

3. 检查候选数据集

对于搜索返回的每个数据集,代理可能会获取元数据。

3.1 列出模式字段

工具: list_schema_fields
输入: 数据集的URN
目的: 理解模式、数据类型、查询候选字段。

示例:

{
  "urn": "urn:li:dataset:(urn:li:dataPlatform:snowflake,mydb.public.领养,PROD)"
}

3.2 获取血缘(可选)

工具: get_lineage
目的: 确定数据集是衍生的还是权威的。

3.3 获取示例查询

工具: get_dataset_queries
目的: 学习数据集的典型使用模式和查询模板。

4. 理解实体关系

如果问题需要连接或实体导航(例如,连接宠物→领养):

get_entities

为了检索与给定URN相关的实体,如上下游表。

get_lineage_paths_between

如果需要计算数据集之间的精确血缘路径(例如,宠物概况领养之间)。

5. 构建查询

代理现在有了:

  • 正确的数据集
  • 其模式
  • 关键字段
  • 样本查询
  • 关系和血缘上下文

代理构建了一个准确的SQL查询。

示例:

SELECT COUNT(*)
FROM mydb.public.领养
WHERE 领养日期 >= DATE_TRUNC('月', CURRENT_DATE - INTERVAL '1' 月)
  AND 领养日期 < DATE_TRUNC('月', CURRENT_DATE);

6. 返回最终答案

代理可以选择:

  • 直接返回SQL,
  • 在允许查询执行的环境中运行它,或者
  • 根据查询输出提供自然语言答案。

使用工具总结

工具名称目的
search找到与问题相关的数据集。
list_schema_fields理解数据集结构。
get_lineage评估数据权威性和来源。
get_dataset_queries学习数据集通常如何被查询。
get_entities检索相关实体以提供上下文。
get_lineage_paths_between理解数据集之间的深层关系。

开发

请参阅DEVELOPING.md