0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【BigQuery】Conversational Analyticsを使って自然言語でデータ分析!

0
Posted at

はじめに

前回は、BigQuery Graphの「measures」機能を使って、セマンティックレイヤをBigQueryだけで実現できるか試してみました。

今回は少し方向を変えて、「メトリクスの定義」ではなく自然言語で聞くだけでBigQueryのデータを分析できるという機能、Conversational Analytics in BigQueryを試してみます。

2026年6月にGAしており、すでに2ヶ月ほど経っていますが、実際どこまで使えるのか気になったので触ってみました。

本記事の内容は執筆時点(2026年8月)の情報です。
UIの見た目や仕様は変更される可能性があるため、最新情報は公式ドキュメントをご確認ください。


1. Conversational Analytics in BigQueryとは

BigQuery Studioの左ナビゲーションに追加された「Agents」セクションから、データエージェントを作成できる機能です。データエージェントには、以下のような設定ができます。

  • データソース:対象にするテーブル(複数可)
  • 手順(業務文脈):フィールド名の同義語、重要なフィールド、デフォルトのフィルタ条件などの指示
  • 検証済みクエリ:あらかじめ「この質問にはこのSQLで答える」と正解を登録しておける機能

質問すると、エージェントは以下の順番で回答してくれます。

  1. Reasoning(思考過程):質問をどう解釈したかのステップ
  2. Summary(要約):分析結果の要約
  3. 生成されたSQL:実際に実行されたクエリ
  4. グラフ:可視化された結果

また、直近では前回扱ったBigQuery Graphとの連携(Graph support in BigQuery Conversational Analytics)もPreviewとして発表されており、グラフ構造を踏まえた回答もできるようになってきているようです。

参考:
Conversational analytics in BigQuery(公式ドキュメント)
Conversational Analytics in BigQuery now GA(公式ブログ)

2. 実際に使ってみる

手順①:データソースを設定する

今回はパブリックデータbigquery-public-dataを使用してみます。
このデータはデフォルトでは表示されていないため、先にExplorerへ追加する必要があります。

プロジェクト配下のデータの場合、この手順はスキップしてください。

  1. Explorerパネル上部の「+ データを追加」をクリック
  2. 「Star a project by name」を選択
  3. プロジェクト名にbigquery-public-dataと入力し、「STAR」をクリック

この状態で改めてエージェント作成のデータソース検索を行うと、thelook_ecommerce配下のテーブル(ordersorder_itemsproductsなど)が検索でヒットするようになります。

image.png

手順②:データエージェントを作成する

BigQuery Studioの左ナビから「Agents」→「+ Create agent」を選択します。

image.png

まず、以下を設定します。

  • エージェント名
  • エージェントの説明(任意)
  • ナレッジソース

ナレッジソースは「ソースを追加」から、追加したいソースを選択 → 「確認」で紐づけるデータを指定できます。

image.png

image.png

その他、以下を設定します。

  • リージョン:US / EU / global
  • モデル:GAのみ / GA・プレビュー両方使用
  • 手順(任意)
  • 検証済みクエリ(任意)

業務文脈をエージェントに理解させる

今回は任意項目のうち、「手順」を記載してみようと思います。
公式からは、「手順」に記載する業務文脈として以下の5種類のコンテキストが案内されています。

  • 類義語:主なフィールドの代替用語
  • 主なフィールド:分析において最も重要なフィールド
  • 除外済みフィールド:データエージェントが避けるべきフィールド
  • フィルタリングとグループ化:フィルタ・グループ化に使うフィールド
  • 結合関係:複数テーブルを結合する際のルール

今回のデータセット(ordersorder_itemsproducts)向けに、上記コンテキストに沿って指示文を以下のように設定してみます。

image.png

ここまで完了したら「保存」→「公開」→「Publish Agent」でエージェントの準備は完了です。

手順③:自然言語で質問してみる

エージェントを公開したら、実際に質問してみます。

過去、カテゴリ別に一番売れた商品は何ですか?

image.png

回答には、実際にエージェントが実行したSQLや思考過程もあわせて表示されるようになっています。

image.png

image.png

もう少し複雑な質問を投げてみる

業務文脈で「returned_atは使わないでください」と指示しておいたので、あえてその指示を試すような質問を投げてみます。

返品された商品を除いた、実質的な売上ランキングをカテゴリ別に教えてください

image.png

実行したSQLを確認すると以下でした。

SELECT
  p.category,
  ROUND(SUM(oi.sale_price), 2) AS net_sales,
  COUNT(oi.id) AS net_units_sold
FROM
  `bigquery-public-data.thelook_ecommerce.order_items` AS oi
INNER JOIN
  `bigquery-public-data.thelook_ecommerce.products` AS p
  ON oi.product_id = p.id
WHERE
  LOWER(oi.status) != 'returned'
GROUP BY
  p.category
ORDER BY
  net_sales DESC

SQLを見ると、returned_atは使用していないことが確認できており、代わりにstatusの値を元にフィルタリングしていることが分かります。


まとめ

Conversational Analytics in BigQueryを試してみた結果、

  • BigQuery Studio上で、データソース・業務文脈等を設定するだけでデータエージェントが作れる
  • 質問すると思考過程・SQL・グラフまで一気通貫で返してくれる
  • 精度は「何もせず質問するだけ」よりも、業務文脈をどれだけ丁寧に設定するかに左右されそう

という感触でした。
次回は、この業務文脈やメタデータを一元管理する仕組みである「Knowledge Catalog」について触ってみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?