
Databricksで自然言語でデータと対話できる機能「Genie space」を一通り試してみた
さがらです。
以前、DatabricksのAI/BI Dashboardを試した記事を書きました。
上記の記事ではsamples.bakehouseデータを使って、商品別売上の棒グラフや国別売上のドーナツグラフ、Metric Viewを用いたダッシュボードを作成しました。
今回は同じデータを使って、Genie spaceでも同じ切り口の分析ができるかを確認してみます。DashboardとGenieの違いを実感しながら、どう使い分けるかを考えるきっかけになれば幸いです。
Genie spaceは、ビジネスユーザーが自然言語でデータに質問できるチャットインターフェースです。入力した質問をSQLクエリに変換し、結果をテーブルやグラフで表現して返す機能です。
GenieとDashboardの違い
AI/BIにはGenie spaceとDashboardの2種類の機能があります。前回の記事ではDashboardを試しましたが、2つは用途が異なります。
| Genie space | Dashboard | |
|---|---|---|
| 質問方式 | 自然言語での会話形式 | 事前定義された固定ビジュアライゼーション |
| 用途 | データの探索・アドホック分析 | 定期確認するKPIの安定した分析基盤 |
制限事項
- テーブル上限: 1つのGenie spaceに追加できるテーブルは最大30個まで
- スループット制限: ワークスペースあたり毎分最大20の質問
- ファイルアップロード(Public Preview): 1会話あたり最大25ファイル、1ファイルあたり200MB未満、100列以下
- Agent Mode(Public Preview): ワークスペース管理者によるプレビュー機能の有効化が必要
- Embed(Public Preview): iframeとして外部アプリに埋め込む機能もPublic Preview
前提条件
- Databricks: Free Edition(AWS)
- こちらのブログでセットアップした環境を使用
- 使用データ:
samples.bakehouse(Databricks標準搭載のサンプルデータセット)- こちらのブログで作成した、Metric Viewも使用します
試してみた
1. Genie spaceを作成する
サイドバーからGenieをクリックし、右上のNewボタンをクリックします。

使用するテーブルを選択します。下図のようにテーブルを追加して、Createを押します。

次にConfigureの画面が開くため、Genie spaceのタイトルと使用するSQLウェアハウスに変更があれば、修正します。(今回はデフォルトのまま、使用します。)

2. Knowledge storeを設定する
Genie spaceを作成しただけでは、テーブルのカラム名や業務用語をGenieが正確に理解できないことがあります。Knowledge storeを設定して、データの意味・集計ロジック・テーブル間の結合条件をGenieに教えます。
Knowledge storeは以下の5つの要素で構成されます。
| 要素 | 概要 |
|---|---|
| Metadata customization | テーブル・カラムの説明・同義語を追加 |
| Data customization | Unity Catalogを変更せずに簡略化したデータセットを定義 |
| Prompt matching | 値の例示やスペル補正でGenieのクエリ精度を向上 |
| Join relationships | テーブル間の結合条件を定義 |
| SQL expressions | Measures・Filters・Dimensionsの3種でビジネスロジックを定義 |
これらはすべてConfigure > Dataタブから設定します。

① Metadata customization
Configure > Dataでテーブルを選択するとカラム一覧が表示されます。カラム名だけではGenieが意図を誤解しやすいものに説明と同義語を追加します。
各カラムには以下の3つの設定項目があります。
| 設定項目 | 説明 |
|---|---|
| Display Name | カラムのフレンドリーな表示名。Unity Catalog上のカラム名はリネームされない |
| Description | カラムの説明。このGenie Spaceにのみ適用され、Unity Catalogは変更されない |
| Synonyms | 関連キーワードをカンマ区切りで登録。Genieがユーザーの質問をこのカラムにマッチさせる精度が向上する |
sales_transactionsテーブルの主要カラムに以下を設定しました。(下図は、設定画面の一例です。)
| カラム名 | Display Name | Description | Synonyms |
|---|---|---|---|
totalPrice |
合計金額 | 1件の取引の合計金額(単位: ドル) | 売上, 売上金額, 売上額, 合計 |
product |
商品名 | 商品名 | 商品, アイテム, 品目 |
paymentMethod |
支払方法 | 支払方法(visa / mastercard / amex) | 支払い, 決済方法 |
quantity |
数量 | 購入数量 | 数量, 個数 |
unitPrice |
単価 | 商品1個あたりの単価(単位: ドル) | 単価 |

sales_franchisesテーブルにも設定を追加します。
| カラム名 | Display Name | Description | Synonyms |
|---|---|---|---|
size |
店舗規模 | 店舗規模(S / M / L / XL / XXL) | 店舗サイズ, フランチャイズ規模 |
country |
所在国 | 店舗の所在国 | 国, 国名 |
また、sales_transactionsのcardNumberは分析に不要なため非表示に設定します。

② Prompt matching(Format assistance / Entity matching)
Prompt Matchingは、ユーザーの質問に含まれる値のゆらぎ(表記ゆれ・スペルミスなど)をGenieが補正して正しいクエリを生成するための機能です。カラムの詳細設定から有効化します。
- Format assistance: カラムの代表値をGenieに渡し、データ形式の解釈を補助します
- Entity matching: 値リストを登録し、文字列カラムの値のマッチング精度を向上させます。Format assistanceを有効にした上で設定します(最大120カラム・各1,024件まで)
今回の検証では、下図のようにデフォルトで設定されていたEntity matchingを利用します。

③ SQL expressions(Measures・Filters・Dimensions)
samples.bakehouseで使いたいKPIとフィルタ条件をSQL expressionsとして定義します。SQL expressionsには以下の3種類があります。
| Type | 用途 |
|---|---|
| Measures | KPIや集計指標 |
| Filters | よく使うWHERE条件(booleanを返す) |
| Dimensions | グルーピングや分析に使う属性 |
こちらは、Configure > InstructionsのSQL Expressionsから+ Addを押すことで設定可能です。

各SQL expressionにはName・Code・Synonyms・Instructionsを設定します。今回は以下を登録しました。
Measures (下図は、設定画面の一例です。)
| Name | Code | Synonyms |
|---|---|---|
| 売上合計 | SUM(sales_transactions.totalPrice) |
総売上, 売上額合計 |
| 注文件数 | COUNT(sales_transactions.transactionID) |
取引件数, トランザクション数 |
| 平均注文金額 | AVG(sales_transactions.totalPrice) |
平均売上, 平均単価 |
| 合計販売数量 | SUM(sales_transactions.quantity) |
販売数, 売れた数 |

Filters (下図は、設定画面の一例です。)
| Name | Code | Instructions |
|---|---|---|
| 大口取引 | sales_transactions.totalPrice >= 50 |
合計金額が50ドル以上の取引のみ |

Dimensions (下図は、設定画面の一例です。)
| Name | Code | Synonyms |
|---|---|---|
| 商品名 | sales_transactions.product |
商品, 品目 |
| 支払方法 | sales_transactions.paymentMethod |
支払い, 決済 |

④ Join relationships
テーブル間のリレーションの設定も可能です。こちらは、Configure > InstructionsのJoinsから+ Addを押すことで設定可能です。

samples.bakehouseのテーブル間リレーションは以下の通りです。Left table・Right tableを選択し、Join conditionとRelationship typeを指定します。
| Left table | Right table | Join condition | Relationship type |
|---|---|---|---|
sales_transactions |
sales_franchises |
sales_transactions.franchiseID = sales_franchises.franchiseID |
Many to one |
sales_transactions |
sales_customers |
sales_transactions.customerID = sales_customers.customerID |
Many to one |
sales_franchises |
sales_suppliers |
sales_franchises.supplierID = sales_suppliers.supplierID |
Many to one |

参考:Knowledge Mining機能について
今回は検証しませんが、Knowledge Miningという自動提案機能もあります。Unity Catalogのプライマリキー・外部キー情報の解析や、ユーザーのフィードバック(サムズアップ)・ダウンロードされたクエリから学習し、Join関係やSQL式の候補を自動提示してくれます。
3. 質問してみる
Knowledge storeの設定が完了したので、チャット画面から自然言語で質問してみます。
2026年4月時点でPublic PreviewのAgent Mode(旧称: Research Agent)で試してみます。
通常のGenie spaceが1回のSQL生成で回答を返すのに対し、Agent Modeは複数のSQLクエリを組み合わせた多段階の推論(マルチステップ推論) によって、より複雑なビジネス上の問いに答えられます。

質問1: 商品別の売上ランキング
商品ごとの売上合計を多い順に教えて
Genieが内部でSQLを生成し、結果をテーブルとグラフで返してくれます。回答下のShow codeをクリックすると生成されたSQLを確認できます。


質問2: 支払方法の分布
支払方法ごとの取引件数と売上合計を教えて

質問3: 店舗規模別の平均注文金額
店舗規模(S/M/L/XL/XXL)ごとの平均注文金額を比較して
sales_franchisesのsizeカラムへのJoinが必要なクエリですが、Join関係を設定しているためGenieが自動的にテーブルをたどって回答してくれます。

質問4: 大陸別の売上傾向
顧客の大陸別に売上合計を教えて
sales_customersのcontinentカラムを使った集計です。sales_transactions → sales_customersのJoinが必要ですが、こちらも設定済みのJoin関係でGenieが自動処理します。

Genieは会話の文脈を保持しているため、続けてフォローアップ質問もできます。
その中でアジアの売上を国別の内訳で見せて

質問5: 売上傾向の分析
売上の高い店舗と低い店舗の違いを、店舗規模・所在国・仕入先の観点から分析して
得られた結果から洞察を求める依頼も行ってみます。
結果として、下図のように依頼した内容についてそれぞれデータを集計して結果に対する洞察まで出してくれました。




回答の右下のDownload PDFを押すことで、PDFでダウンロードも可能です。


もし、Genieの回答精度が低い場合はNoをクリックしてフィードバックを送ることで、スペースの継続的な改善につながります。

4. ベンチマーク機能で精度を確認する
よく使う質問の精度を体系的に評価できるBenchmark機能を試してみます。
BenchmarksタブからAdd benchmarkをクリックし、質問と正解SQLを登録します。

今回は以下の3つを登録しました。クエリの実行も可能です。(下図は、設定画面の一例です。)
| Question | Reference SQL |
|---|---|
| 商品ごとの売上合計を多い順に教えて | SELECT product, SUM(totalPrice) AS total_sales FROM samples.bakehouse.sales_transactions GROUP BY product ORDER BY total_sales DESC |
| 支払方法ごとの取引件数を教えて | SELECT paymentMethod, COUNT(transactionID) AS cnt FROM samples.bakehouse.sales_transactions GROUP BY paymentMethod ORDER BY cnt DESC |
| 店舗規模ごとの平均注文金額を教えて | SELECT f.size, AVG(t.totalPrice) AS avg_price FROM samples.bakehouse.sales_transactions t JOIN samples.bakehouse.sales_franchises f ON t.franchiseID = f.franchiseID GROUP BY f.size ORDER BY avg_price DESC |

登録後、Run all benchmarksをクリックすると登録した質問が一括実行され、結果が以下の基準で評価されます。
| Status | 基準 |
|---|---|
| Good | 生成SQLが正解と一致、または結果セットが一致 |
| Bad | 空結果・エラー・異なる結果など |
| Needs review | 正解SQLなし、または自動評価できないケース |


参考:Genie spaceをコードで管理する方法
今回、Genie spaceの設定から全てDatabricksのUI上で行いましたが、Genie APIが提供されており、API経由でメンテナンスすることも可能です。
参考:外部ツールからGenie spaceに接続する方法
現時点でパブリックプレビューですが、Databricks managed MCP serversが提供されているためこちらを使用することで外部ツールからGenie spaceへ接続可能です。
最後に
samples.bakehouseデータを使って、Genie spaceのKnowledge store設定から実際の質問まで一通り試しました。
Knowledge storeでカラムの説明・同義語・SQL式・Join関係を整備することで、「商品別売上」「店舗規模別の平均注文金額」「大陸別の顧客購買傾向」といった分析を自然言語で引き出せました。
Genie spaceは「どのデータを見ればいいかわからない」「SQLは書けないが深掘りしたい」というビジネスユーザーが自分でデータに触れるための入口として有効です。Knowledge storeの充実度が回答精度に直結するため、まず主要テーブルの説明とSQL式を整備してから使い始めるのが近道だと感じました。










