Delta Sharingによるグローバル・データ・コラボレーションの構築
今日の相互接続されたデジタル環境では、組織やプラットフォームを超えたデータ共有とコラボレーションが、現代のビジネス運営に不可欠です。 革新的なオープンデータ共有プロトコルであるDelta Sharingは、ベンダーやデータ形式の制約を受けることなく、セキュリティとスケーラビリティを優先し、組織が多様なプラットフォーム間でデータを安全に共有し、アクセスできるようにします。
このブログでは、特定のデータ共有シナリオに合わせたアーキテクチャガイダンスを検討することで、Delta Sharing内のデータレプリケーションオプションを紹介します。 多くのDelta Sharingのお客様との経験から得た洞察をもとに、具体的なデータレプリケーションの選択肢を提供することで、イグレスコストを削減し、パフォーマンスを向上させることを目標としています。 ライブ共有は多くの地域間データ共有シナリオに適していますが、データセット全体を複製し、各地域の複製用にデータ更新プロセスを確立した方がコスト効率が良い場合もあります。 Delta Sharingは、Cloudflare R2ストレージ、変更データフィード(CDF)Delta Sharing、Deltaディープクローン機能の活用により、これを促進します。 これらの機能により、Delta Sharingは、ユーザーに力を与え、データ共有のニーズを満たすための優れた柔軟性を提供することで、クライアントから高く評価されています。
Delta Sharingはオープンでフレキシブル、そしてコスト効率に優れています
DatabricksとLinux Foundationは、データ、アナリティクス、AIを横断するデータ共有への初のオープンソースアプローチを提供するため、Delta Sharingを開発しました。 お客様は、強力なセキュリティとガバナンスを備えたプラットフォーム、クラウド、地域をまたいでライブデータを共有することができます。 オープンソースプロジェクトをセルフホスティングで利用する場合でも、Databricks上で完全に管理されたDelta Sharingを利用する場合でも、どちらもグローバルデータ配信のための、プラットフォームにとらわれない、柔軟で費用対効果の高いソリューションを提供します。 Databricks のお客様は、管理オーバーヘッドを最小限に抑え、Databricks Unity Catalog とネイティブに統合された マネージド環境で、さらなるメリットを享受できます。 この統合は、組織内および組織間のデータ共有に合理的なエクスペリエンスを提供します。
Delta Sharing on Databricksは、2022年8月の一般提供開始以来、さまざまなコラボレーションシナリオで広く採用されています。
このブログでは、Delta Sharingが重要なビジネスシナリオを可能にし、強化する上で重要な役割を果たした2つの一般的なアーキテクチャパターンを紹介します:
- 企業内における地域横断的なデータ共有
- データアグリゲーター(ハブ&スポーク)モデル
このブログの一部として、Delta Sharingの展開アーキテクチャが柔軟で、新しいデータ共有要件を満たすためにシームレスに拡張できることも実証します。
企業内における地域横断的なデータ共有
このユースケースでは、地域間でデータの一部を共有するビジネスニーズがある場合、例えば、別々の地域にQAチームがある場合や、グローバルベースのビジネスアクティビティデータに関心のあるレポーティングチームがある場合など、お客様の間で一般的なDelta Sharingの導入パターンを説明します。 通常、企業内テーブルの共有には以下が含まれます:
- 大きなテーブルの共有:アクセスパターンが異なる受信者とリアルタイムで大きなテーブルを共有する必要があります。 受信者は、さまざまな述語を使用してさまざまなクエリを実行することがよくあります。 良い例としては、クリックストリー ムやユーザーのアクティビティデータがあり、このような場合はリモートアクセスがより適切です。
- ローカルレプリケーション:パフォーマンスを向上させ、データ送信コストをより適切に管理するために、特に受信者のリージョンにこれらのテーブルに頻繁にアクセスするユーザーが多数いる場合は、データのローカルコピーを作成するために一部のデータをレプリケートする必要があります。
このシナリオでは、データ提供者のビジネスユニットとデータ受信者のビジネスユニットの両方が、同じUnity Catalogアカウントを共有していますが、Databricks上のメタストアは異なっています。
上図は、Delta Sharingソリューションのハイレベルアーキテクチャを示し、Delta Sharingプロセスの主要ステップを強調しています:
- 共有の作成:ライブテーブルが受信者と共有され、すぐにデータにアクセスできます。
- オンデマンド・データ・レプリケーション:オンデマンド・データ・レプリケーションを導入することで、地域ごとにデータの複製を生成してパフォーマンスを向上させ、地域をまたがるネットワーク・アクセスの必要性を減らし、関連するデータ送信料金を最小限に抑えることができます。 これは、データ複製に以下のようなアプローチを活用することで実現します:
A. 共有テーブルのデータフィードの変更
このオプションを使用するには、テーブルの履歴を共有し、変更データフィード(CDF)を有効にする必要があります。これは、テーブルの作成/変更コマンドを使用し てテーブルプロパティdelta.enableChangeDataFeed = trueを設定することで、セットアップコードで明示的に有効にする必要があります。
さらに、テーブルをShareに追加する際には、以下の例のように、CDFオプションを付けて追加するようにしてください。
データが追加または更新されると、次の例のように変更にアクセスできます。
受信者側では、このノートブックと同様の方法で、変更点にアクセスし、データのローカルコピーにマージすることができます。 共有テーブルからローカルレプリカへの変更の伝播は、Databricks ワークフロージョブを使用してオーケストレーションすることができます。
B. Cloudflare R2とDatabricks
R2は、すべてのDelta Sharingのシナリオに最適なオプションです。なぜなら、お客様は予測不可能なデータ送信料金を心配することなく、共有の可能性を十分に実感できるからです。 詳しくはこのブログで後述します。
C. Deltaディープクローン
企業内共有のもう一つの特別なケースとして、同じ Databricks クラウドアカウント内で共有する場合に Delta ディープクローンを使用する方法があります。 ディープクローンは、ソーステーブルのデータと既存テーブルのメタデータ の両方をクローンターゲットにコピーするDelta Lakeの機能です。 さらに、ディープクローンコマンドには、新しいデータを識別し、それに応じてリフレッシュする機能があります。 以下はその構文です:
source_table_nameは
共有テーブルで、table_nameは
ユーザーがアクセスできるデータのローカルコピーです。
次のコマンドを使用して、単純なDatabricks Workflowsジョブをスケジュールし、最近の更新を含むデータの増分更新を行うことができます:
同じユースケースは、Databricks Platformやその他のプラットフォーム上で外部のパートナーやクライアントとデータを共有するために簡単に拡張できます。 これは、Databricksを使用していないパートナーや外部クライアントが、Excel、Power BI、Pandas、およびOracleのような他の互換性のあるソフトウェアを使用してこのデータにアクセスすることを希望する、もう1つの一般的な拡張パターンです。
データアグリゲーターモデル(ハブ&スポークモデル)
もう一つの一般的なシナリオパターンは、ビジネスが顧客とのデータ共有に重点を置いている場合、特にデータアグリゲーター企業が関与している場合や、主要なビジネス機能が顧客に代わってデータを収集している場合に生じます。 データアグリゲーターは、多様なソースからデータを収集し、統合された一貫したデータセットに統合する役割を担います。 これらのデータ共有は、ビジネス上の意思決定、市場分析、調査、業務全般のサポートなど、多様なビジネスニーズに対応するために役立っています。
このパターンにおけるデータ共有モデルは、次のようなものです:
- AWS、Azure、GCPなど、さまざまなクラウドに分散している受信者を接続します。
- PythonコードからExcelスプレッドシートまで、さまざまなプラットフォームでのデータ消費をサポートします。
- 受信者数、共有数、データ量のスケーラビリティを実現します。
一般的には、プロバイダーが各クラウドにDatabricksワークスペースを確立し、3つのクラウドすべてで共有テーブル上のCDFを使用してデータをレプリケートすることで、パフォーマンスを向上させ、データ転送コストを削減することができます。 そして、それぞれのクラウド領域内で、適切なクライアントやパートナーとデータを共有することができます。
しかし、CloudflareとDatabricksを通じてR2を利用することで、より効率的で簡単な新しいアプローチを採用することができます。
Cloudflare R2とDatabricksの統合により、企業はライブデータを安全、簡単、安価に共有し、コラボレーションできるようになります。 CloudflareとDatabricksを利用することで、お客様は、マルチクラウド分析およびAIイニシアチブの可能性を最大限に引き出す妨げとなる複雑性と動的コストを排除することができます。 具体的には、データ送信料金がゼロになり、複雑なデータ転送やコストのかかるリージョン間のデータセットのレプリケーションが不要になります。
このオプションを使用するには、以下の手順が必要です:
- 外部ストレージとしてCloudflare R2を追加します(信頼できるデータソースをS3/ADLSなどに保持します)。
- Cloudflare R2に新しいテーブルを作成し、データを段階的に同期します。
- Deltaディープクローン
- R2 Super Slurper
- 通常通り、R2テーブルにDelta共有を作成します。
上記で説明したように、これらのアプローチはオンデマンドデータレプリケーションの様々な方法を示しており、それぞれに明確な利点と特定の要件があるため、様々なユースケースに適しています。
地域間共有のためのデータ複製方法の比較
これまでの3つのメカニズムはすべて、Delta Sharingのユーザーがローカルコピーを作成することを可能にし、特にクラウドやリージョンをまたがるデータ送信料金を最小限に抑えます。 以下の表は、これらのオプションを区別するための簡単な要約です。
データ複製ツール | 主なハイライト | 推奨する利用シーン |
---|---|---|
共有テーブルのデータフィード変更 (CDF) |
|
リージョンを超えたパートナー/顧客との共有に使用 |
Cloudflare R2とDatabricks |
|
シェア数と2つ以上のリージョンの点で大規模なDelta Sharingに強く推奨 |
Deltaディープクローン |
|
リージョン間で内部共有する場合に推奨 |
Delta Sharingはオープンで柔軟性が高く、コスト効率に優れており、Databricks上ではノートブック、ボリューム、AIモデルなど、幅広いデータ資産をサポートしています。 さらに、いくつかの最適化により、Delta Sharingプロトコルのパフォーマンスが大幅に向上しました。 Databricks は、モニタリング、スケーラビリティ、使いやすさ、観測可能性の向上を含む Delta Sharing 機能への継続的な投資により、ユーザーエクスペリエンスを向上させ、将来にわたって Delta Sharing がデータコラボレーションの最前線であり続けることを確約しています。
次のステップ
このブログでは、多くのDelta Sharingのお客様との経験に基づいたアーキテクチャーガイダンスを提供しています。 私たちが最も重視しているのは、コスト管理とパフォーマンスです。 ライブ共有は多くの地域間データ共有シナリオに適していますが、データセット全体を複製し、地域の複製に対してデータ更新プロセスを確立することが、よりコスト効率的であることが判明した事例を調査しました。 デルタ共有はR2とCDFのDelta Sharing機能を利用することでこれを促進し,ユーザーに柔軟性を提供します。
企業内クロスリージョナルデータ共有のユースケースにおいて、Delta Sharingは、様々なアクセスパターンを持つ大規模テーブルの共有に優れています。 CDF共有によって促進されるローカルレプリケーションは、最適なパフォーマンスとコスト管理を保証します。 さらに、CloudflareとDatabricksを介したR2は、複数のリージョンとクラウドにまたがる大規模なDelta Sharingのための効率的なオプションを提供します。
Delta Sharingをデータコラボレーション戦略に統合する方法については、最新のリソースをご覧ください:
- オライリーテクニカルガイド、Delta Sharingによるデータ共有とコラボレーション(早期リリース)を読む
- Databricks Delta Sharing ドキュメントをさらに詳しくご覧ください。
- Delta Sharing: 安全なデータ共有のためのオープンスタンダードについてもっと読む
- Delta Sharing with Matei Zaharia(Keynote Data + AI Summit 2021)のビデオ発表をご覧ください。