データ基盤
Snowflake データ共有とは?コピーせずに取引先と同じ表を使う
シリーズSnowflake 入門全13回
- 第1回Snowflakeとは?仕組み・料金・使い方をわかりやすく解説
- 第2回Snowflakeのウェアハウスとは?サイズとクレジット・自動停止
- 第3回Snowflakeの料金の仕組みとは?計算・保存・転送とコスト管理
- 第4回Snowflake マイクロパーティションとは?プルーニングとクラスタリング
- 第5回Snowflake VARIANTとは?JSONを扱う半構造化データの仕組み
- 第6回Snowflake Time Travel(タイムトラベル)とは?保持期間と復元
- 第7回Snowflake レプリケーションとは?別リージョンに複製して切り替える
- 第8回Snowflake ロールとは?権限をロールに与えて階層で渡す仕組み
- 第9回Snowflake Dynamic Tablesとは?SELECTだけで結果の表を最新に保つ
- 第10回Snowflake データ共有とは?コピーせずに取引先と同じ表を使う
- 第11回Snowflake Icebergテーブルとは?同じデータを他のエンジンでも読む
- 第12回Snowflake Cortexとは?データを外に出さずにSQLでAIを使う
- 第13回Snowflake Well-Architectedとは?5つの柱で自分の判断を見直す
- データ共有
- Snowflake
- Secure Data Sharing
- 共有
- プロバイダー
- コンシューマー
- セキュアビュー
- リスティング
- Marketplace
- リーダーアカウント
- データクリーンルーム
- リージョン
- 自動の複製
- 読み取り専用
- Internal Marketplace
- Business Critical
- データ基盤
目次
会社どうしでデータを渡すとき、ふつうは表をファイルに書き出し、メールやファイル転送で送る。受け取った側は、それを自分のデータベースに読み込む。送った後に元の表が変わっても、相手の手元の写しは変わらない。
Snowflake では、自社のアカウントの表を、写さずに別のアカウントから読ませることができる。この仕組みを Secure Data Sharing という1。データを出す側をプロバイダー、受け取る側をコンシューマーという1。Snowflake のアカウントは、どれか一つのリージョン(クラウドの事業者がデータセンターを置く地域)にある。
Snowflake のデータ共有とは、どんな仕組みか。
Snowflake のデータ共有は、データを写さずに、自社の表を別のアカウントから読ませる仕組みである。自社がファイルで渡すと相手の写しは前のままだが、共有なら、同じリージョンの相手は自社の表そのものを読むので、表が変わるとすぐに変わった後の行を読める。
自社が共有を止めれば、相手はすぐに読めなくなる。共有は写しを作らないので、相手は保存の料金を払わず、読むための計算だけを払う。別のリージョンの相手には、自社が写しを置く必要がある。
取引先に売上の表を渡した後に、表が変わる
※ この節の例は、説明のために作った架空のものです。
売上の表を取引先に渡した後で自社の表が変わると、ファイルで渡した場合は相手の写しが前のままになり、共有した場合は相手がすぐに変わった後の行を読む。Snowflake の Dynamic Tables を共有するページにある、日ごとの売上の表 dt_orders_daily を使って示す2。
自社の売上の表に、次の 3 行が入っているとする。返品を除いて、日と地域ごとに注文の数と売上を集めた表である3。
日付 地域 注文の数 売上
2025-01-15 US-East 1 49.99
2025-01-15 US-West 2 149.95
2025-01-16 EU-West 1 62.50
1 月 15 日の US-West は、数量 3 と 2 の注文(単価 29.99)の 2 件である3。この表を取引先に渡した後で、その 2 件のうち、数量 2 の注文が返品になったとする。売上の表の US-West は、次に表が更新されると、1 件・89.97 に変わる。
ファイルで渡す: 表を書き出して送ると、相手は自分の手元に写しを持つ。
- 自社ファイル1. 売上の表を書き出す(3 行)
- ファイル取引先2. メールやファイル転送で届く
- 取引先3. 自分のデータベースに読み込む
- 自社4. 注文が返品になり、表の更新で US-West が 1 件・89.97 に変わる
- 取引先5. 手元の写しは 2 件・149.95 のまま。次のファイルが届くまで合わない
取引先の写しを直すには、書き出しと送付と読み込みを、もう一度やる。取引先との取引をやめても、渡したファイルは取引先の手元にある。
共有する: 自社は表を「共有」に入れ、取引先のアカウントを共有に足す。取引先は、共有からデータベースを作って読む2。
- 自社Snowflake1. 売上の表を共有に入れ、取引先のアカウントを足す
- 取引先Snowflake2. 共有からデータベースを作る(データは写さない)
- 取引先Snowflake3. 売上の表を読む
- Snowflake取引先4. 自社の表から 3 行を返す
- 自社Snowflake5. 注文が返品になり、表の更新で US-West が 1 件・89.97 に変わる
- 取引先Snowflake6. もう一度読む
- Snowflake取引先7. 変わった後の 1 件・89.97 を返す
- 自社Snowflake8. 取引先を共有から外す。取引先のデータベースはすぐ使えなくなる
取引先が読んでいるのは、自社の表そのものである。共有では、アカウントの間でデータは写されず、転送もされない1。新しい行や変わった行は、共有からデータベースを作ったコンシューマーがすぐに読める4。共有からアカウントを外すと、そのアカウントが作ったデータベースはすぐに使えなくなる4。
自社が書くのは、Snowflake の共有のページにある次の SQL(Structured Query Language)である。共有を作り、データベース、スキーマ、表を使う権限を共有に与え、取引先のアカウントを足す2。
CREATE SHARE analytics_share;
GRANT USAGE ON DATABASE analytics_db TO SHARE analytics_share;
GRANT USAGE ON SCHEMA analytics_db.public TO SHARE analytics_share;
GRANT SELECT ON DYNAMIC TABLE analytics_db.public.dt_orders_daily TO SHARE analytics_share;
ALTER SHARE analytics_share ADD ACCOUNTS = consumer_org.consumer_account;
取引先は、共有からデータベースを作り、自分のロールに読む権限を与えて、ふつうの表と同じように読む2。
CREATE DATABASE shared_analytics FROM SHARE provider_org.provider_account.analytics_share;
GRANT IMPORTED PRIVILEGES ON DATABASE shared_analytics TO ROLE analyst_role;
SELECT order_day, region, order_count, daily_revenue
FROM shared_analytics.public.dt_orders_daily;
売上の表が Dynamic Tables なら、自社の側の更新はそのまま続き、取引先は最後に更新された中身を読む2。
Secure Data Sharing とは:写さずに読ませる
Secure Data Sharing は、自社のアカウントのデータベースの中から選んだオブジェクトを、別の Snowflake のアカウントと共有する仕組みである1。
- 共有(share): 共有するデータベースの情報をまとめた、名前の付いたオブジェクトである。プロバイダーが作り、コンシューマーが取り込む1。
- 写さない: 共有は、Snowflake のサービスの層とメタデータの仕組みで行われ、データは写されない1。
- 読み取り専用: 共有されたオブジェクトは、相手からは変えられない。相手の側には、共有から読み取り専用のデータベースができる1。
- 費用: 共有されたデータは、コンシューマーのアカウントの保存を使わない。コンシューマーが払うのは、読むためのウェアハウス(問い合わせを動かす計算の単位)の計算だけで、保存の料金はプロバイダーが払い続ける1。
一つの共有から作れるデータベースは、一つのアカウントに一つだけである1。Secure Data Sharing の共有は、Snowflake のアカウントどうしで行う1。
ファイル転送や複製でデータを渡す方法を、Snowflake の設計の指針 Well-Architected Framework は危険で効率が悪いとし、データを動かさずに取引先と協働することを土台に置いている5。
見せる行を決める:セキュアビュー
表をまるごと共有するなら、準備は要らない。条件や相手のアカウントで行を絞るなら、セキュアビューを作る4。
- セキュアビューは、ふつうのビューが使う内部の最適化を使わないので、元のデータが間接に漏れない。定義も、権限を持つ人にしか見えない6。
- Snowflake は、共有するデータベースの機密のデータが漏れないよう、表を直接共有するのではなく、セキュアビューやセキュアな関数を共有するよう強く勧めている7。
- 相手ごとに行を変えるには、相手のアカウントと見せる範囲の対応の表を作り、セキュアビューの中で今のアカウントと結び付ける。共有する前に、相手のアカウントになったつもりで結果を確かめられる7。
既定では、共有に入れられるビューはセキュアビューだけで、ふつうのビューを入れるとエラーになる48。共有を作るときに SECURE_OBJECTS_ONLY を FALSE にすると、ふつうのビューも入れられるが、後から元に戻せない8。
相手ができること、できないこと
コンシューマーは、取り込んだデータベースを、ほかのデータベースと同じように読める9。データが Snowflake の中にあるので、変換する手間が減り、自分のデータとも結合しやすい10。
取り込んだデータベースでは、次のことはできない9。
- 行を足したり変えたりすること、オブジェクトを作ること。
- クローンを作ること、Time Travel で過去を読むこと。
- 別のアカウントへ複製(レプリケーション)すること。
共有から作ったデータベースは、データ保持期間が 0 日になる11。組織は、一つの会社が持つ Snowflake のアカウントをまとめたものである。直接の共有から取り込んだデータを、さらに別のアカウントへ渡す(再共有)ことは、以前はできなかった12。
2026 年の変更で、同じ組織のアカウントへなら、セキュアビューを通して再共有できるようになった。直接の共有は、組織の外へは再共有できない。組織の外へ渡すには、リスティングを使う129。プロバイダーは、直接の共有ごとに再共有を止めることはできない。止めるには、その共有をリスティングに変えるか、Snowflake のサポートに頼む12。
共有を始める、止める
共有を作るには、ACCOUNTADMIN か、CREATE SHARE の権限を持つロールを使う4。相手のアカウントを足したり外したりするには、共有の所有権と MANAGE SHARE TARGET の権限が要る。CREATE SHARE だけでは、相手を足せない13。
- 相手のアカウントを足すと、共有はすぐに相手から使えるようになる4。
- 共有に足したオブジェクトはすぐに読めるようになり、外したオブジェクトはすぐに読めなくなる4。
- 消して作り直したオブジェクトは、同じ名前でも新しいオブジェクトとして扱われ、改めて共有に与えるまで相手からは見えない4。
- 相手を外した後に足し直しても、相手は前のデータベースを使えず、共有からデータベースを作り直す13。
- 共有そのものを消すと、その共有から作られたすべてのデータベースが、すぐに使えなくなる4。
共有を止めて止まるのは、共有から作ったデータベースへの読み出しである4。止める前に相手が読み出して、自分の表やファイルに書いたものは、共有とは別の相手のデータになる。
エディションの条件: Business Critical Edition 以上のアカウントから、それより下のエディションのアカウントへの直接の共有は、既定で止められている。HIPAA(Health Insurance Portability and Accountability Act)に対応したアカウントから対応していないアカウントへの共有も同じである14。Business Critical から下のエディションへ共有するには、OVERRIDE SHARE RESTRICTIONS の権限を持つロールで、相手を足すたびに SHARE_RESTRICTIONS = FALSE を指定する1314。この権限は、既定では ACCOUNTADMIN が持つ14。そうした共有の前に考えることとして、Snowflake は、機密のデータは共有しないこと、機密の低いデータは Business Critical でない別のアカウントに置いて共有することを勧めている。勧めにとどまり、Snowflake は強制しない414。
リージョンをまたぐと、写しが要る
直接の共有は、同じリージョンのアカウントとしか使えない1。別のリージョンや別のクラウドの相手に共有するには、次のどちらかを使う1。
- レプリケーション: 相手のリージョンに自社のアカウントを作り、データベースと共有を複製してから、そのリージョンの相手を足す。写しは相手ごとではなく、リージョンごとに一つで済む15。
- リスティング(後の節)の Cross-Cloud Auto-Fulfillment: リスティングのデータを、Snowflake が自動でほかのリージョンへ複製する。Snowflake の日本語のページでは「自動フルフィルメント」という16。
どちらも、相手のリージョンに写しを置く。自動フルフィルメントでは、データの更新を、1 分から 8 日の間隔で相手のリージョンへ届けるよう決められる16。複製の計算、写しの保存、リージョンの間のデータの転送の費用は、プロバイダーにかかる17。自動フルフィルメントで送れるデータの大きさは、既定で 10 TB までで、管理者が上限を上げられる16。
リスティングと Snowflake Marketplace
リスティングは、Secure Data Sharing を強化した方法で、同じプロバイダーとコンシューマーの形を使う。共有に、題、説明、例の SQL、提供者の情報などを付けて出す18。
リスティングには、無料、期間を区切った試用(1〜90 日)、有料がある18。有料の料金は、使った量に応じる形か、期間ごとの定額の形を選べる19。Snowflake Marketplace は、リスティングを探し、取り込み、出す場所で、ほかの会社のデータやサービスも見つけられる20。
同じ組織の中だけで出すリスティングもある。組織の中のデータを、Internal Marketplace で社内の人が見つけて使える。このリスティングと Internal Marketplace は、2024 年 11 月に一般提供になった2122。
Snowflake を使っていない相手に:リーダーアカウント
相手が Snowflake を使っていないときは、プロバイダーが相手のためのアカウントを作って共有する。Snowflake では、このアカウントをリーダーアカウントという。相手は Snowflake と契約しなくてよく、設定や利用の費用もかからない23。
- リーダーアカウントは、プロバイダーが作り、持ち、管理する。リーダーアカウントの利用者が使ったクレジットは、すべてプロバイダーが払う23。リーダーアカウントが読めるのは、それを作ったプロバイダーのデータだけである23。
- リーダーアカウントのウェアハウスは、月に使うクレジットに上限がないので、リソースモニターで抑える23。
- リーダーアカウントは、プロバイダーと同じエディション、同じリージョンに作られる。一つのプロバイダーが作れるリーダーアカウントの数は、既定で 75 までである23。
- 契約がないので、リーダーアカウントの利用者は Snowflake のサポートに直接は問い合わせられない。問い合わせはプロバイダーが受け、必要ならプロバイダーがサポートに出す23。
ほかの会社へ渡す方法は、リーダーアカウントのほかにもある。取引先に、自社が管理したまま完全に使える Snowflake のアカウントを渡すときは、第三者(publisher–subscriber)のアカウントを使う。Iceberg テーブルは、Snowflake を使っていない相手にも、標準の Iceberg REST Catalog の API(Application Programming Interface)で共有できる10。
生のデータを見せずに分析する:データクリーンルーム
データクリーンルームは、複数の会社のデータを合わせて分析しながら、元のデータを守る仕組みである24。参加者は集計した結果は受け取れるが、クリーンルームの中の生のデータを直接は読めない24。
共有やリスティングでは、相手は共有されたデータを直接読める。クリーンルームでは、データを出す側が、自分のデータにどんな分析を走らせてよいかを決める24。
Snowflake Data Clean Rooms は、作り方が新しくなっている。複数の参加者で使う形の API は、2026 年 4 月から一般提供されている25。以前の「提供者と利用者」の形のクリーンルームは、2026 年 10 月 1 日から画面では新しく作れず、2027 年 6 月 1 日に使えなくなる26。
出典26件
-
Snowflake「About Secure Data Sharing | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/data-sharing-intro — 写さない、読み取り専用、費用の分け方、同じリージョン。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12
-
Snowflake「Share dynamic tables with other accounts | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/sharing — 共有の例。例の出力は US-West の売上を 149.97 と載せているが、数量と単価からは 149.95 になる。 ↩ ↩2 ↩3 ↩4 ↩5
-
Snowflake「Create a dynamic table | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/create — 同じ売上の表を作るページで、数量と単価があり、US-West の売上は 149.95。 ↩ ↩2
-
Snowflake「Create and configure shares | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/data-sharing-provider — 新しい行がすぐ読める、相手を外すとすぐ使えなくなる。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11
-
Snowflake「Operational Excellence」Snowflake Well-Architected Framework、2026年6月17日更新、2026年10月29日取得. https://www.snowflake.com/en/developers/guides/well-architected-framework-operational-excellence/ ↩
-
Snowflake「Working with Secure Views | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/views-secure ↩
-
Snowflake「Use secure objects to control data access | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/data-sharing-secure-views ↩ ↩2
-
Snowflake「Consume imported data | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/data-share-consumers — 日本語版は再共有ができないという以前の説明のまま。 ↩ ↩2 ↩3
-
Snowflake「Data sharing and collaboration in Snowflake | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/guides-overview-sharing ↩ ↩2
-
Snowflake「Time Travel: Data Retention Disabled for a Database Created from a Share | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/release-notes/bcr-bundles/2023_02/bcr-945 ↩
-
Snowflake「Direct shares: Resharing enabled within the consumer’s organization (Generally enabled) | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/release-notes/bcr-bundles/2026_06/bcr-2364 ↩ ↩2 ↩3
-
Snowflake「Direct share restrictions | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/direct-share-restrictions ↩ ↩2 ↩3 ↩4
-
Snowflake「Share data securely across regions and cloud platforms | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/secure-data-sharing-across-regions-platforms ↩
-
Snowflake「Auto-fulfillment for listings | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/collaboration/provider-listings-auto-fulfillment — 別のリージョンへは写しを置き、更新は間隔をおいて届く。 ↩ ↩2 ↩3
-
Snowflake「Auto-fulfillment costs | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/collaboration/provider-understand-cost-auto-fulfillment ↩
-
Snowflake「About listings | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/collaboration/collaboration-listings-about ↩ ↩2 ↩3 ↩4
-
Snowflake「Paid listings pricing models | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/collaboration/provider-listings-pricing-model ↩
-
Snowflake「About Snowflake Marketplace | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/collaboration/collaboration-marketplace-about ↩
-
Snowflake「About organizational listings | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/collaboration/listings/organizational/org-listing-about ↩
-
Snowflake「November 12, 2024 — Organizational listings and the Internal Marketplace — General Availability | Snowflake Documentation」2024年11月12日、2026年10月30日取得. https://docs.snowflake.com/en/release-notes/2024/other/2024-11-12-organizational-listings ↩
-
Snowflake「Manage reader accounts | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/data-sharing-reader-create — 費用は提供する側が払い、上限は無い。日本語版は作れる数を 20 としている。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Snowflake「About Snowflake Data Clean Rooms | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/cleanrooms/about ↩ ↩2 ↩3
-
Snowflake「Apr 9, 2026: Snowflake Data Clean Rooms updates | Snowflake Documentation」2026年4月9日、2026年10月30日取得. https://docs.snowflake.com/en/release-notes/2026/other/2026-04-09-dcr ↩
-
Snowflake「End of life for legacy Provider and Consumer Data Clean Rooms | Snowflake Documentation」日付なし、2026年10月30日取得. https://docs.snowflake.com/en/user-guide/cleanrooms/pc-eol ↩
この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。