DataHub MCP 服务器
什么是DataHub?
数据中心 是一个开源上下文平台,为组织的整个数据供应链提供了一个单一的窗口。DataHub将每个表、列、仪表板管道、文档和ML模型的数据发现、治理和可观察性统一在一个屋檐下。
DataHub具有强大的数据分析、数据质量监控、数据沿袭、数据所有权和数据分类功能,将技术和组织背景结合在一起,使团队能够查找、创建、使用和维护值得信赖的数据。
用例
DataHub MCP服务器使AI代理能够:
- 寻找值得信赖的数据:使用自然语言在整个数据环境中搜索,以找到可以回答您最关键任务问题的表、列、仪表板和指标。每次都要利用数据流行度、质量、沿袭和查询历史等信任信号来确保正确。
- 探索数据沿袭并计划数据更改:了解重要数据更改的影响 _之前_ 它们通过资产和列级别的丰富数据沿袭影响下游用户。
- 了解您的业务:浏览重要的组织环境,如业务术语表、数据域、数据产品、, _和_ 数据资产。了解关键指标、业务流程和数据之间的相互关系。
- 解释并生成SQL查询:在关键上下文(如数据文档、数据沿袭和整个组织的流行查询)的帮助下,生成准确的SQL查询来回答您最重要的问题。
为什么选择DataHub MCP服务器?
借助DataHub MCP Server,您可以立即让AI代理了解您的整个数据生态系统。查找并理解存储在数据库、数据湖、数据仓库和BI可视化工具中的数据。探索数据沿袭,了解使用情况和用例,确定数据专家,并生成SQL——所有这些都是通过自然语言完成的。
带上下文过滤的结构化搜索
使用强大的查询和过滤语法超越关键字匹配:
- 通配符匹配:
/q revenue_*发现revenue_kpis,revenue_daily,revenue_forecast - 字段搜索:
/q tag:PII查找所有PII标记的数据 - 布尔逻辑:
/q (sales OR revenue) AND quarterly用于复杂查询
SQL智能和查询生成
访问流行的SQL查询,并准确生成新的查询:
- 了解分析师如何查询表(非常适合SQL生成)
- 了解连接模式和常见过滤器
- 学习生产查询模式
表和柱标高线
在表和列级别跟踪数据流:
- 追踪方式
user_id成为customer_key下游 - 理解转换逻辑
- 上下游勘探(1-3+跳)
- 处理企业级沿袭图
了解您的数据生态系统
在搜索之前,了解您的数据是如何组织的:
- 发现相关数据域、所有者、标签和术语表术语
- 跨数据平台和环境浏览
- 无需猜测,即可驾驭数据环境的复杂性
用法
请参阅 DataHub MCP服务器文档.
演示
看看 演示视频,与Block团队合作完成。
工具
DataHub MCP服务器提供以下工具:
search
使用结构化关键字搜索(/q语法)搜索DataHub,使用布尔逻辑、过滤器、分页和可选的使用指标排序。
get_lineage
通过过滤、沿袭内查询、分页和跳转控制,检索任何实体(数据集、列、仪表板等)的上游或下游沿袭。
get_dataset_queries
获取引用数据集或列的真实SQL查询(手动或系统生成),以了解使用模式、连接、过滤器和聚合行为。
get_entities
按URN获取一个或多个实体的详细元数据;支持批量检索,以便高效检查搜索结果。
list_schema_fields
使用关键字筛选和分页列出数据集的架构字段,这在搜索结果截断字段或探索大型架构时非常有用。
get_lineage_paths_between
检索两个资产或列之间的确切沿袭路径,包括中间转换和SQL查询信息。
突变工具
这些工具允许修改DataHub中的元数据。它们通过以下方式启用 TOOLS_IS_MUTATION_ENABLED=true 环境变量。
add_tags / remove_tags
在实体或模式字段(列)中添加或删除标记。支持对多个实体进行批量操作。
add_terms / remove_terms
在实体或模式字段中添加或删除术语表术语。可用于应用业务定义和数据分类。
add_owners / remove_owners
添加或删除实体的所有权分配。支持不同的所有权类型(技术所有者、数据所有者等)。
set_domains / remove_domains
为实体分配或删除域成员资格。每个实体可以属于一个域。
update_description
更新、附加或删除实体或架构字段的描述。支持markdown格式。
add_structured_properties / remove_structured_properties
管理实体的结构化属性(类型化元数据字段)。支持字符串、数字、URN、日期和富格文本值类型。
用户工具
这些工具提供有关经过身份验证的用户的信息。通过启用 TOOLS_IS_USER_ENABLED=true.
get_me
检索有关当前已验证用户的信息,包括配置文件详细信息和组成员资格。
文档工具
这些工具可以处理存储在DataHub中的文档(知识文章、运行手册、常见问题解答)。如果目录中不存在文档,文档工具将自动隐藏。
search_documents
使用关键字搜索和平台、域、标签、术语表术语和所有者的过滤器搜索文档。
grep_documents
使用正则表达式模式在文档内容中搜索。可用于在多个文档中查找特定信息。
save_document
将独立文档(见解、决策、常见问题解答、笔记)保存到DataHub的知识库中。文档组织在可配置的父文件夹下。
配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
TOOLS_IS_MUTATION_ENABLED | false | 启用突变工具(添加/删除标签、所有者等) |
TOOLS_IS_USER_ENABLED | false | 启用用户工具(get_me) |
DATAHUB_MCP_DOCUMENT_TOOLS_DISABLED | false | 完全禁用文档工具 |
SAVE_DOCUMENT_TOOL_ENABLED | true | 启用/禁用save_document工具 |
SAVE_DOCUMENT_PARENT_TITLE | Shared | 已保存文档的父文件夹的标题 |
SAVE_DOCUMENT_ORGANIZE_BY_USER | false | 按用户组织保存的文档 |
SAVE_DOCUMENT_RESTRICT_UPDATES | true | 仅允许更新共享文件夹中的文档 |
TOOL_RESPONSE_TOKEN_LIMIT | 80000 | 工具响应的最大令牌数 |
ENTITY_SCHEMA_TOKEN_BUDGET | 16000 | 架构字段的每个实体的令牌预算 |
DISABLE_NEWER_GMS_FIELD_DETECTION | false | 禁用自适应GMS场检测 |
DATAHUB_MCP_DISABLE_DEFAULT_VIEW | false | 禁用自动默认视图应用程序 |
SEMANTIC_SEARCH_ENABLED | false | 启用语义(AI驱动)搜索 |
示例:数据发现和理解流(适用于使用DataHub工具的代理)
此示例说明了AI代理如何编排DataHub MCP工具来回答用户的数据问题。它展示了决策流程、调用哪些工具以及如何使用响应。
1.用户提问
例子:
“我怎么知道上个月收养了多少宠物?”
代理将此识别为 数据发现→ 查询构造 工作流程。它需要(a)找到相关的数据集,(b)检查元数据,(c)构造正确的SQL查询。
2.搜索相关数据集
代理从以下内容开始 search 工具(取决于配置的语义或关键字)。
工具: search\ 输入: 自然语言查询
呼叫示例:
{
"query": "pet adoptions"
}目的: 识别以下数据集 adoptions, pet_profiles, pet_details.
3.检查候选数据集
对于搜索返回的每个数据集,代理可以获取元数据。
3.1列出架构字段
工具: list_schema_fields\ 输入: 数据集的URN\ 目的: 了解模式、数据类型、查询候选字段。
例子:
{
"urn": "urn:li:dataset:(urn:li:dataPlatform:snowflake,mydb.public.adoptions,PROD)"
}3.2取血统(可选)
工具: get_lineage\ 目的: 确定数据集是派生的还是权威的。
3.3获取示例查询
工具: get_dataset_queries\ 目的: 了解数据集的典型使用模式和查询模板。
4.了解实体关系
如果问题需要加入或实体导航(例如,连接宠物→ 收养):
get_entities
检索与给定URN相关的实体,如上游/下游表。
get_lineage_paths_between
如果需要,计算数据集之间的精确沿袭路径(例如 pet_profiles 和 adoptions).
5.构造查询
代理人现在有:
- 正确的数据集
- 其模式
- 关键字段
- 示例查询
- 关系和血统背景
代理构建准确的SQL查询。
例子:
SELECT COUNT(*)
FROM mydb.public.adoptions
WHERE adoption_date >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH)
AND adoption_date < DATE_TRUNC('month', CURRENT_DATE);6.返回最终答案
代理人可以:
- 直接返回SQL,
- 运行它(如果在允许执行查询的环境中),或
- 根据查询输出提供自然语言答案。
所用工具概述
| 工具名称 | 用途 |
|---|---|
search | 查找问题的相关数据集。 |
list_schema_fields | 了解数据集结构。 |
get_lineage | 评估数据权威性和来源。 |
get_dataset_queries | 了解通常如何查询数据集。 |
get_entities | 检索上下文中的相关实体。 |
get_lineage_paths_between | 了解数据集之间更深层次的关系。 |
开发中
看 开发.md.
