![[新機能]AI_ AGGおよびAI_ SUMMARIZE_ AGG関数が一般提供となったので試してみた](https://images.ctfassets.net/ct0aopd36mqt/wp-refcat-img-3610e3c1ff5961bdb7b464e17f8bf06d/90b168b240005ead852ec1d474bb74fb/snowflake-logo-1200x630-1.png?w=3840&fm=webp)
[新機能]AI_ AGGおよびAI_ SUMMARIZE_ AGG関数が一般提供となったので試してみた
かわばたです。
2026年1月22日にAI_AGGおよびAI_SUMMARIZE_AGG関数が一般提供となりました。
2つの関数の違いも含めて確認していきます。
【公式ドキュメント】
AI_AGG
AI_SUMMARIZE_AGG
対象読者
- AI_AGGおよびAI_SUMMARIZE_AGG関数について確認したい方
検証環境
- SnowflakeトライアルアカウントEnterprise版
概要
AI_AGG関数は、何千ものレコードにわたって共通のテーマや問題を抽出するなど、自然言語の指示に基づいてテキストの列を削減します。
AI_SUMMARIZE_AGG関数は、製品レベルまたはビジネスレベルでの顧客フィードバックの要約など、テキスト列全体の要約を生成します。
AI_SUMMARIZE_AGG関数はテキスト列を汎用的に要約するための集約関数で、AI_AGG関数はテキスト列をプロンプトに従って、集約するための関数です。
事前準備
使用するデータ
KaggleのSteam Games, Reviews, and Rankings.のデータを使用していきます。
データ容量が大きかったため、分割処理をローカル環境で行っています。
import pandas as pd
# 正しいファイルパスを指定します
input_file = '指定のファイルパス'
# 分割する行数
chunk_size = 100000
# ファイルを分割して保存
for i, chunk in enumerate(pd.read_csv(input_file, chunksize=chunk_size)):
chunk.to_csv(f'output_{i+1}.csv', index=False)
print("ファイルの分割が完了しました。")
分割したファイルをステージに格納しました。

レビューデータをバルクロード
スキーマおよびテーブルを作成しデータをバルクロードしていきます。
-- スキーマの作成
CREATE SCHEMA IF NOT EXISTS steam_schema;
-- テーブルの作成
CREATE OR REPLACE TABLE steam_reviews (
review TEXT,
hours_played VARCHAR(16777216),
helpful VARCHAR(16777216),
funny VARCHAR(16777216),
recommendation VARCHAR(16777216),
review_date VARCHAR(16777216),
game_name VARCHAR(16777216),
username VARCHAR(16777216)
);
-- バルクロード
COPY INTO steam_reviews
FROM (
SELECT
$1, -- review
$2, -- hours_played
$3, -- helpful
$4, -- funny
$5, -- recommendation
$6, -- review_date
$7, -- game_name
$8 -- username
FROM @KAWABATA_MART_DB.STEAM_SCHEMA.test -- ご自身のステージ名に置き換えてください
)
FILE_FORMAT = (
TYPE = 'CSV',
SKIP_HEADER = 1,
FIELD_DELIMITER = ',',
FIELD_OPTIONALLY_ENCLOSED_BY = '"'
);
データとしては下記のような形です。

カラム定義
| No | カラム名 | 説明 | 例 |
|---|---|---|---|
| 1 | REVIEW | レビュー本文 | 2023 The game was initially not playable... |
| 2 | HOURS_PLAYED | プレイ時間 | 89.8 |
| 3 | HELPFUL | Helpful票数 | 12 |
| 4 | FUNNY | Funny票数 | 3 |
| 5 | RECOMMENDATION | 推奨フラグ(Recommended / Not Recommended) | Recommended |
| 6 | REVIEW_DATE | レビュー投稿日 | November 8, 2023 / May 1 |
| 7 | GAME_NAME | ゲーム名 | EA SPORTS™ WRC |
| 8 | USERNAME | 投稿ユーザー名 | Bacon / Pywackett-Barchetta\n787 products in account |
実際に試してみた
AI_SUMMARIZE_AGG関数
おすすめ/非おすすめ別に要約
処理に時間がかかるので100件に絞って実施
WITH test AS (
SELECT *
FROM steam_reviews
LIMIT 100
)
SELECT
recommendation,
COUNT(*) AS review_cnt,
AI_SUMMARIZE_AGG(review) AS summary
FROM test
GROUP BY recommendation
ORDER BY review_cnt DESC;

結果は下記のとおりです。
Recommended
EA Sports WRCは、プレイヤーから様々な評価を受けているラリーレースゲームです。物理演算、ハンドリング、キャリアモードの改善を称賛する声がある一方で、パフォーマンスの問題、グラフィック、最適化の欠如を批判する声も上がっています。発売以来、スタッターなどの問題に対処するパッチが公開され、ゲームは大幅に改善されています。しかしながら、一部のプレイヤーは依然として問題を抱えており、特にフレームレートやテクスチャの品質に問題を抱えています。VRサポートもベータ版であり、さらなる最適化が必要です。こうした欠点はあるものの、多くのプレイヤーは、やりがいのあるゲームプレイ、リアルな物理演算、そして充実したゲームモードを楽しんでいます。EA Sports WRCはラリーレースというジャンルに確固たる地位を築いた作品ですが、技術的な問題が、そのポテンシャルを最大限に発揮するには至っていないと言えるでしょう。
Not Recommended
ゲーム「WRC Generations」は圧倒的に否定的なレビューを受けており、多くのプレイヤーがそのパフォーマンス、グラフィック、そして全体的な品質に不満と失望を表明しています。よくある不満としては、カクツキ、ラグ、最適化の不足、そして前作「Dirt Rally 2.0」からの改善不足などが挙げられます。カーネルレベルのアンチチートシステムの追加も広く批判されており、多くのプレイヤーは不要で煩わしいと感じています。一部のプレイヤーはゲームのキャリアモード、物理特性、オーディオに問題があると報告している一方で、VRサポートの欠如やゲーム全体の感触に失望を表明するプレイヤーもいます。多くのプレイヤーは、「Dirt Rally 2.0」を使い続けるか、「WRC Generations」などの他の選択肢を試すことを推奨しています。
おすすめ/非おすすめについて、レビューの全体像を把握することができました。
AI_AGG関数
ゲーム別に主要な不満点/称賛点を箇条書きで出力
WITH test AS (
SELECT *
FROM steam_reviews
LIMIT 100
)
SELECT
game_name,
AI_AGG(
review,
'You are summarizing Steam reviews. Output in Japanese. '
|| 'Return: 1) Top praised points (bullet list, up to 5), '
|| '2) Top complaints (bullet list, up to 5), '
|| '3) One-sentence overall verdict.'
) AS structured_summary
FROM test
GROUP BY game_name;

出力結果は下記のとおりです。
1.
• ステージは多様で、長さも長い
• カスタムチャンピオンシップモードは充実している
• カーコントロールは複雑で、リアルな挙動を再現している
• ダメージモデルは改善されており、リアルな挙動を再現している
• グラフィックスは良好で、特に車のモデルは詳細に再現されている
2.
• パフォーマンスは不安定で、ラグやフリーズが発生する
• グラフィックスはDR2.0よりも劣っている
• カメラの挙動はDR2.0と同じ問題を抱えており、FOV設定が不十分
• トリプルスクリーンサポートは不十分
• EAのアンチチートシステムは侵入的で、プレイヤーのプライバシーを侵害する
3. EAスポーツWRCは、グラフィックスやパフォーマンスの問題を抱えているものの、カーコントロールやダメージモデルなどの点で改善が見られる。しかし、EAのアンチチートシステムの導入や、グラフィックスの劣化など、問題点も多い。
VR体験に限定して要約
こちらは日本語で確認してみます。
WITH test AS (
SELECT *
FROM steam_reviews
LIMIT 100
)
SELECT
game_name,
AI_AGG(
review,
'VRに関するフィードバックのみを要約してください。日本語で出力してください。'
|| '良い点、悪い点、そしてハードウェア要件やパフォーマンス(FPSなど)に関する言及があればそれも含めてください。'
) AS vr_summary
FROM test
WHERE review ILIKE '%VR%' OR review ILIKE '%Quest%' OR review ILIKE '%Steam%Deck%' -- DeckはVRではないが周辺話題として任意
GROUP BY game_name;

出力結果は下記のとおりです。
VRに関するフィードバックを要約します。
良い点:
* VRサポートが追加された(ベータ版)
* レース物理学、トラックコースレイアウト、コンテンツが優れている
* VRサポートは、UEVR mod by PraydogよりもネイティブのVRサポートの方が優れている
悪い点:
* VRサポートは未だにベータ版であり、最適化が必要
* パフォーマンスが不安定で、スタッタリングやラグが発生する
* VRサポートは、トップティアのコンポーネントと設定が必要
* ゲーム音楽があまりにもスリリングではない
ハードウェア要件やパフォーマンスに関する言及:
* VRサポートは、RTX 3080 Tiなどの高性能なグラフィックカードが必要
* パフォーマンスが不安定で、スタッタリングやラグが発生する
* 最適化が必要
その他の言及:
* VRサポートは、PCVRコミュニティがサポートする価値がある
* ゲームはベータ版であり、まだ改善の余地がある
日本語でプロンプトを入力しても問題なく出力してくれますね!
最後に
用途として、
- AI_SUMMARIZE_AGG関数:まず「全体に何が書かれているか」を把握するために活用
- AI_AGG関数:全体を把握したうえで気になる論点について抽出・構造化
のような形で活用できそうです。
ユースケースとして、
議事録の分析やレビュー・コメントなどのテキストデータに対して抽出するなど利用できそうなタイミングは多そうです。
この記事が何かの参考になれば幸いです!








