mcpField
D
databricks-data-discovery

databricks-data-discovery

github.com/databricksデータ・データベース373286 回インストール今日更新
リポジトリ

databricks-data-discovery について

データ探索、データに関する質問、SQL 生成を CLI の Genie One に振り分ける Databricks Skill です。ファイル編集や 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 は同じ Genie One 機能をマネージド MCP サーバーでも提供しています。この 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 Data Discovery

このスキルはデータに関する作業を振り分けます。まず、次のどちらに当てはまるか判断してください。

  • 依頼がデータそのものに関するもの(データの検索、データへの質問、SQL の生成)である場合 → Genie Oneに委任します。 databricks genie ask -s <session-label> "..."(「振り分け」を参照)。
  • ファイルの作成やその他の作業の場合 → ご自身のコーディングエージェントのツールを使います。

Genie One の利用に必要なのは、認証済みの CLI プロファイルだけです(認証やプロファイルについては、親の databricks-core スキルで説明しています)。ただし、データに関する依頼はまず Genie に振り分けてください。手動でのカタログ閲覧に寄り道しないでください。

振り分け — Genie とコーディングエージェント

依頼がデータそのものに関する場合は、Genie に振り分けてください。

  • データの検索や場所の特定 — 「wanderbricks にはどのテーブルがありますか?」「X はどこにありますか?」「あるものはどのカタログ/スキーマにありますか?」など。曖昧な名前や一部しかわからない名前でも、ご自身で推測したりカタログを検索したりする代わりに、Genie に全データから特定させてください。
  • データに関する質問 — 「いくつありますか……」「平均はいくつですか……」「最も多い……はどれですか……」、傾向、内訳など。
  • 質問からの SQL 生成 — 実行、調整、またはファイルへの貼り付けに使える最初のクエリ。
  • クエリ、ダッシュボード、アプリに役立てるためのデータの理解やプロファイリング。

それ以外はすべて、ご自身のコーディングエージェントに振り分けてください(Genie は使用しないでください)。

  • ファイルの作成や編集 — .sql ファイル、ノートブック、ダッシュボード、アプリ、設定ファイル。 Genie はデータを見つけて SQL を生成します。ファイルを書くのはご自身です。
  • ジョブ、パイプライン、アプリ、DAB の作成 — それぞれの製品スキルを使ってください。
  • DDL や書き込み — CREATE/INSERT/UPDATE/DELETE。
  • 一般的なプログラミング、git、インフラ、およびデータ以外のあらゆる作業。

**重要な原則:**データの探索、データに関する質問、クエリの生成 → Genie One。 それ以外 → ご自身のコーディングエージェント。

データに関する質問で 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 で上書きできます)。選択やセットアップは不要です。

  • ライブストリーミング:回答、エージェントの手順、SQL/結果が到着し次第表示されます。通常、回答には約 5~30 秒かかります。ストリームが停止した場合(約 10 分間データが届かない場合)は、明確なメッセージを表示して失敗します。Ctrl-C または kill(SIGTERM)で正常にキャンセルできます。
  • セッションラベルの選択:任意の文字列を使用できます。trips のようなトピック名や、シェルごとのセッションを表す $$ などが使えます。追加の質問で完全なコンテキストを引き継げるよう、通常は同じセッションラベルを再利用してください。意図的に別のセッションを始める場合に限り、新しいラベルを使います。期限切れのセッションラベルは、次の質問で新しいセッションとして開始されます。コピーして使い回す 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 が正しく動作することを確認できます)。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(v1.9.0 より古い CLI では databricks experimental genie ask --help)を実行して確認し、コマンドがないと決めつけないでください。Genie One が有効になっていない場合、CLI が古く genie ask のどちらの形式にも対応していない場合、または Genie では質問に対応できない場合は、親スキルのコマンドを使って自分で調査してください。詳しくは 手動でのデータ探索 を参照してください(information_schema を使ったキーワード検索、discover-schema、tools query)。既知の SQL を実行したり、既知のテーブルのプロファイリングを行ったりする場合は、この方法だけで問題ありません。データの場所に関する質問では、デフォルトで databricks tables list や UC REST API を直接使わないでください。このスキルを呼び出して、まず Genie に質問してください。

Genie One MCP との関係

Databricks は、マネージド MCP サーバーである Genie One MCP としても、この機能を提供しています。このスキルでは、設定やホスティングが必要な MCP サーバーを使わずに、Databricks CLI を通じて同じ機能を利用できます。さらに広く言えば、Databricks Agent Skills は Databricks のマネージド MCP サーバーと同じ範囲をカバーしているため、利用にあたって MCP を接続する必要はありません。すでに Genie One MCP を運用している場合は、どちらでもお好みのほうをお使いください。どちらも同じ Genie バックエンドを利用します。

関連スキル

  • databricks-genie-agents — Genie Agents の構築と管理:特定のデータについて、ユーザー自身やグループが質問できるようにする、厳選されたエージェントです(作成、設定、インポート/エクスポート)。
  • databricks-core(親)— CLI 認証、プロファイル、フォールバックとして使用する手動でのデータ探索リファレンス。

コメント