概要
本記事は、Snowflake の Data Exchange を「これから触る」「運用設計したい」方向けに、全体像と運用上の要点を整理したものです。
なお、基本的な操作フロー(有効化、同一リージョン共有、異なるリージョン共有)は別記事に分けているため、本記事では該当記事へのリンクを案内しつつ、運用時に効いてくるポイントを中心にまとめます。
下記は AI による記事の概要です。
1. Data Exchange について
1-1. Data Exchange とは
Data Exchange は、特定のメンバー(Snowflake アカウント)を招待し、データを安全に共有し、Exchange 内で発見できるハブを構成する仕組みです。
提供側(Provider)はデータを Listing として公開し、参加メンバー(Consumer)は Exchange 内で Listing を検索して、データを取得(無料)またはリクエスト(パーソナライズ)できます。
出所: Data Exchangeについて | Snowflake Documentation
1-2. データ共有機能における位置付け
Snowflake には複数のデータ共有手段があり、用途によって最適解が変わります。主に下記の 6 つが候補になります。
このうち Data Exchange は、Snowflake の Organization(組織)に閉じずに、特定の Snowflake アカウント群をメンバーとして招待し、共有と発見を一体で運用できる点が特徴です。
- Direct Share(Share)
- Private Listings
- Snowflake Marketplace(Public Listings)
- Data Exchange
- Internal Marketplace(Organizational listings)
- VPS private listings
- Data Clean Rooms
1-3. Listing のタイプ
Data Exchange の Listing には、主に以下の 2 タイプがあります。
重要なのは「承認の有無」というより、事前に SHARE がアタッチされているかどうかが実務上の差分になりやすい点です。あわせて、UI とドキュメントで表記が異なる(例: UI の リクエストにより がドキュメントでは パーソナライズされたリスト と表現される)ため、表記ゆれに注意してください。
-
無料タイプ(無料リスト) -
リクエストによりタイプ(パーソナライズされたリスト)
2. 基本的な利用方法
2-1. Data Exchange の有効化
下記の記事に整理しています。
引用: Snowflake にて Data Exchange の構成手順 #Snowflake - Qiita
2-2. 同一リージョンにてデータ共有する手順
下記の記事に整理しています。
出所: Snowflake の Data Exchange により同一リージョンにある Snowflake アカウント間でデータ共有を実施する手順 #Snowflake - Qiita
2-3. 異なるリージョンにて無料リストのデータ共有を行う手順
下記の記事に整理しています。
出所: Snowflake の Data Exchange により異なるリージョンにある Snowflake アカウント間でデータ共有を実施する手順 #Snowflake - Qiita
3. 活用に向けた情報整理
3-1. ロールについて
Data Exchange には 3 つのロールがあります。
Data Exchange をホストする Snowflake アカウントが管理者(Admin)となり、メンバー(他の Snowflake アカウント)の登録やロール付与を行います。データ提供を担うアカウントには Provider ロールを、データ消費を担うアカウントには Consumer ロールを付与します。
- Admin
- Provider
- Consumer
各ロールで可能な操作は、以下のドキュメントで整理されています。
出所: Data Exchangeへのアクセス | Snowflake Documentation
3-2. SQL で実行できない(または情報が少ない)操作がある
Data Exchange は、Snowsight の GUI 運用を前提にしているように見えます。公式ドキュメントでも GUI 手順の説明が中心で、同等の手順を SQL に置き換える方法が十分に提示されていない項目が散見されます。
そのため、運用設計では「どこまでを SQL で自動化できるか」よりも、「GUI 前提で誰がどの作業を担うか(権限・手順・監査)」を先に固めるのが現実的です。
3-3. Data Exchange の管理者権限の委譲
Data Exchange の管理は基本的に ACCOUNTADMIN が担います。一方で、Admin アカウント内のロールに IMPORTED PRIVILEGES を付与することで、管理タスクを他ユーザーへ委譲できます。詳細は以下を参照してください。
出所: 他のロールへの権限付与 | Snowflake Documentation
3-4. リモートリージョン(異なるリージョン)へのデータ共有
リモートリージョンに共有する場合、無料リストとパーソナライズされたリストで仕様が異なります。特に Manual fulfilment を選択する場合、アカウント間でのレプリケーション等により、提供側がデータ複製を行う必要があります。
-
無料タイプ(無料リスト): Auto-fulfilment / Manual fulfilment を選択可能 -
リクエストによりタイプ(パーソナライズされたリスト): Manual fulfilment のみ選択可能
- パーソナライズされた リストの場合、データはリモートリージョンで自動的に利用できません。プロバイダーは、これらの各リージョンにデータを複製する責任があります。
- 無料 のリストの場合は、共有をリモートリージョンのリストに事前に関連付けるオプションがあります。
出所: データリストを管理する | Snowflake Documentation
3-5. その他の考慮事項
公式ドキュメントに運用上の考慮事項が整理されており、チェックリストとして有用です。









