Delta Sharingのご紹介 : セキュアなデータ共有のためのオープンプロトコル

[Introducing Delta Sharing: an Open Protocol for Secure Data Sharing \- The Databricks Blog](https://databricks.com/blog/2021/05/26/introducing-delta-sharing-an-open-protocol-for-secure-data-sharing.html)の翻訳です。

> [Data \+ AIサミット2021で発表されたDatabricksの新機能](https://qiita.com/taka_yayoi/items/d4111246048089588cc7)のコンテンツです。

多くの企業が、顧客、サプライヤーとデータをセキュアに交換する方法を探しています。近代においてはデータ共有が非常に重要になってきています。例えば、小売業者は、サプライヤーに対してリアルタイムでセールスデータを共有したいと考えるかもしれません。また、サプライヤーはリアルタイムで在庫情報を共有したいと考えるかもしれません。しかし、データ共有ソリューションが単一のベンダーに縛られているため、現在はデータ共有は非常に制限されたものとなっています。このことは、データ提供者と消費者が異なるプラットフォームを用いることになり、二者間で摩擦が生じることにつながっています。

本日、我々は企業間のデータ共有をシンプルにするための新たなオープンソースプロジェクト: 製品間の大規模データのセキュアなリアルタイムのデータ交換を初めて実現する[Delta Sharing](https://delta.io/sharing)をローンチします。我々は世界中のトップソフトウェアメーカー、データプロバイダーのパートナーと連携してDelta Sharingを開発しています。

なぜ現在のデータ共有ソリューションが摩擦を生んでいるのかを知るために、サプライヤーのデータ分析者とデータを共有したいと考えている小売業者を考えてみましょう。小売業者はデータ共有を提供するクラウドデータウェアハウスの一つを利用するとします。しかし、この場合、データ分析者は自社に同じデータウェアハウスを導入するために、自社のIT、セキュリティ部門、調達部門と調整を行う必要があり、場合によっては数ヶ月の時間を要することになります。さらに、データウェアハウスを導入した後に分析者が最初にすることは、データウェアハウスから、pandasやTableauなど現在使用しているデータサイエンスツールにデータをエクスポートすることです。

Delta Sharingを活用することで、データのユーザーは特定のプラットフォームを導入することなしに、pandas、Tableau、オープンプロトコルを実装している他の数多くのシステムを通じて、共有されたデータに**直接**接続することができます。これにより、データにアクセスするのに要する時間を数ヶ月から数分に短縮することができ、データ提供者が多くのユーザーにデータを提供するのに要する労力を大幅に削減できます。

我々は活気のあるパートナーエコシステムと共に、Delta Sharingに取り組んでいます。
![](https://databricks.com/wp-content/uploads/2021/05/blog-delta-sharing-ecosystem-1024x373.jpg)
Delta Sharingのエコシステム

本記事では、Delta Sharingがどのように動作するのか、なぜデータ共有に関するオープンアプローチが素晴らしいものであるのかを説明します。

# Delta Sharingのゴール

Delta Sharingはデータの提供者、消費者の両方が、容易に既存のデータ、ワークフローを活用できるように設計されています。4つのゴールを念頭に置いて設計しました。

- **コピーすることなしにライブデータを共有:** 我々は既存のデータをリアルタイムで共有できるようにしたいと考えています。現在、企業データの多くはクラウド上のデータレイクやレイクハウスシステムに格納されています。Delta Lakeはこれらに対して動作します。特に、Delta Lake、Apache Parquetフォーマットの既存データをセキュアに共有することが可能です。
- **幅広いクライアントのサポート:** データの受領者は、新たなプラットフォームをインストールすことなしに、今使っているツールから直接データにアクセスできるべきです。Delta Sharingのプロトコルは、簡単にツールを直接サポートできるように設計されています。すでに多くのツールがサポートしているParquetをベースにしていますので、コネクターの実装は容易です。
- **強力なセキュリティ、監査、ガバナンス:** プライバシーとガバナンス要件に適合するようにプロトコルは設計されています。Delta Sharingでは単一のアクセスポイントを強制することで、共有データに対するアクセス権の許可、追跡、監査が可能です。
- **大容量データセットへの対応:** 粒度の細かい産業データ、財務データの共有など、従来のソリューションでは対応できないようなテラバイトオーダーのデータセットをサポートする必要が出てきています。Delta Sharingは、大容量データセットを経済的かつ高い信頼性で共有できるクラウドストレージのコストと弾力性を活用しています。

# Delta Sharingはどのように動作するのか？

Delta Sharingは、クラウド上のデータセットに対するアクセスをセキュアに共有するシンプルなRESTプロトコルです。高い信頼性で大規模データセットを転送するために、S3、ADLS、GCSのような近代のクラウドストレージシステムを活用します。ここには二人の登場人物が存在します。データ提供者と受領者です。

データ提供者としてDelta Sharingを使うことで、クラウド上のデータレイクに[Delta Lake](https://delta.io/)フォーマットで保存されている既存のテーブルあるいはその一部(例：パーティションの特定テーブルバージョン)を共有することができます。Delta LakeテーブルはParquetファイルの集合体であり、必要に応じて既存のParquetテーブルをDelta Lakeに[変換](https://docs.databricks.com/spark/latest/spark-sql/language-manual/delta-convert-to-delta.html)するのは簡単です。データ提供者は共有したいデータを決定し、Delta Sharingプロトコルを実装するシェアリングサーバーを稼働させ、受領者のアクセス権を管理します。[リファレンスシェアリングサーバー](https://github.com/delta-io/delta-sharing)をオープンソース化しました。さらに、他のベンダーがすることに倣って、Databricksではシェアリングサーバーをホスティングしています。

データ受領者として必要なのは、プロトコルをサポートしている数多くのクライアントのどれか一つです。すでに、pandas、Apache Spark、Rust、Pythonのオープンソースコネクターをリリースしています。そして、パートナーと共により多くのコネクターに取り組んでいます。
![](https://databricks.com/wp-content/uploads/2021/05/blog-delta-sharing-under-the-hood.jpg)
クラウドストレージシステムとDelta Lakeの機能を活用して、実際のデータ交換が効率的になるように設計されています。[プロトコル](https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md)は以下のように動作します。

1. 受領者のクライアントはシェアリングサーバーに対して認証(bearer認証などの方法)を行い、特定のテーブルに対するクエリーを依頼します。サブセットのデータを読み取れるように、データに対するフィルター(例："country=US")を指定することも可能です。
1. シェアリングサーバーは、クライアントがデータに対してアクセス権を有しているかを検証し、リクエストを記録して、どのデータを返すのかを決定します。これは、実際にテーブルを構成しているS3などのクラウドストレージシステム上のデータオブジェクトの一部となります。
1. シェアリングサーバーは、データを転送するために、クライアントが直接クラウドプロバイダーからParquetファイルを読み取るのに使用する、短期間のみ有効な事前署名済みのURLを生成します。これによって、シェアリングサーバーを介することなしに、広い帯域での並列データ転送が可能になります。この強力な機能は、主要なクラウドすべてで利用でき、大規模データセットを高速、安価、高い信頼性で共有することができます。

# 設計面でのメリット

Delta Sharingの設計は、データ提供者、受領者両方にメリットを提供します。

- クライアント(データ受領者)に対して、データセットの特定のサブセットに対してのみアクセス権を指定できるので、データ提供者は簡単にテーブル全体、あるいは特定バージョンのテーブル、テーブルの一部を共有することができます。
- Delta Lakeの[ACIDトランザクション](https://databricks.com/blog/2020/11/23/acid-transactions-on-data-lakes.html)を活用することで、データ提供者はリアルタイム、かつ高い信頼性でデータを更新することができ、データ受領者初音に一貫性のある状態でデータを参照できます。
- データ受領者はデータ提供者と同じプラットフォームを持つ必要はありませんし、クラウドを利用している必要もありません。クラウド間で共有できるのはもちろん、クラウド、オンプレミスでも共有可能です。
- Parquetを理解しているのであれば、Delta Sharingのプロトコルをクライアントで実装するのは容易です。オープンソースのエンジン、BIツールにおけるプロトタイプ実装の多くで構築に要した期間は1、2週間でした。
- 基盤となっているクラウドシステムを活用することで高速、安価かつ、高信頼性、並列性を保ったデータ転送が可能です。

# オープンなエコシステム

上で述べたとおり、データ共有におけるオープンなアプローチを確立できたことを大変嬉しく思います。Nasdaqのようなデータ提供者の方々は口を揃えて、「異なる分析ツールを使っている様々なお客様にデータを提供することは非常に大変でした」と言っていました。

> NasdaqのHead of Alternative DataであるBill Dagueの言葉 「企業間でのセキュアなデータ共有、コラボレーションをシンプルなものにするオープンプロトコルのビジョン、Delta Sharingを支持します。Delta Sharingは我々がパートナーと共同作業する方法を強力にし、運用コストを低減することに加え、ユーザーが財務的戦略を立てたり洞察を得るのに適しているNasdaqの包括的なデータに対するアクセスを可能にします。」

Delta Sharingによって、多くの人気のあるシステムが共有データに直接接続でき、あらゆるユーザーが利用できるようになり、全てのデータ受領者の抱える摩擦を低減します。Delta Sharingの標準を定義するために多くのパートナーと共に取り組んでおり、皆様の参画も期待しています。本日のローンチにおいて多くの会社様が支援の手を差し伸べてくれています。

**BIツール:** [Tableau](https://www.tableau.com/about/blog/2021/5/meet-delta-sharing-secure-open-source-data-sharing)、[Qlik](https://www.qlik.com/us/company/press-room/press-releases/qlik-expands-strategic-partnership-with-databricks-with-support-for-delta-sharing)、Power BI、Looker
**アナリティクス:** [AtScale](http://atscale.com/blog/semantic-layer-shared-data-secure-open-source-delta-sharing)、[Dremio](http://dremio.com/enabling-open-data-lakes-with-dremio-and-delta-sharing)、[Starburst](https://blog.starburst.io/starburst-supports-launch-of-delta-sharing-the-first-open-protocol-for-secure-data-sharing)、Microsoft Azure、Google BigQuery
**ガバナンス:** [Collibra](http://www.collibra.com/blog/collibra-and-databricks-for-open-governed-data-sharing)、[Immuta](https://www.immuta.com/articles/enabling-third-party-data-sharing-with-databricks-delta-sharing)、Alation、Privacera
**データプロバイダー:** [Nasdaq](https://www.nasdaq.com/articles/delta-sharing-protocol%3A-the-evolution-of-financial-data-sharing-2021-05-26)、[Precisely](https://www.precisely.com/blog/integration/precisely-databricks-partner-maximize-value-of-data)、[Safegraph](https://www.safegraph.com/blog/safegraph-databricks-delta-sharing)、Atlassian、AWS、FactSet、Foursquare、ICE、Qandl、S&P、SequenceBio

# DatabricksにおけるDelta Sharing

Databricksのお客様は、組織内外におけるデータ共有に対して整流化されたエクスペリエンスを提供する[Unity Catalog](https://databricks.com/blog/2021/05/26/introducing-databricks-unity-catalog-fine-grained-governance-for-data-and-ai-on-the-lakehouse.html)において、Delta Sharingとのネイティブなインテグレーションをご活用いただけることになります。管理者は新たなCREATE SHARE SQLシンタックス、あるいはREST APIを用いてデータ共有を管理できるようになり、全てのアクセスを集中的に監査できるようになります。データ受領者はあらゆるプラットフォームからデータを利用できるようになります。プレビューアクセスとアップデートを受けたい方は、ウェイティングリストに[サインアップ](https://databricks.com/unity)してください。
![](https://databricks.com/wp-content/uploads/2021/05/blog-delta-sharing-on-databricks.jpg)

# ロードマップ

最初のバージョンのDelta Sharingがスタートしました。プロジェクト進行に伴い、ストリームやSQLビュー、機械学習モデルなどの任意のファイルなど他のオブジェクトを共有できるように計画しています。我々はデータ共有の未来はオープンであると信じており、このアプローチを他の共有ワークフローに展開することに興奮を覚えています。

# Delta Sharingを始めましょう

オープンソースのDelta Sharingのリリースを試すには、[delta\.io/sharing](http://delta.io/sharing)の手順に従ってください。Databricksのお客様である場合には、サービスアップデートに[サインアップ](https://databricks.com/unity)してください。皆様からのフィードバックをお待ちしています！

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)