AISQLの課金について調べてみた
本記事は、Snowflake Advent Calendar 2025 の 7 日目です。
同 1 日目(12/1)の記事として「Cortex AISQLで住所の名寄せをやってみた」を執筆しました。Snowflake Cortex AISQLで住所の名寄せを試した結果を共有したものです。表記揺れのある住所データをAI_FILTERとAI_SIMILARITYで処理し、その有効性と注意点を解説しました。
これは、その記事の執筆後のお話です。
ことの発端
記事公開直後の12/1 00:56に、Snowflakeからメールが届いていたことに後で気づきました。

ん?「まだ半分残ってる」ってことは、クレジット半分近く使ったってことか??
・・・ホントだ、180$も使ってる!!

実験には当然ながらSnowflakeのトライアル環境を使いました。400$分のクレジット付きで1ヶ月間使えるものです。
執筆の追い込み時期に1ヶ月期限が切れてしまったので、11/24に新しいのを作りました。そのため、記事用のスクショ取ったり、SQLの動作確認する程度での使用でした。
ウェアハウスサイズXSで、100件×100件をAISQLでjoinする実行時間10数秒のクエリです。30回くらい叩いたくらいで、42クレジットも消費するのか??
このとき、実験中にふと気になったことが、頭をよぎりました
- 「LLM処理ってXSウェアハウスの上で走ってるのかな?」と思ったけどスルーしてたこと
- クエリ実行中にウェアハウスの表示が変化すること
冷静に考えてみると、12/1記事の感想1に書いたように、100件×100件で10,000件のプロンプトをLLMに投げているはずです。
なのに、10数秒で帰ってくるのはなんだか早い気が。クエリで使ってるXSウェアハウスとは別に、プロンプトのLLM処理を、高速&並列に捌く別のコンピュートがいないと説明がつかないように思えます。だとしたらそいつコストが発生してるはず。
AISQLの課金体系がどうなってるのか知らないことに気づきました。
AISQLのコストを調べてみた
とりあえずGeminiに聞いてみたら、「SnowflakeのAI SQL(Snowflake CortexのAI関数など)を利用する場合、通常のウェアハウスのコンピュート費用とは別に、AIサービス固有のクレジット消費が発生します」って言ってきたんで、Snow Documentを見てみました。
Snowflake Cortex AI Functions (including LLM functions)のめっちゃ長いページの中に、コストの考慮事項の項がありました。
Snowflake Cortex AI 関数は、処理されたトークンの数に基づいてコンピュートコストが発生します。100万トークンあたりのクレジット単位での各コストについては、 Snowflakeサービス利用テーブル をご参照ください。
トークンは、Snowflake Cortex AI 関数で処理されるテキストの最小単位です。テキストに関する業界の規則では、トークンはおよそ4文字に相当しますが、メディアファイルのトークンに相当するなど、モデルによって異なる可能性があります。
<中略>
ちゃんと書いてありましたね・・。(このページは最初の方しか読んでいませんでした。すぐ個別のAISQL関数のページに行っちゃったので・・)
AIサービスのコスト管理関係のクエリが書かれていたので、実行してみました。
AIサービスのコストを確認する
日別の「LLM関数を含むAIサービスに使用されたクレジット」を確認できる、METERING_DAILY_HISTORY ビューというのがあるとのことなので、確認してみました。
- クエリ
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
WHERE SERVICE_TYPE='AI_SERVICES'
;
- 実行結果
やっぱAISQLのクレジット消費がすごかったのかー。
でも、不思議なことが。冒頭にスクショ張ったクレジット画面では、実績が41.85クレジットだったけど、このクエリ結果の3日分の使用クレジットを合算すると約44.32なので、実績の方が少ない数字になっています(実績には通常ウェアハウス分のクレジットも含むはずなのに)。
謎です・・。今回はこれは解明できませんでした(すみません)。
個別AISQLコールのコストを確認する
「クエリ×その中で実行されたAISQL」の粒度で、トークン量と消費クレジットを確認できる CORTEX_AISQL_USAGE_HISTORY ビューがあるのでとのことなので、確認してみました。
- クエリ
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AISQL_USAGE_HISTORY
ORDER BY QUERY_ID
;
- 実行結果
うわぁ、100行×100行のAI_FILTERを 1回叩く毎に1.54クレジット溶かしてたのかー。恐っ!!
FUNCTION_NAME列で、値が"EMBED_TEXT"になってるのは、多分AI_SIMILARITYのことですね。
| AISQL | コール数 | 消費クレジット | 100コール消費クレジットの概算 |
|---|---|---|---|
| AI_FILTER | 10,000 | 1.5 | 0.015 |
| AI_SIMILARITY | 104 | 00016 | 0.0015 |
AI_SIMILARITYのコストは、AI_FILTERの1/10程度みたいですね。AI_SIMILARITYはLLMを使ってないからでしょう。期せずして、12/1記事の感想3の確認ができた感じです。
まとめ
今回やった「AI_FILTERを結合句に使ったJOIN」の実行コストを概算すると、
1.54クレジット × Snowflake AWS東京リージョン 4.3$/クレジット × 155円/$
=1,026円
くらいになるので、1回実行する毎に1,000円を溶かしていたことになります。
ぜんぜん意識していませんでした・・。
12/1記事の感想1に書いたように、おそらく直積になるであろう「AI_FILTERを結合句に使ったJOIN」では、件数が多いとAISQL破産というのもあながち冗談でもなかったりするかも・・と思いました。実務で利用される方は、どうかお気を付けください・・。
最後まで読んでいただき、ありがとうございました!
Snowflake データクラウドのユーザ会 SnowVillage のメンバーで運営しています。 Publication参加方法はこちらをご参照ください。 zenn.dev/dataheroes/articles/db5da0959b4bdd
Discussion