2026年7月31日

BigQuery AI.AGG入門|AI.GENERATEとの違いと使い分けを解説【2026年最新】


Content

「レビューを全部読んで傾向をまとめて」「ログを全部見て異常がないか教えて」——こういう依頼、SQLだけで解決できたら楽なのに、と思ったことはないでしょうか。

BigQueryに2026年4月からプレビュー追加された AI.AGG関数 は、まさにこの「複数行のデータをAIで意味的にまとめる」を1行のSQLで実現する関数です。本記事では、AI.AGGの基本と、混同しやすい AI.GENERATE関数との違いを整理します。

このシリーズでは、①概念編(本記事)→ ②運用ログ分析編 → ③VOC(チャットログ)分析編、という流れで、AI.AGG関数の利用タイミングを解説していきます。

本記事は2026年7月時点の情報をもとに執筆しています。

AI.AGG関数は現在プレビューの機能として提供されています。

1. AI.AGGとは何か

AI.AGG は、BigQuery から Vertex AI の Gemini モデルを利用して、複数の行に含まれるテキストや画像データを自然言語の指示にもとづいて集約できる AI 集約関数です。通常の SUM()COUNT() と同じように GROUP BY と組み合わせて利用でき、グループごとに AI による要約や分析結果を 1 件の文字列として返します。

基本構文は次のようになります。

SELECT
category,
COUNT(*) AS item_count,
AI.AGG(
review_text,
'このカテゴリのレビューに共通する傾向を2文で要約してください。'
) AS review_summary
FROM
`your_dataset.product_reviews`
GROUP BY
category
ORDER BY
item_count DESC;

COUNT(*) と同じ GROUP BY の中に AI.AGG() を並べて書けるため、「件数は通常の集計」「傾向は AI による要約」といった処理を、1 つの SQL で同時に実行できます。これが AI.AGG の最大の特徴です。

できること・できないこと

  • 入力:文字列(STRING)、または文字列・画像(ObjectRefRuntime)・それらの配列を含む STRUCT。画像は通常 OBJ.GET_ACCESS_URL() で生成した ObjectRefRuntime を利用します。
  • 出力:常に文字列(STRING)。プロンプトで JSON や Markdown 形式を指定することはできますが、厳密な JSON スキーマが保証されるわけではありません。
  • NULL の扱い:NULL の入力は結果に影響する可能性があるため、実務では IFNULL()COALESCE() を利用して値を補完しておくと、より安定した結果が得られます。

2. AI.GENERATEとの違い

ここが最も混乱しやすいポイントです。BigQuery には生成 AI を利用する関数が複数あり、「結局どれを使えばよいのか」と迷うことがあります。そこで、処理の単位という観点で整理してみます。

 

つまり、「1件ずつ処理する」のが AI.GENERATE、「複数件をまとめて分析する」のが AI.AGG と考えると分かりやすいでしょう。

AI.AGG が登場する以前は、複数行を AI にまとめて分析させたい場合、STRING_AGG() などでテキストを結合し、それを AI.GENERATE(従来は AI.GENERATE_TEXT)へ渡す実装が一般的でした。AI.AGG では、このような前処理を自分で実装する必要がなくなり、よりシンプルな SQL で実現できます。

3. コスト・課金面での違い(見落としがちなポイント)

AI.AGG を含む BigQuery の AI 関数は、通常の BigQuery のクエリ料金に加え、バックエンドで利用されるGemini Enterprise Agent Platform(旧 Vertex AI)の利用料金も発生します。利用するモデルに応じて適用される料金体系が異なるため、事前に対象モデルの料金を確認しておくことが重要です。

AI.AGG の大きな特徴の一つが、多段階集約(Multi-level Aggregation)です。公式ドキュメントによると、AI.AGG は入力データを自動的に複数のバッチへ分割し、それぞれを AI で集約した後、その集約結果をさらに集約する仕組みを採用しています。そのため、通常の Gemini のコンテキストウィンドウを超える大量のデータでも分析できるようになっています。

この仕組みにより、大量のレビューやログを 1 回のクエリで分析できます。一方で、要約結果をさらに要約するため、追加のモデル呼び出しが発生し、トークン使用量が増える場合があります。

また AI.AGG は、モデル エンドポイントを指定しない場合、デフォルトでその時点の最新モデルを利用します。そのため、Google Cloud 側でデフォルトモデルが更新されると、同じ SQL を実行しても回答内容やコスト、レスポンスの傾向が変わる可能性があります。

検証用途ではデフォルトモデルを利用しても問題ありませんが、本番環境では利用するモデルを明示的に指定することをおすすめします。

これにより、AI の出力品質やコストを安定して管理しやすくなります。

実務で意識したいポイント

  • 1行あたりのデータは大きくしすぎない
    AI.AGG は 1 行のデータを途中で分割しないため、1 行がモデルの入力上限を超えるような大きさの場合は処理できない可能性があります。長文は事前に分割・要約しておくことを検討しましょう。
  • 分析対象はできるだけ絞り込む
    WHERELIMIT、期間指定などを利用して必要なデータだけを AI.AGG に渡すことで、処理時間やトークン使用量を抑えられます。

4. 実際に動かしてみる

ここからは、実際に AI.AGG を使ってみます。今回は、Google Cloud が提供している BigQuery Public DatasetsIMDb Reviews データセットを利用しました。BigQuery Public Datasets は、Google が公開しているサンプルデータ群で、誰でも追加料金なし(クエリ料金のみ)で利用できます。

IMDb Reviews は、映画情報サイト「IMDb(Internet Movie Database)」の映画レビューをまとめた公開データセットです。レビュー本文や評価などが含まれており、自然言語処理や生成AIのサンプルとしてもよく利用されています。

今回は、このデータセットを使って「同じ映画に投稿された複数のレビューを AI.AGG で要約する」というシンプルな例を試してみます。

通常のSQLでも、レビュー件数や平均評価などの数値は簡単に集計できます。しかし、「レビュー全体としてどのような評価なのか」をSQLだけでまとめるのは困難です。

そこで AI.AGG を利用すると、複数のレビューを Gemini が読み取り、「この映画はどのように評価されているか」を自然言語で要約してくれます。

実行したSQL


SELECT
title,
movie_id,
AI.AGG(
review,
'レビュー全体の評価を3文で要約してください。',
endpoint => 'gemini-2.5-pro'
) AS summary
FROM `bigquery-public-data.imdb.reviews`
WHERE title IS NOT NULL
GROUP BY
movie_id,
title
LIMIT 5;

実行結果

実際に実行すると、映画ごとに複数のレビューが1つの文章へ要約されます。

5. まとめ

AI.AGG は、複数行のテキストを AI によって意味的に集約できる BigQuery の AI 関数です。1 行ごとに要約や翻訳、説明生成を行う AI.GENERATE とは役割が異なり、大量のテキストから全体の傾向や特徴を把握したい場合に力を発揮します。

使い分けに迷った場合は、「1行ごとに処理したいのか」「複数行から全体の傾向を知りたいのか」を判断基準にすると分かりやすいでしょう。

また、AI.AGG は内部で多段階集約を行うため、大量データも扱える一方で、トークン使用量や処理時間に影響する場合があります。実務では、WHERE句などで対象データを絞り込んでから実行することを意識すると、コストと性能の両面で効率的に利用できます。

今回は AI.AGG の基本的な使い方と AI.GENERATE との違いを紹介しましたが、AI.AGG の真価が発揮されるのは実際の業務データを分析するときです。

次回は、システムログの監視VOC(Voice of Customer:顧客の声)分析を題材に、AI.AGG を活用して異常傾向や問い合わせ内容をどのように効率よく分析できるのか、実践的なユースケースを紹介します。

システムサポートでは、Google Cloudの導入や活用を支援しております。

Google Cloudを導入したい・導入したけど使いこなせていない…という方は、お気軽にご相談ください!

Google Cloud 導入・活動支援に関するご相談はこちら

2026年7月31日 BigQuery AI.AGG入門|AI.GENERATEとの違いと使い分けを解説【2026年最新】

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら