みなさん、データ共有ってどうしていますか?
メールでCSVを送ったり、S3に置いたファイルのURLを共有したり…。実はどれも手間やセキュリティリスクが多い方法です。
そこで登場するのが Delta Sharing(デルタシェアリング)。
Databricksが提唱する「安全でオープンなデータ共有プロトコル」で、クラウド時代に最適化された仕組みなんです。
この記事では、
- Delta Sharingの基本
- 仕組み(裏側でどう動いているのか)
- Databricksでの使い方
- コストと制約
を、シンプルに解説していきます。
Table of Contents
Delta Sharingとは?
一言でいうと、「クラウドネイティブな安全・簡単データ共有の仕組み」 です。
ポイントは次の2つ:
- オープンプロトコル
Databricks専用ではなく、SparkやPandas、Power BIなど、対応するクライアントなら誰でも利用可能。 - リアルタイムの共有
データをコピーせずに共有できるので、常に最新データを安全に配布できる。
つまり「相手がどんなツールを使っていても、同じテーブルを直接参照できる」世界を実現してくれるんです。
[データ提供者] -- Delta Sharingサーバー -- [データ受信者]
登場人物は「提供者」と「受信者」
Delta Sharingには2つの当事者が登場します。
- データ提供者(プロバイダー)
Delta Sharingサーバーを通して、共有したいテーブルを公開する。 - データ受信者(コンシューマー)
SparkやPandas、Power BIなどのクライアントから、その共有データを利用する。
イメージはこんな感じです👇
受信者は「読み取り専用」でデータを利用できます。これがセキュリティ上の大きなポイントです。
仕組みを覗いてみる
では裏側では何が起きているのでしょう?
- 受信者が「orders テーブルを見たい」とサーバーにリクエスト。
- サーバーはアクセス権限を確認。
- 許可された場合、S3などクラウドストレージ上の対象ファイルにアクセスできる 一時的なURL を発行。
- 受信者はこのURLを通じてクラウドから直接データをダウンロード。
つまり「サーバー自体はファイルをコピーしない」。
クラウドストレージを直接活用することで、大規模データでも高速・効率的に共有できるんです。
DatabricksでのDelta Sharing
Databricksでは Unity Catalogと統合 されています。
- Unity Catalogでアクセス権限を管理
SHARE
オブジェクトを作成して、テーブルやビューを共有GRANT
文で受信者に権限を付与
さらに共有方法は2種類あります。
- Databricks to Databricks Sharing
Unity Catalogを使うDatabricksワークスペース間での共有。テーブルだけでなく、ビューやノートブックまで共有可能。 - Databricks Open Sharing Protocol
Databricksを使っていないユーザーとも共有できる。SparkやPandas、BIツールなど幅広く対応。
コストと限界
メリットが多いDelta Sharingですが、知っておきたい注意点もあります。
- コスト
データをコピーしないので「余計なストレージコスト」は不要。
ただし、他クラウドや海外リージョンに転送すると データ転送料(エグレスフィー) が発生します。 - 限界
- 共有されたデータは受信者にとって 読み取り専用(書き込み不可)。
- データ形式は Delta Lake形式限定。
これらの制約を理解した上で使えば、非常に強力な共有手段となります。
まとめ
Delta Sharingを一言でまとめると、
👉 「コピー不要、クラウド最適化、安全でオープンなデータ共有」
- 異なるクラウドやプラットフォームをまたいでも安全にデータを共有できる
- DatabricksではUnity Catalogと統合されており、数コマンドで実現可能
- 転送コストと読み取り専用の制約に注意
データ連携に悩んでいるチームにとっては、まさに救世主のような仕組みです。
次回は、これと並んで注目されている Lakehouse Federation(レイクハウス・フェデレーション) について取り上げます。