mcpField
D
databricks-data-discovery

databricks-data-discovery

github.com/databricks数据与数据库373286 次安装今天更新
代码仓库

关于 databricks-data-discovery

此 Databricks Skill 通过命令行中的 Genie One 处理数据发现、数据提问和 SQL 生成,并区分文件编辑、DDL 等其他任务。Genie 不可用时,它还提供手动探索的后备方式。

主要功能

  1. 01将数据问题转交给 Genie One
  2. 02搜索可访问的数据
  3. 03根据自然语言请求生成 SQL
  4. 04通过会话延续相关问题
  5. 05提供手动数据发现后备方式

适用场景

  1. 01跨目录和架构查找表
  2. 02查询数据数量或趋势
  3. 03为陌生数据集起草 SQL
  4. 04构建查询前分析数据

MCP 相关

Databricks 也通过托管 MCP 服务提供相同的 Genie One 功能。此 Skill 改用 Databricks CLI,无需配置或托管 MCP 服务。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/databricks/databricks-agent-skills --skill databricks-data-discovery

安装后在 Claude Code 中输入/databricks-data-discovery确认已加载。

附带文件agents/openai.yamlassets/databricks.svg

详细介绍

Databricks 数据发现

此技能用于路由数据工作——请先判断:

  • 请求涉及数据本身——查找数据、询问数据相关问题或 生成 SQL → 委派给 Genie One: databricks genie ask -s <session-label> "..."(参见下文的路由)。
  • 编写文件或其他任何工作 → 使用你自己的编码 Agent 工具。

Genie One 只需要一个已通过身份验证的 CLI 配置文件(如需了解身份验证/配置文件,请参阅父级 databricks-core 技能),但请先将数据请求路由到 Genie;不要绕道手动浏览目录。

路由——Genie 还是你的编码 Agent

请求涉及数据时,路由到 Genie:

  • 查找或定位数据——“wanderbricks 中有哪些表?”、“X 在哪里?”,或询问某项内容位于哪个目录/架构中。让 Genie 在你的所有数据中解析模糊或不完整的 名称,而不是自己猜测或搜索目录。
  • 有关数据的问题——“有多少……”“平均值是多少……”“哪个……最多……”, 趋势、细分情况。
  • 根据问题生成 SQL——生成一个初步查询,供你运行、调整或放入 文件中。
  • 了解数据或分析数据特征,以便编写查询、构建仪表板或应用。

其他所有情况都路由到你自己的编码 Agent(不要使用 Genie):

  • 编写或编辑文件——.sql 文件、笔记本、仪表板、应用、配置。 Genie 查找数据并生成 SQL;你负责编写文件。
  • 编写作业、管道、应用或 DAB——使用相应的产品技能。
  • DDL 或写入操作——CREATE / INSERT / UPDATE / DELETE。
  • 常规编程、git、基础设施以及所有非数据类任务。

**核心原则:**数据发现、数据问题和查询生成 → Genie One。 其他所有工作 → 你的编码 Agent。

为什么数据问题优先使用 Genie

Genie 在Databricks 数据平面内运行,可直接通过受治理的方式访问组织的 Unity Catalog 元数据、指标视图和精选语义上下文——这些 上下文是你使用临时 SQL 逆向分析架构时无法获得的。对于数据问题,它通常比自行发现数据的质量更高、性能更好,并且会作为托管的 Databricks 功能持续改进。 不要仅仅因为你能写,就默认自己编写数据发现 SQL。

如何向 Genie 提问

始终使用 -s 传入会话标签,并优先重复使用同一个标签:只有首次提问设置了会话标签,后续提问才能继续同一段对话;重复使用该标签,后续问题就能基于此前的所有提问展开(“总结以上所有内容”)。仅在刻意开启一个独立会话时使用新的会话标签;若要并行运行多个会话,则使用不同的会话标签。

命令为 databricks genie ask(CLI >= v1.9.0)。在较旧的 CLI 中,命令位于 databricks experimental genie ask 下——标志和行为相同;如果找不到 databricks genie ask,请使用这个确切的备用命令。

# Always pass a session label, and reuse the SAME one so follow-ups build on each other
databricks genie ask -s trips "How many bookings were there last week?"
databricks genie ask -s trips "Break that down by destination"
databricks genie ask -s trips "Summarize all of the above"

# --include-sql also prints the SQL Genie ran (use it to generate a query, too)
databricks genie ask -s trips "Write SQL for the top 5 destinations by revenue" --include-sql

# --output json gives a parseable result
databricks genie ask -s trips "Top 5 destinations by revenue" --output json
# → {"status":"completed","conversation_id":"…","text":"…","tool_calls":[{"name":"execute_sql","sql":"…","title":"…"}]}

# Older CLI (< v1.9.0) — same command under the deprecated experimental alias:
#   databricks experimental genie ask -s trips "How many bookings were there last week?"

Genie 会搜索你能够访问的所有数据、运行 SQL,并输出基于数据的流式回答——回答中会显示执行的 SQL,并在有帮助时附上终端图表。它会自动选择 SQL 仓库(可通过 --warehouse-id 覆盖);无需选择或配置。

  • 实时流式输出:回答、Agent 的步骤以及任何 SQL/结果都会在生成后立即显示。回答通常需要约 5–30 秒;若流式输出停滞(约 10 分钟没有数据),命令会失败并给出明确提示;按 Ctrl-C 或运行 kill(SIGTERM)可以正常取消。
  • 选择会话标签:任何字符串都可以——例如主题 trips,或用于每个 Shell 独立会话的 $$。默认重复使用同一个会话标签,以便后续提问保留完整上下文;仅在刻意开启独立会话时使用新标签。会话标签过期后,下次提问会自动开启新会话。无需复制或传递 ID。
  • 并行运行:若要同时运行多个会话,请为每个会话指定独立的会话标签(-s q1、-s q2,等等)——不同的会话标签互不干扰。在同一个会话标签内,调用必须按顺序进行:等待上一轮返回后再提出后续问题,切勿同时对同一个会话标签发起两次提问(它们会分成两段对话,且只会保留其中一个映射)。
  • 结构化输出:--output json 会返回 {status, conversation_id, text, tool_calls[]},其中 tool_calls 包含 Genie 执行的 SQL;--raw 会转储原始事件流。请注意,--output json 会缓冲输出,并在结束时一次性打印(不会实时流式输出)——用于解析;交互使用时请采用默认的文本输出。
  • 生成查询:让 Genie“为……编写 SQL”,然后从回答中读取 SQL(它会显示在回答文本中;--include-sql 也会显示 Genie 为验证查询而运行的 SQL,因此该 SQL 已确认可用)。Genie 会为你解析架构并处理联接,因此在不熟悉的表上使用时,这比手动编写 SQL 更好。
  • 获取精确/完整行:Genie 会在行内显示预览;若要在本地获取完整结果集,请复制其中的 SQL(使用 --include-sql 或 JSON 中的 tool_calls),并传入父级命令 ... aitools tools query "<SQL>"。
  • 没有回答只是提示,不是错误:如果 Genie 拒绝回答或“找不到相关数据”,不要重试——请使用下面的手动备用方案。

名称说明:“Genie One”是这项跨数据聊天功能的当前名称;此前称为“Databricks One”,之后又称为“OneChat”(后端工具的名称仍然是 onechat)。这些名称指的都是同一项功能。

如果 Genie One 不可用——手动备用方案

仅当 Genie One 确实不可用时才使用备用方案——请先通过 databricks genie ask --help 验证(CLI 版本低于 v1.9.0 时,使用 databricks experimental genie ask --help);不要假定该命令不存在。如果未启用 Genie One、CLI 版本过旧而不支持这两种命令形式,或 Genie 无法处理该问题,请使用父级技能的命令自行探索——参见 手动数据探索(通过 information_schema 进行关键词搜索、使用 discover-schema 和 tools query)。 通过这种方式运行已知 SQL 或分析已知表完全没问题。 对于数据位置问题,不要默认使用 databricks tables list 或原始 UC REST——请调用此技能并先向 Genie 提问。

与 Genie One MCP 的关系

Databricks 也将此功能作为托管的 MCP 服务提供,即 Genie One MCP。此技能通过 Databricks CLI 提供相同的功能,无需配置或托管 MCP 服务。更广泛地说,Databricks Agent Skills 涵盖的内容与 Databricks 的托管 MCP 服务相同,因此无需接入任何 MCP 即可使用。如果你已经在运行 Genie One MCP,可任选其一——它们使用相同的 Genie 后端。

相关技能

  • databricks-genie-agents — 构建和管理 Genie Agents:经过整理的 Agent,可让你或某个群组针对特定数据提问(创建、配置、导入/导出)。
  • databricks-core(父级)— CLI 身份验证、配置文件,以及用作回退方案的手动数据探索参考。

评论

支持 Markdown