翻訳者ノート
こんにちは!コンテンツチームの加藤です。
「Snowflakeに分析用のデータは入っているのに、AIに使わせようとすると誰の権限で読ませるかが決まらず止まる」。こんなお悩みありませんか?この記事では、SnowflakeにkintoneやExcel、Salesforceといった業務システムを取り込むところからCortexによるRAGの設計、実際にAIから活用する際のガバナンスの在り方まで一気通貫で解説しています。 |
Snowflakeを全社のデータ基盤として使う企業は大幅に増加しました。分析のために集めたデータがそこにあるなら、AIにもそのまま使わせたい——そう考えるのは自然な流れですよね。
ただ、AIツールをSnowflakeにつなげば活用が進む、という話でもありません。回答の正確さは元データがどこまで整っているかで決まりますし、データを見せてよい範囲はユーザーごとに違います。そして、誰が何を問い合わせたかは記録に残さなければなりません。つまり、接続の前に設計する対象が3つあります。データの整備、アクセス制御、運用に耐えるワークフローです。
ということで、本記事ではSnowflakeとAIをつなぐ作業を7つのステップに分けて整理します。取り込みとモデリングから、RAG(検索拡張生成)の実装、ガバナンス、公開後の監視までを一気通貫で見ていきます。
AI側の接続層にはCData Connect AIを、Snowflake内部のAI処理にはSnowflake Cortexを使う構成を前提にします。なお、ChatGPTからの活用を考えている方はSnowflake AI連携の始め方(ChatGPT編)のほうが近い構成です。
ひとくちにSnowflake Cortexといっても中身は一枚岩ではありません。自然言語の質問にそのまま答えるCortex Analyst、社内データを横断検索するCortex Search、機械学習モデルの開発・運用を担うCortex MLなど、複数の機能群の総称です。本記事はこの中でもRAGとガバナンスを軸にした実装手順に絞って解説します。
Snowflakeに集まるデータはどこから来る?
日本の現場でSnowflakeに集めるデータソースとして人気なのは、kintone、Excel、Salesforce、SAPといった業務システムです。このデータの取り込み部分を設計しておかないと、AI側をどれだけ丁寧に設計しても空振りするでしょう。
現場が日々入力しているkintoneのアプリ、部門ごとに分かれたExcelファイル、Salesforceの商談履歴、SAPの伝票データ——これらをどうやってSnowflakeへ寄せるのか。まずはここを決めないと先へ進めません。
この「どうやって寄せるか」を扱うのが後述のステップ2です。その前に「Snowflakeに何が入っていて、何が入っていないか」を把握しておく必要があり、これはステップ1の棚卸しで洗い出します。

ステップ1: どのデータソースを何に使う?
最初にやるのは棚卸しです。Snowflakeに連携するCRM、ERP、クラウドサービス、既存の社内システムを洗い出します。そのうえで、それぞれを具体的なAIのユースケースと業務目標に結びつけていきましょう。
棚卸しした複数のデータソースを1つのAIアシスタントへまとめて渡す流れは、複数データソース対応のAIアシスタント構築例で実際の組み方を追えます。この段階で表に落としておくと、後の判断が楽になるでしょう。
例えばこういった形で棚卸できるでしょう。
データソース | AIでの使い道 | 業務KPI | データ管理者 |
CRM | 営業アシスタント向けRAG | 商談調査を短縮 | 営業企画 |
ERP | 財務データへの質問応答 | 決算締めを短縮 | 経理・財務 |
サポートチケット | セマンティック検索 | 解決までの時間を短縮 | カスタマーサポート |
製品ログ | 特徴量ストア | 解約予測の精度向上 | データサイエンス |
ステップ2: Snowflakeにどう取り込む?
取り込み方式は主に4つあります。コネクタ経由のELT(抽出・ロード・変換)、API、リアルタイムストリーミング、バッチアップロードです。業務データについては、マネージドなコネクタがいちばん手間の少ない選択になります。連携と保守の大半を引き受けてくれるからです。
どの方式でも先に確認すべき条件は3つあります。スキーマ変更に追従できるか、差分更新ができるか、過去分のバックフィルが回せるかです。この3つが揃っていないと、データは古くなり、結果の再現も監査もできなくなります。
CDataなら、この部分をコードを書かずに実装できます。オンプレミスやクラウドの業務システムからSnowflakeへデータを寄せる作業はCData Syncが担当します。具体的な手順はオンプレミスのデータをSnowflakeへ連携する記事にまとめました。
実際、ヘアケア・美容製品を扱うある流通企業では、分散していた業務システムのデータをRPAと手作業スクリプトで集めていましたが、この構成が壊れやすく運用の負担になっていました。CData Syncに置き換えたところ、専任のエンジニアチームを置かずに5〜10日で本番稼働しています。内製で作った場合の見積もりは6か月でした。同社は次のステップとして、Snowflakeに集約したデータを使った市民開発とAI活用を検討中です。
アプリケーションから直接SQLで叩きたい場合はSnowflake用のドライバーを使ってください。どちらも、データソースが増えても取り込みの作り方は変わりません。そのためチームが後から扱うデータを足しても、手戻りが出にくくなります。
ステップ3: Snowflake内でどうモデリングする?
データが入ったら、AIツールが安定して使える形に整えます。ここは層を分けて考えていきましょう。
生データを残す: 取り込んだままのコピーを保持し、来歴(リネージ)をたどれるようにします。監査やモデルの再学習では、ここが基準になります。
クレンジングと標準化: 表記の不統一を直し、重複を除き、フォーマットを揃えます。データ品質チェックは、AIアプリケーションに届く前に通してください。
キュレーション層を作る: 検証済みのデータを、業務でそのまま読めるテーブルに整理します。AIツールがクエリしやすく、意味を取り違えにくくなります。
業務コンテキストを付ける: セマンティックタグとメタデータで、その項目や指標が何を指すのかを明示します。AIが必要な情報を選び取れるかは、ここで決まります。
用途別のデータを用意する: 機械学習向けの特徴量ストア、RAGや分析、AIアシスタント向けのキュレーション済みデータセットを、目的ごとに切り出します。
ステップ4: エンベディングはどこに置く?
置き場所はSnowflakeの中です。Connect AIがSnowflakeやほかの業務システムからリアルタイムデータを取り出します。ベクトル検索そのものは、Snowflakeに内蔵されたSnowflake Cortexが担当します。
埋め込み (エンベディング)は、テキストなどのデータをAIが比較できる数値表現に変換したものです。SnowflakeのネイティブなCortex関数で生成することも、外部のLLMで生成することもできます。どちらの場合も、ベクトルはメタデータと一緒に保存します。Cortex LLM関数はSQLとPythonからLLMを呼び出せます。そのため、生成・分類・抽出といった処理の多くをデータベースの中で完結させられます。
エンベディングは「一度作って終わり」ではありません。追跡と管理が必要なデータ資産として扱ってください。バージョンを切っておけば、何が変わったのかを説明できます。必要なときに作り直せますし、その変更が検索精度にどう効いたかも測れます。
オブジェクトID | エンベディングのベクトル | 元データのメタデータ | バージョン |
doc_1042 | [0.12, 0.98, …] | 元テーブル、タイムスタンプ、管理者 | v3 |
ステップ5: RAGの検索はどう組む?
エンベディングが揃えば、質問ごとに関連する業務データをLLMへ渡せます。モデルが既に知っていることだけに頼らず、統制の効いた自社データを検索してから回答を作る——これがRAGの基本です。
Snowflake Cortex Searchを使う場合、流れはこうなります。
質問を受け取る: ユーザーが自然言語で質問します。
関連する情報を探す: セマンティックなベクトル検索が、質問と意味の近いレコードを特定します。
結果を絞る: キーワードとメタデータのフィルタで、条件に合うものへ範囲を狭めます。
LLMにコンテキストを渡す: 関連度の高い情報を、プロンプトに添えてモデルへ送ります。
根拠のある回答を生成する: LLMが取得した自社データを踏まえて、より的確な回答を返します。
Cortex Searchはセマンティック検索とキーワード検索を組み合わせます。そのため、漠然とした質問にも、条件を絞った検索にも使えます。関連度の高いコンテキストだけをLLMに渡す設計は、無駄なトークン消費を抑え、根拠のない回答が出るリスクも下げてくれます。
ステップ6: 権限と個人情報はどう守る?
RAGを本番に出す前に、セキュリティとガバナンスの制御を入れます。ここで決まるのは3点です。AIがどのデータに触れるか、ユーザーが何を見られるか、そのやり取りがどう記録されるかです。
ロールベースのアクセス制御(RBAC)を敷く: 最小権限の原則に沿って、ユーザーもAIツールも、そのタスクに必要なデータだけに届くようにします。
機微なデータを保護する: 動的データマスキングと行アクセスポリシーで、ユーザーの権限に応じて見える項目とレコードを絞ります。
個人情報をマスクする: SnowflakeのAI_REDACT関数で、個人を特定できる情報(PII)をLLMに渡る前に検出してマスクします。
監査ログを残す: クエリとモデルとのやり取りをログに取り、アクセスポリシーもバージョン管理します。セキュリティとコンプライアンスの両面で追跡できる状態にします。
AIの出力を検査する: Cortex Guardで、安全でない可能性のある応答を検出してフィルタします。
Cortex関数のリージョン制約
AI_TRANSCRIBEを含む一部のCortex関数は、すべてのSnowflakeリージョンで使えるわけではありません(日本では使えません)。あとで自社のリージョンではその関数が使えないと分かれば、構成をやり直すことになります。
着手前に、自社アカウントのリージョンで対象の関数が提供されているかを確認してください。提供されていない場合は、クロスリージョン推論を有効にするという選択肢があります。ただし、データがどのリージョンで処理されるかは審査の論点になります。有効化するかどうかは、そこまで含めて判断するのがよいでしょう。ネットワーク経路まで審査の対象になる環境では、Connect Gateway経由でAWS PrivateLinkを使う構成という選択肢も検討できます。
Snowflakeがデータそのものを統制し、Connect AIはその統制をAIのアクセス層まで延ばします。SnowflakeのRBACやポリシーをAIツール側で作り直す必要がないため、元データからAIアプリケーションまで一貫した管理を保てます。
ミニコラム:コスト管理とBIツール移行の注意点
Snowflake導入が進むほど、クエリ量に比例してコンピュートコストの管理が課題になります。既存のBIツールを一気に切り替えると、この見積もりが崩れがちです。CData Syncなら旧システムとSnowflakeを並行稼働させながら、データソースごとに段階的に移行できます。
ステップ7: 運用後は何を見張る?
制御を入れ終えたら、最後は精度と信頼性を保ち続ける仕組みです。テストと監視は、リリースした時点で終わりではありません。
リリース前にテストする: 業務ドメインに即したテストを用意します。正解が分かっている質問にモデルの応答を突き合わせれば、精度の問題を早い段階で見つけられます。
データとエンベディングを監視する: 元データの変化やエンベディングの品質低下が、検索結果に効いていないかを見ます。
パイプラインの状態を追う: Snowflakeのオブザーバビリティとログ機能で、エラー、レイテンシ、全体の処理性能を監視します。
パイロットから始める: ユースケースを1つに絞って試し、結果を測ってから広げます。
広げながら改善する: 本番の使われ方から得た情報をもとに、検索の戦略、プロンプト、統制の設定を見直します。
小さく始めて改善を回すほうが、問題を早く見つけられます。PoCで終わらせず運用に耐えるシステムへ育てる道筋も、そのほうが見えやすくなります。本番前提で構成を固めたい段階では、Production-ready なエージェント設計のリファレンスアーキテクチャが判断材料になります。
AIエージェントはどの権限でSnowflakeに触る?
実行するユーザー本人の権限です。ここを共有アカウントに寄せると、誰が何どんなデータにアクセスしたのか、が追えなくなります。
AIエージェントとSnowflakeをつなぐ標準的な口がModel Context Protocol (MCP)です。MCPサーバーを立てると、ClaudeやChatGPTのようなAIクライアントから、決められた手順でデータソースに問い合わせられます。Claudeから実際に手を動かして試す場合は、ClaudeとSnowflakeを接続する方法で設定画面まで追えます。
ここで先に決めるべきは、マネージド型かセルフホスト型かという運用形態の話よりも、次の2点です。
誰の権限で実行するか: AIエージェント専用の共有アカウントを1つ作り、全員がそこを通す構成は、作るのは簡単です。ただし行アクセスポリシーもマスキングも効かなくなります。リクエストを実行ユーザーのIDのまま通せるかを確認してください。
記録がどこに残るか: AIが投げたクエリはSnowflake側の監査ログに残ります。しかし「どのユーザーのどのプロンプトから出たクエリか」まで辿れるかは、接続層の作りで変わります。インシデントのときに説明できる粒度で残っているかを、本番前に確かめておきます。
Connect AIはマネージド型のMCPサーバーとして動きます。ただ、運用形態から選ぶのではなく、上の2点を満たせるかで判断してみてください。
Snowflake AI連携の活用パターン
ここまでの設計を、業種ごとの具体的な使い道に当てはめて見てみましょう。業種によって重視する観点は変わりますが、Snowflakeに集めたデータをAIへ安全に渡すという骨格は共通です。
小売業では、POSデータや会員データベースに蓄積した購買履歴をSnowflakeへ集約し、顧客の行動分析にAIを使う動きが広がっています。「特定の商品カテゴリを繰り返し買っている顧客層」のような自然言語の問いに、RAGで根拠データを添えて答えられれば、販促の判断が速くなります。CData Connect AIを介せば、こうした問い合わせをPOSやECの生データまで届かせる口を、コードを書かずに用意できます。
金融業では、取引データやリスクスコアリングの結果をSnowflakeに集約し、コンプライアンス担当者がAIに監査観点で質問できる体制を作るケースが増えています。ここで効くのが本記事のステップ6で扱った行アクセスポリシーとAI_REDACTで、誰がどの範囲のデータにAI経由で触れたかを監査ログに残せる設計が前提になります。CData SyncでSnowflakeへのデータ連携自体を安定させておくと、この監査基盤の土台が崩れにくくなります。
製造業で壁になりやすいのは、AIのモデルではなく手前の取り込みです。工場のIoTセンサーが出す稼働データをSnowflakeへ流し込み、異常検知や予知保全にAIを活用する例が代表的ですが、センサーデータは量が多く更新頻度も高くなります。だからこそ、ステップ2で触れた差分更新とスキーマ変更への追従が効いてきます。CData Syncのマネージドコネクタが引き受けるのは、この高頻度データを止めずに運び続ける部分です。
よくある質問
AIツールがSnowflakeのデータに安全にアクセスするために、どの権限とロールが必要ですか?
AIツールには最小権限のロールを割り当て、必要なデータベース、スキーマ、テーブルにだけ読み取りまたは書き込みを許可します。専用のカスタムロールを作ってRBACを徹底すれば、データが露出する範囲を狭く保てます。
AIツールとSnowflakeを連携させるとき、ガバナンスとコンプライアンスはどう担保しますか?
Snowflakeの動的データマスキング、行アクセスポリシー、個人情報向けのAI_REDACTを使い、監査ログを監視します。これでAIからのクエリやデータ転送を1件ずつ制御し、追跡できる状態を保てます。
マネージド型とセルフホスト型のMCPサーバーは何が違いますか?
マネージド型は提供側がホストと保守を行い、更新も自動で、運用の手間が小さくなります。セルフホスト型は設定、配置、コンプライアンス対応を自分で決められますが、運用も自分で持ちます。Connect AIはマネージド型です。
AIツールとSnowflakeのやり取りは、どう監視して切り分けますか?
Snowflakeでクエリの監査ログ、パイプラインのオブザーバビリティ、エラー監視を有効にします。AIからSnowflakeへのやり取りを1件ずつ追跡してデバッグでき、処理性能も一定に保てます。
Snowflakeのデータを扱うとき、ハルシネーションを抑えるコツはありますか?
RAGにセマンティック検索とキーワードのフィルタを組み合わせ、データをキュレーションし、プロンプトの検証チェックを足します。回答が現在の統制されたデータに依拠する状態を作れます。
AIに渡すデータ経路を設計する
Snowflakeとの連携は、4つの作業に収まります。データを入れる、整える、正確に引き出す、そして全工程を統制することです。Snowflake内部のAI処理はSnowflake Cortexが受け持ちます。残るのは、AI側の入口をどう設計するかです。
CData Connect AIは、Snowflakeを含む数百のデータソースへのアクセスを1つのエンドポイントに一元化します。ノーコードでリアルタイムデータをAIアシスタントへ渡せます。チームがClaudeやChatGPTを使っていても、CrewAIのようなフレームワークで組んでいても、通す口は同じです。
無料トライアルから、まずは手元のデータソース1つをつないで試してみてください。部門をまたいで同じ口を使えるかどうかも、そこで見えてくるでしょう。
AIに渡すデータ経路を設計する
この記事で見た権限設計は、AIがデータに触る経路を絞り込む作業でした。CData Connect AIなら、Snowflakeなど数百のデータソースへのアクセスを1つのエンドポイントに一元化できます。
無料トライアルをスタート