第5章 データコラボレーション(Data Collaboration, 10%)
🎯 この節の学習目標
5-3で学んだダイレクトシェアは「特定のアカウントにオブジェクトを直接共有する」素朴な仕組みでした。リスティング(listing)は、その共有をタイトル・説明・利用規約・サンプルクエリなどのメタデータとともにパッケージし、シェアや Snowflake Native App を配布する仕組みです。提供範囲によって2種類に分かれます。
| 種類 | 提供範囲 | 特徴 |
|---|---|---|
| プライベートリスティング | 指定した特定のアカウントのみ | 取引先など限られた相手への配布。ダイレクトシェアと違い、説明文・利用規約の添付や別リージョン/別クラウドへの自動フルフィルメントが使える |
| Marketplace公開リスティング | Snowflake Marketplaceの全利用者 | 不特定多数への公開。無料(free)・試用(trial)・有料(paid)の提供形態を選べる。公開にはSnowflakeの審査がある |
リスティングの大きな利点が、5-3でも触れたクロスクラウド自動フルフィルメント(Cross-Cloud Auto-Fulfillment)です。プロバイダが1つのリージョンでリスティングを公開すると、Snowflakeがコンシューマのいるリージョン・クラウドへデータを自動的に複製して配布してくれるため、プロバイダが手動でレプリケーションを管理する必要がありません。
図:リスティングによる配布の流れ。ダイレクトシェアを包む「配布のパッケージ」と理解する
Snowflake Marketplaceは、サードパーティが公開するデータセットやアプリケーションを発見・取得できるマーケットです。気象、人口統計、金融市場、位置情報など多様なデータが提供されており、コンシューマとしての使い方は非常にシンプルです。
💡 具体例:自社データと外部データの即時結合
-- Marketplaceで取得した気象データ(read-only DB)と
-- 自社の売上データをそのままJOINして分析できる
SELECT s.store_id,
s.sales_date,
s.amount,
w.daily_high_temp
FROM mydb.public.daily_sales AS s
JOIN weather_db.public.daily_obs AS w
ON s.sales_date = w.obs_date
AND s.region_code = w.region_code;
「外部データの入手→転送→ロード→更新運用」という従来の重い作業が、「取得してすぐJOIN」に置き換わるのがMarketplaceの価値です。
📝 試験のポイント
Marketplaceで取得したデータについては「read-onlyのデータベースとして即利用できる」「コピーされないのでストレージ課金なし・常に最新」「クエリのコンピュートは自分のウェアハウスで負担」の3点セットで覚えましょう。提供形態に無料・試用・有料があることも押さえておきます。
Data Exchangeは、Marketplace の「全世界に公開」とプライベートリスティングの「1対1の指定」の中間にあたる仕組みで、自社グループ・取引先ネットワークなど招待されたメンバーだけが参加できるプライベートなデータ交換ハブを作ります。
| Snowflake Marketplace | Data Exchange | |
|---|---|---|
| 参加者 | Snowflakeの全利用者 | 管理者が招待したメンバーのみ(グループ会社・業界コンソーシアムなど) |
| 運営 | Snowflakeが運営 | ハブの所有組織が管理(メンバーやプロバイダ/コンシューマの役割を制御) |
| 用途 | サードパーティデータの流通・収益化 | 組織内・グループ内の限定的なデータ共有ポータル |
2社がデータを突き合わせて分析したい、しかし互いの生データ(顧客情報など)は開示できない——この矛盾を解決するのがデータクリーンルーム(data clean room)です。
典型例は広告分野で、広告主と媒体が互いの顧客リストを開示せずに「両方に含まれる顧客の重なり(オーディエンスの重複)」を集計する、といった使い方です。Snowflakeのクリーンルームは、Secure Data Sharingやセキュアビュー/UDF、Native Appなどこの章で学んだ部品の上に構築されており、データを移動せずに共同分析できる点が特長です。
リスティングで配布できるのはデータ(シェア)だけではありません。Snowflake Native App(1-9参照)——ストアドプロシージャやUI、データを組み合わせたアプリケーション——も、プライベートリスティングやMarketplaceを通じて配布できます。コンシューマは取得したアプリを自分のアカウント内で実行するため、自社データをプロバイダへ送ることなくアプリの機能を利用できます。データクリーンルームの多くも、この Native App として提供されています。
✅ この節のまとめ
問1. リスティングの説明として最も適切なものはどれか。
正解:A
リスティングはシェアやNative Appの配布パッケージで、プライベートリスティング(特定アカウント向け)とMarketplace公開リスティング(全利用者向け、無料/試用/有料)の両方の提供形態があります。Bはプライベートリスティングの存在と矛盾します。Cは誤りで、リスティングの実体はSecure Data Sharingでありファイルのエクスポートは行われません。Dは誤りで、クロスクラウド自動フルフィルメントにより別リージョン・別クラウドへも配布できます。
問2. Snowflake Marketplaceで取得したデータセットの説明として正しいものを2つ選べ。
正解:AとC
Marketplaceの実体はSecure Data Sharingです。取得したデータはread-onlyのデータベースとして即利用でき(A)、データはコピーされないためプロバイダ側の更新が自動的に反映されます(C)。Bはデータがコピーされるという前提が誤りで、コンシューマにストレージ課金は発生しません。Dは誤りで、クエリのコンピュート費用はコンシューマ自身のウェアハウスで負担します(プロバイダ負担になるのはリーダーアカウントの場合です)。
問3. グループ会社5社の間だけでデータセットを相互に公開・取得できる社内データポータルを作りたい。最も適切な仕組みはどれか。
正解:B
Data Exchangeは、管理者が招待したメンバーだけが参加できるプライベートなデータ交換ハブで、グループ内・組織内の限定的なデータ共有ポータルという要件に合致します。AのMarketplaceは全Snowflake利用者に公開されてしまうため不適切です。Cは認証情報の共有というガバナンス上の問題があり、共有の仕組みとして成立しません。Dのクリーンルームは「生データを開示せずに共同分析する」ための仕組みであり、データセットの公開・取得ポータルという目的とは異なります。
問4. 広告主と媒体社が、互いの顧客の生データを一切開示せずに「共通顧客数」を集計したい。この要件に最も適した仕組みはどれか。
正解:C
データクリーンルームは、生データを見せることなく、あらかじめ許可された分析(重複数のカウントなどの集計)だけを相手に許すことで、プライバシーを保護した共同分析を実現します。AとDはいずれも顧客の生データ(個々の行)への参照を相手に許してしまうため、「開示しない」という要件に反します。Bはデータのコピーを相手に渡す最も統制の効かない方法で、要件と正反対です。