- はじめに:SnowflakeでAIを使える時代に
- Snowflake Cortexとは?
- Snowflake Cortexでできること
- Cortex全体像:主な機能マップ
- Cortex AI Functionsとは?
- 旧Cortex LLM関数と現在のAI関数の違い
- まず覚えたい主要AI関数
- SQLだけでAIを呼び出す基本例
- Cortex Searchとは?
- Cortex Analystとは?
- Cortex Agentsとは?
- Document AI・Multimodal系でできること
- Snowflake Cortexの料金体系
- Cortex AI関数の使用量を確認するSQL
- Cortexを使うための権限
- Cortexを使う前に知っておきたい注意点
- どの機能から学べばいい?
- まとめ
- 参考リンク
- 関連記事
はじめに:SnowflakeでAIを使える時代に
Snowflake Cortexは、Snowflake上のデータに対してAI処理を実行できる機能群です。SQLからLLMを呼び出す AI_COMPLETE、文書や画像から情報を抽出する AI_EXTRACT、レビューを感情分析する AI_SENTIMENT、RAGの検索基盤になるCortex Search、自然言語でデータ分析できるCortex Analystなどが含まれます。外部APIキーや別のAI基盤を用意せず、Snowflake上でAI活用を始められるのが大きな特徴です。
本記事ではSnowflake Cortexの全体像、Cortex AI Functions・Cortex Search・Cortex Analyst・Cortex Agentsの位置づけ、料金、権限、注意点を初心者向けに整理します。各機能の詳細は個別記事へ進める「ハブ記事」として活用してください。
Snowflake Cortexとは?
Snowflake Cortexは、Snowflakeが提供するAI / 機械学習機能の総称です。Snowflakeにすでに保存されているテーブル・ステージ・文書ファイルなどに対して、SQLや専用APIから直接AI処理を実行できます。データを外部のAIサービスに転送する必要がないため、ガバナンスを保ったままAI活用を進めやすいのが特徴です。
- Snowflakeのロール・行レベルセキュリティ・マスキングがそのまま効く
- SQLでAIを呼び出せるので、データエンジニアやアナリストが扱いやすい
- RAGやエージェントもSnowflake内で完結できる
Snowflake Cortexでできること
- SQLでLLMに質問して回答を生成する
- レビューや問い合わせを感情分析する
- 多言語のテキストを翻訳する
- 長文や複数行データを要約・洞察抽出する
- PDF、画像、Officeファイルから情報を抽出する
- テキストや画像を分類する
- テキストを埋め込み(ベクトル)化して類似度検索する
- 社内文書のRAG検索基盤を作る
- 自然言語で構造化データを分析する
- 複数ツールを組み合わせたAIエージェントを構築する
Cortex全体像:主な機能マップ
| 機能 | できること | 主な用途 |
|---|---|---|
| Cortex AI Functions / AISQL | SQLからAI関数を呼び出す | 要約、翻訳、分類、抽出、感情分析 |
| Cortex Search | 意味検索・ハイブリッド検索 | RAG、社内文書検索、問い合わせ検索 |
| Cortex Analyst | 自然言語からSQL分析 | BI、ダッシュボード、データ分析支援 |
| Cortex Agents | 複数ツールを組み合わせたAIエージェント | SearchやAnalystを組み合わせた対話型AI |
| Cortex REST API | アプリケーションからCortexを呼び出す | Webアプリ、外部サービス連携 |
| Document / Multimodal系 | PDF、画像、音声などの非構造化データ処理 | 文書抽出、OCR、文字起こし、画像分析 |
初心者の方は、まずSQLから使いやすいCortex AI Functionsから入り、必要に応じてCortex Search / Analyst / Agentsへ広げていくのがおすすめです。
Cortex AI Functionsとは?
Cortex AI Functions / AISQL:SQLでAI処理を実行する
以前は SNOWFLAKE.CORTEX.COMPLETE などのCortex LLM関数として紹介されることが多かったですが、現在は AI_COMPLETE、AI_EXTRACT、AI_TRANSLATE、AI_SENTIMENT などのCortex AI Functions / AISQLとして整理されています。SQLの関数として呼び出せるため、データエンジニアやアナリストがSnowflakeの中だけでAIを試しやすくなっています。
各関数のまとめはSnowflake Cortex AI関数まとめもあわせてご覧ください。
旧Cortex LLM関数と現在のAI関数の違い
過去記事や旧コードでは SNOWFLAKE.CORTEX.* 形式の関数が登場します。これらは現在も利用できる場合がありますが、新規実装では AI_* 関数を中心に検討するのがおすすめです。代表的な対応関係を整理しておきます。
| 目的 | 現在おすすめの関数 | 旧関数・関連関数 | 用途 |
|---|---|---|---|
| 自由なAI回答生成 | AI_COMPLETE | SNOWFLAKE.CORTEX.COMPLETE | プロンプトに対する回答生成 |
| 翻訳 | AI_TRANSLATE | SNOWFLAKE.CORTEX.TRANSLATE | 多言語翻訳 |
| 感情分析 | AI_SENTIMENT | SNOWFLAKE.CORTEX.SENTIMENT | レビューや問い合わせのポジネガ分析 |
| 単一テキスト要約 | SNOWFLAKE.CORTEX.SUMMARIZE | – | 長文を短く要約 |
| 複数行の要約 | AI_SUMMARIZE_AGG | – | レビュー一覧や問い合わせ一覧の集約要約 |
| 複数行から洞察抽出 | AI_AGG | – | 複数行データから傾向や論点を抽出 |
| 文書・画像から情報抽出 | AI_EXTRACT | EXTRACT_ANSWER | PDF、画像、テキストから項目抽出 |
| 分類 | AI_CLASSIFY | CLASSIFY_TEXT | テキストや画像のカテゴリ分類 |
| フィルター | AI_FILTER | – | 条件に合う行だけをAIで判定 |
| 埋め込み | AI_EMBED | EMBED_TEXT_768 / EMBED_TEXT_1024 | ベクトル検索、類似度検索 |
| トークン数確認 | AI_COUNT_TOKENS | COUNT_TOKENS | コスト・上限の事前確認 |
旧関数も急に廃止されるわけではありませんが、新規実装は AI_* 関数を中心に検討しておくと、ドキュメントや今後の機能拡張にも追随しやすくなります。
まず覚えたい主要AI関数
- AI_COMPLETE:プロンプトをLLMに渡して自由な文章を生成
- AI_TRANSLATE:多言語翻訳
- AI_SENTIMENT:テキストのポジティブ / ネガティブを判定
- AI_EXTRACT:テキスト・PDF・画像から構造化情報を抽出
- AI_AGG / AI_SUMMARIZE_AGG:複数行データの集約要約・洞察抽出
- AI_CLASSIFY:テキスト・画像の分類
- AI_FILTER:条件に合うかどうかをAIで判定し、行を絞り込む
- AI_EMBED:テキスト・画像の埋め込みベクトル生成
- AI_COUNT_TOKENS:呼び出し前にトークン数を見積もる
SUMMARIZE系の使い分け
- 単一の英語テキストをシンプルに要約したい:
SNOWFLAKE.CORTEX.SUMMARIZE - 日本語や要約形式を細かく指定したい:
AI_COMPLETE - 複数行のテキストをまとめて要約したい:
AI_SUMMARIZE_AGG - 複数行から特定観点の洞察を出したい:
AI_AGG
SQLだけでAIを呼び出す基本例
AI_SENTIMENTの例
SELECT
review_id,
review_text,
AI_SENTIMENT(review_text) AS sentiment_result
FROM customer_reviews
LIMIT 10;
AI_COMPLETEの例
SELECT AI_COMPLETE(
'mistral-large2',
'Snowflakeのウェアハウスを停止するSQLを初心者向けに説明してください'
) AS answer;
AI_TRANSLATEの例
SELECT AI_TRANSLATE(
comment_text,
'ja',
'en'
) AS comment_en
FROM user_comments
LIMIT 10;
AI_EXTRACTの例
SELECT AI_EXTRACT(
'契約日は2026年4月1日、契約金額は500万円です。',
{'contract_date': '契約日はいつですか?', 'amount': '契約金額はいくらですか?'}
) AS extracted;
各関数の詳しい使い方は、Snowflake AI_COMPLETE関数入門、Snowflake AI_TRANSLATE関数入門、Snowflake AI_EXTRACT入門、SUMMARIZE / AI_SUMMARIZE_AGGの記事もご覧ください。
Cortex Searchとは?
Cortex Searchは、Snowflake上のテキストデータに対して意味検索やハイブリッド検索を実現するマネージドサービスです。社内文書、問い合わせ履歴、FAQ、製品マニュアルなどを検索し、RAGアプリケーションの検索基盤として使えます。
- ベクトル検索とキーワード検索を組み合わせたハイブリッド検索が使える
- RAG(Retrieval Augmented Generation)の検索部分として活用できる
- 社内文書検索、問い合わせ検索、FAQ検索に向く
AI_EMBEDやチャンク分割(文書の分割)と関連が深い- インデックスの更新・ベクトル化はSnowflake側が管理してくれる
RAGの検索基盤を作りたいときは、Cortex Search単体の記事もあわせてご確認ください(別記事で詳しく解説しています)。
Cortex Analystとは?
Cortex Analystは、自然言語の質問をもとにSnowflake内の構造化データを分析する機能です。ユーザーが「先月の売上トップ5は?」のように質問すると、セマンティックモデルをもとにSQLを生成し、分析結果を返します。
- 構造化データ(売上、注文、顧客テーブルなど)向け
- セマンティックモデル(列の意味・指標定義)が品質の鍵になる
- BIやダッシュボードの自然言語UIに向く
- ユーザーは自然言語で質問するだけで、裏側でSQLが生成・実行される
Cortex SearchとCortex Analystの違い
| 機能 | 対象データ | 主な用途 |
|---|---|---|
| Cortex Search | 文書、問い合わせ、FAQなどの非構造化テキスト | 検索、RAG |
| Cortex Analyst | 売上、注文、顧客などの構造化テーブル | 自然言語BI、SQL生成 |
Cortex Agentsとは?
Cortex Agentsは、Cortex SearchやCortex Analystなどを組み合わせ、ユーザーの質問に対して検索・分析・回答生成を行うエージェント型の仕組みです。Cortexの中ではやや発展的な領域なので、初心者の方はまずCortex AI Functions、Cortex Search、Cortex Analystから学ぶのがおすすめです。
Document AI・Multimodal系でできること
Cortexには、PDF・画像・音声などの非構造化データを扱うための機能群も含まれます。
- Document AI / PARSE_DOCUMENT:PDFやOfficeファイルからテキスト・テーブルを抽出
- AI_EXTRACT:文書・画像から特定の項目をJSONで抽出
- AI_CLASSIFY:画像のカテゴリ分類
- AI_TRANSCRIBE(該当機能がある場合):音声ファイルの文字起こし
利用できる関数・モデルはリージョン・エディション・時期によって異なるため、本番利用前にSnowflake公式ドキュメントで現在の対応状況を確認してください。
Snowflake Cortexの料金体系
Snowflake Cortexの利用料は、おおまかに次のように考えるとイメージしやすくなります。
- Cortex AI Functionsは、処理したトークン数やページ数に基づいてクレジットを消費します。
AI_COMPLETEは入力トークンと出力トークンの両方がコストに影響します。AI_TRANSLATE、AI_SENTIMENT、SUMMARIZEなども入力テキスト量に注意が必要です。AI_EXTRACT、AI_PARSE_DOCUMENT、Document AI系はページ数やファイル数がコストに大きく影響します。Cortex Guardなど追加のガードレール機能を使うと、追加コストが発生する場合があります。- 関数の実行時には通常のウェアハウスも使うため、AI関数のクレジットとウェアハウスのクレジットを分けて考える必要があります。
- 正確な単価はSnowflake公式のService Consumption Tableを確認してください。
料金の注意点(初心者向け)
| 注意点 | 理由 | 対策 |
|---|---|---|
| いきなり全件実行しない | 行数×トークン数でコストが増える | LIMIT 10 で試す |
| プロンプトを長くしすぎない | 入力トークンが増える | 指示文を短く明確にする |
| 出力を長くしすぎない | 出力トークンも課金対象になる | 箇条書き・JSONなど形式を指定する |
| 高性能モデルを最初から使わない | モデルによって単価が変わる | 軽量モデルで試してから比較する |
| PDFや画像を大量処理しない | ページ数・ファイル数で増えやすい | 少量ファイルで検証する |
| 利用状況を定期確認する | AI関数は気づかないうちに増えやすい | Usage Historyを確認する |
Snowflakeの料金体系全体については、Snowflakeの料金体系をやさしく解説もあわせてご覧ください。
Cortex AI関数の使用量を確認するSQL
Cortex AI関数の利用量は、Account Usageの専用ビューで確認できます。まずは DESC VIEW で列構成を確認してから集計するのがおすすめです。
DESC VIEW SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AI_FUNCTIONS_USAGE_HISTORY;
日別・関数別・モデル別のクレジット消費を集計する例:
SELECT
DATE_TRUNC('day', START_TIME) AS usage_date,
FUNCTION_NAME,
MODEL_NAME,
SUM(CREDITS) AS total_credits,
COUNT(DISTINCT QUERY_ID) AS query_count
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AI_FUNCTIONS_USAGE_HISTORY
WHERE START_TIME >= DATEADD('day', -30, CURRENT_TIMESTAMP())
GROUP BY 1, 2, 3
ORDER BY usage_date DESC, total_credits DESC;
過去の情報や環境によっては CORTEX_FUNCTIONS_USAGE_HISTORY という名前のビューを見かけることもあります。ビュー名・列名はSnowflakeの仕様変更で変わる可能性があるため、最新の構成は公式ドキュメントとアカウントの SHOW VIEWS IN SCHEMA SNOWFLAKE.ACCOUNT_USAGE; で確認してください。
Cortexを使うための権限
Cortex AI Functionsを使うには、利用ロールにAI関数を実行するための権限が必要です。環境によっては PUBLIC ロールに広めに付与されている場合もありますが、本番環境では必要なロールに限定する方が安全です。
USE ROLE ACCOUNTADMIN;
CREATE ROLE IF NOT EXISTS cortex_ai_user_role;
GRANT USE AI FUNCTIONS ON ACCOUNT TO ROLE cortex_ai_user_role;
GRANT DATABASE ROLE SNOWFLAKE.AI_FUNCTIONS_USER TO ROLE cortex_ai_user_role;
GRANT ROLE cortex_ai_user_role TO USER your_user_name;
USE AI FUNCTIONSアカウント権限が必要です。SNOWFLAKE.CORTEX_USERまたはSNOWFLAKE.AI_FUNCTIONS_USERデータベースロールも必要になります。CORTEX_USERはCortex系サービス全体に対して広めの権限を持つ場合があるため、最小権限で運用するならAI_FUNCTIONS_USERを検討するのがおすすめです。- スカラーAI関数だけを使わせたい場合は
AI_FUNCTIONS_USERで十分なケースが多いです。 - 本番環境では
PUBLICに広く付与しすぎないように注意してください。
Cortexを使う前に知っておきたい注意点
- リージョンによって利用できる関数・モデルが異なる場合があります。
- 一部機能はPreviewの場合があります。
- 本番利用前に公式ドキュメントでGA / Previewの状態を確認してください。
- 機密情報・個人情報を扱う場合は、社内のセキュリティ・コンプライアンスルールを必ず確認してください。
- AIの出力は必ずしも正しいとは限りません。重要な判断に使う場合は、人手確認や検証フローを入れてください。
- 大量実行前には
LIMITとWHEREで対象を絞ってください。 - コスト監視SQLを定期実行し、突発的な増加を早期に検知してください。
- Cortex SearchやCortex Analystは、AI関数とは別の設定・権限・コストが関係する場合があります。
コストが急増した場合の調査方法はSnowflakeのクレジット急増の原因調査と削減方法、予算超過を防ぐ仕組みはSnowflake Resource Monitor入門も参考になります。
どの機能から学べばいい?
| やりたいこと | 最初に学ぶ機能 |
|---|---|
| SQLでAIに文章生成させたい | AI_COMPLETE |
| レビューや問い合わせを感情分析したい | AI_SENTIMENT |
| 多言語翻訳したい | AI_TRANSLATE |
| PDFや契約書から情報を抜き出したい | AI_EXTRACT |
| 複数行のレビューをまとめたい | AI_AGG / AI_SUMMARIZE_AGG |
| 社内文書検索を作りたい | Cortex Search |
| 自然言語で売上分析したい | Cortex Analyst |
| AIアプリを作りたい | Cortex Agents / REST API |
まとめ
Snowflake Cortexは、Snowflake上のデータにAIを直接適用できる強力な機能群です。まずはSQLから使いやすい AI_COMPLETE、AI_TRANSLATE、AI_SENTIMENT、AI_EXTRACT などのCortex AI Functionsを押さえると理解しやすくなります。さらに、社内文書検索にはCortex Search、自然言語でのデータ分析にはCortex Analyst、より高度な対話型AIにはCortex Agentsというように、用途に応じて学ぶ範囲を広げていきましょう。実務利用では、権限・リージョン・Preview状態・コスト監視を必ず確認することが大切です。
参考リンク
- Snowflake公式:AI & ML features overview
- Snowflake公式:Cortex AISQL functions
- Snowflake公式:Cortex Search overview
- Snowflake公式:Cortex Analyst
- Snowflake公式:Cortex Agents
- Snowflake公式:Service Consumption Table (PDF)
※リンク先のパスはSnowflake側の構成変更で変わる可能性があります。最新のURLは公式ドキュメントのトップから検索してください。


