さよならETL👋 SnowflakeのデータをSalesforce Data CloudへFile Federationで爆速連携してみた
💡 はじめに:こんな「データ連携」の課題、ありませんか?
企業のデータ活用において、以下のような課題に直面していませんか?
- データのサイロ化: Snowflakeにある購買履歴やWebログと、Salesforceの顧客情報がバラバラ…。
- 鮮度の低下: 夜間バッチでのETL処理。CRMで見られるデータはいつも1日前のもの…。
- 高まるコスト: データ連携パイプラインの開発や、仕様変更のたびに発生するメンテナンスの手間とコストが重い…。
そんな課題を解決するのが、Salesforce Data CloudとSnowflakeのZero-Copy File Federationです。
この記事では、データを物理的に移動させることなく(Zero-Copy)、Snowflake上のデータをほぼリアルタイムでSalesforce Data Cloudから参照できる画期的な連携方法を、アーキテクチャの解説から具体的な設定手順まで、分かりやすくご紹介します。
2025年6月時点でData CloudのFile Federation連携はBeta版ですがそのパワーを十分実感できます! ぜひトライしてみましょう!
🎬 まずはデモをどうぞ!これがZero-Copy File Federation連携の実力です
百聞は一見に如かず。Snowflake上のデータを更新すると、ほぼリアルタイムでSalesforceの画面に反映される様子をご覧ください。
左のウインドウでSnowflake側にある顧客の注文データを作成します。その後右のSalesdforceの顧客レコードページを更新するとその注文データが表示されることが確認できます。
いかがでしょうか。従来のようにETL処理を待つ必要は一切ありません。この限りなくリアルタイムなデータ連携が、これからの顧客体験を大きく変える可能性を秘めています。
🏗️ Zero-Copy File Federationのアーキテクチャ
この魔法のような連携は「Zero-Copy File Federation」という仕組みで実現されています。
- ✅ データの実体はSnowflakeに置いたまま。
- ✅ Salesforce Data Cloudは、SnowflakeのOpen Catalogを通じて、データソースへのパス情報(メタデータ)のみを受け取ります。
- ✅ Data Cloudからデータにアクセスする際は、そのパス情報を使ってS3上のデータファイルを直接参照します。
これにより、データの二重管理やETL処理が不要になり、コスト削減、データ鮮度の向上、そしてガバナンスの強化(データの一元管理)を同時に実現できるのです。
🛠️【ハンズオン】設定手順を完全解説
それでは、実際に設定していきましょう。手順は大きく分けて以下の4ステップです。
- Snowflake側の準備
- AWS側の設定(IAM関連)
- Snowflake Open Catalogの設定
- Salesforce Data Cloudでのコネクタ登録
前提条件
- Snowflakeアカウント(無料トライアルでも可)
- AWSアカウント
- Salesforce Data Cloudが有効化されたSalesforce組織
注) これら3つのクラウドは同じリージョン上に存在する必要があります。
STEP 1: Snowflake側の準備
まず、SnowflakeがAmazon S3バケットにあるデータにアクセスできるように「外部ボリューム(External Volume)」を設定します。
-
Snowflake無料アカウント取得
- (まだの方は、公式サイトからトライアルアカウントを取得します)
-
外部ボリュームとして利用するS3バケットの準備
-
Snowflakeで外部ボリュームを作成
- 用意したS3バケットを外部ボリュームとしてSnowflakeに登録します。
- Snowflakeで外部ボリュームを作成する
STEP 2: AWS側の設定(IAM関連)
SnowflakeとData CloudがセキュアにS3バケットへアクセスするための「鍵(権限)」をAWS IAMで作成・設定します。ここが一番のポイントです。
-
SnowflakeのためのIAMポリシーとロールを作成
- 目的: SnowflakeがS3バケットを読み書きできるようにする。
- SnowflakeアカウントのAWS IAMユーザー情報を取得し、S3バケットへのアクセスを許可するIAMポリシーとロールを作成。このロールをSnowflakeに紐付けます。
- SnowflakeアカウントのAWS IAMユーザーを取得する
STEP 3: Snowflake Open Catalogの設定
次に、Snowflakeのデータを外部(Data Cloud)に公開するためのカタログを作成します。
-
Open Catalogでカタログを作成する
Snowflake>Accounts>Create Snowflake Open catalog Account -
カタログロールの作成と権限付与
-
CATALOG_URIの取得
- 設定が完了したら、Data Cloudとの接続に必要となる
CATALOG_URI
を取得します。このURIが、Data Cloudがカタログを見つけるための「住所」になります。 - 参考:CATALOG_URIを取得
- 設定が完了したら、Data Cloudとの接続に必要となる
-
カタログ同期
- SnowflakeのテーブルをOpen Catalogに同期します。
- [参考:カタログ同期を設定する]
(https://docs.snowflake.com/en/user-guide/tables-iceberg-open-catalog-sync#step-5-set-up-catalog-sync) - 新規でテーブルを作成した場合はオープンカタログへ通知を送信しましょう。
(https://docs.snowflake.com/ja/sql-reference/functions/system_send_notifications_to_catalog)
STEP 4: Salesforce Data Cloudでのコネクタ登録
いよいよ最終ステップです!Data Cloudの管理画面からSnowflakeへの接続を作成します。
- Data Cloudの[設定] > [Data Cloud設定]に移動します。
- その他のコネクタからSnowflake ファイル統合を選択します。
- コネクタの設定画面で、認証情報を入力します。
- 接続テストを実行して
成功
すれば完了です! 🎉
接続が完了すると、Data Cloud上でデータソースとしてSnowflakeのテーブルが選択できるようになり、データストリームの作成やデータマッピングが可能になります。
📝 まとめ:Zero-Copy連携が拓くデータ活用の未来
今回は、SnowflakeとSalesforce Data CloudをFile Federationで連携する手順をご紹介しました。
この連携の最大の魅力は、やはりZero-Copyがもたらす以下の3つのメリットです。
- 🚀 データ鮮度の向上: ETLのタイムラグがなくなり、リアルタイムな顧客理解とアクションへ。
- 💰 コストと工数の削減: データコピーが不要になり、ストレージコストとETL開発・運用コストを大幅に削減。
- 🛡️ セキュアなガバナンス: データはSnowflake(S3)で一元管理。データガバナンスとセキュリティをシンプルに維持。
これまで分断されがちだったCRMデータとDWH上の膨大なデータをシームレスに繋ぐことで、より高度な顧客セグメンテーションや、パーソナライズされたマーケティング施策が、圧倒的なスピード感で実現可能になります。
ぜひ、この未来のデータ活用基盤を、皆さんの環境でも試してみてはいかがでしょうか。
Discussion