NTT DATA

DATA INSIGHT

NTTデータの「知見」と「先見」を社会へ届けるメディア

絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
2021年9月29日技術ブログ

組織・企業間データ共有を実現するDelta Sharingの仕組み

近年、企業間・業界間のデータ連携をビジネスの核にしようとする動きが見られるようになっている。本稿では企業横断的なプロジェクトの動向に触れながら、データ連携のためのオープンソースソフトウェアDelta Sharingの概要や仕組みについて紹介する。

※本記事は、「NTTデータ テクノロジーカンファレンス 2021」の講演内容に関連する記事です。
講演聴講については本記事の最下部をご覧ください。

目次

1:組織や企業をまたぐデータ連携の動き

「ビッグデータ」、「機械学習」というキーワードがコモディティ化した今、多くの企業がデータ活用のプロジェクトを推進しているのではないでしょうか。キーワードはコモディディ化している一方で、各企業におけるデータ活用には依然として課題が残り、各企業固有の事情も相まって簡単に進んでいないケースが多いのではないでしょうか。

ところが国内外に広く目を向けると、「個社」の取り組みを飛び越え、さらには業界をまたいでデータ連携することで、データから得られる価値をさらに高めようとする試みが活発になっていることがわかります。「自社の中でさえ大変なのに…」という気持ちすら生じそうですが、いま世の中で起き始めている動向を眺めてみましょう。

図1:個社の枠を超え、社会的な解決を目指す

図1:個社の枠を超え、社会的な解決を目指す

個社の枠を超えた「データ連携」に関する試みはいくつかありますが、欧州を中心に広がりを見せているプロジェクトGAIA-X(※1)やIDSA(※2)は無視できません。これらのプロジェクトは、参画組織・企業自身がデータ主権を守りながら適切に互いにデータ連携できる仕組みやそれを支えるインフラの実現を目指しています。ユースケースの例として、製造業におけるサプライチェーンのコラボレーション(※3)が著名です。社会課題を解決するために企業を超えたデータ活用が生まれようとしています。

(※1)GAIA-X

https://www.gaia-x.eu/

2:データ連携のためのソフトウェアの登場・成長

一方、それを実現するためのテクノロジーに目を向けると、オープンソースソフトウェアを中心に組織・企業の枠を超えたデータ連携を実現する仕組みが登場・成長しようとしているのが分かります。例えば、前述のGAIA-XやIDSAにおいても、組織・企業間をつなげるためのコネクタの実装が複数の研究機関、企業等から提供されています。(※4)またエストニアの電子政府を支える仕組みとして成長したX-Road(※5)や、スマートシティを意識したプラットフォームであるFIWARE(※6)などが挙げられます。これらのソフトウェアの中には長い歴史を持つものもあり、多様な要件に応えるために複数のコンポーネントから構成されるアーキテクチャが中心です。
その一方で、データのやり取りに着目したシンプルな実装も近年登場しており、一例としてDelta Sharing(※7)が挙げられます。Delta Sharingは2021年5月26日に初期バージョンがリリースされたばかりの新しいテクノロジーで、まさに組織や企業の枠を越えるデータ共有をよりシンプルにするために開発されたといわれています。企業が保有する「データレイク」の仕組みを応用したデータ共有に注力することで、シンプルで使いやすいプロトコル、APIを実現しています。

(※4)例えば、IDSA DataspaceConnectorが挙げられます。

https://github.com/International-Data-Spaces-Association/DataspaceConnector

(※5)X-Road

https://x-road.global

(※6)FIWARE

https://www.fiware.org/

(※7)Delta Sharing

https://delta.io/sharing/

3:Delta Sharingの概要

公式ドキュメント、ウェブサイト、ソースコードを確認すると、Delta Sharingの実体は「プロトコル定義」、「データ提供者向けのサーバ機能」、「データ利用者向けのクライアント機能」であることが分かります。ただし、まだ登場したての技術であることから、「何を提供しようとしているのか」、「どんな機能があるのか」が少々分かりづらいかもしれません。著者は、公式ウェブサイトの通り「シンプルでセキュアな業際データ共有を実現するオープンなプロトコル」が第一のエッセンスであると考えています。これはステークホルダ間のデータ共有においては、ネゴシエーションがとても重要である一方、互いに異なる事情・環境を持っていることが多いからです。そのため、まずプロトコルのレベルで規定しておくのが適切であると推測されます。

プロトコル定義だけでは実際の使い方をイメージするのは難しいかもしれませんが、プロトコル定義に基づいて実装されたサーバ機能、クライアント機能が公開されています。それらの機能は、Delta Sharingが定義するプロトコルを利用したいユーザが最初に動作確認するために用いたり、自分自身で実装を試みるときの参考に用いたりする目的で利用できます。なお、2021年9月時点の最新バージョン0.2.0の実装状況を見る限りは、現在参考実装とされているものが本番適用に直接用いるための実装に将来なりえるかどうか判断は難しいと感じています。今のところは、前述の通り動作確認や実装のための参考の目的で利用するのが良さそうです。

図2:Delta Sharingプロトコルと実装例

図2:Delta Sharingプロトコルと実装例

データ共有の仕組みとしては、オープンなデータフォーマットやソフトウェアを用いることで、組織や企業それぞれが活用している異なるプラットフォームに強く依存せず、異なるプラットフォーム間でもデータ共有できるようにすることを目指している点が特徴的だと言えます。

図3:組織や企業の差異を吸収する考え方

図3:組織や企業の差異を吸収する考え方

これに関連し、Delta Sharingが実現しようとしているコンセプトのうち、特筆すべきポイントは以下の2点であると著者は考えています。

  1. 1. データ共有のための分かりやすく使い勝手の良いコンセプトを基にプロトコルが定義され、サーバ機能、クライアント機能の参考実装がオープンソースとして公開されている点
  2. 2. サーバ機能の参考実装ではDelta Lake(※8)といったオープンなデータフォーマットをデータレイク上で利用するようにしており、スケーラビリティや利便性という元々データレイクが持っているメリットを享受できるデータ基盤を実現できる点

この2点を挙げた理由は、「データ共有」の要点を押さえたシンプルなプロトコル定義を重視しつつも、実際に動作する参考実装を示すことで「プロトコルの適切な使い方」まで示せていることです。コンセプトやプロトコルに興味を持ったユーザが、速やかに試すことができることは同じDelta Sharingのエコシステムを利用するユーザ同士の輪を広げる上で重要だと考えられます。データ共有のための仕組みは、連携する相手同士が繋がり広がれば広がるほど価値が高まるため、エコシステムの形成はテクノロジーの成熟の土台にもなるでしょう。

(※8)Delta Lake

https://delta.io/

4:Delta Sharingのデータ共有とデータ管理の考え方

Delta Sharingでは「Share」という論理的な単位で、データ提供者からデータ利用者に向けて共有するデータが管理されます。データ共有を行う際、直ちにデータがコピーされるのではなく、データ利用者から見るとShareの中のデータを都度自由に参照できるような権限が付与されます。

図4:Delta Sharingプロトコルによるデータ共有

図4:Delta Sharingプロトコルによるデータ共有

またデータ提供者は様々なデータ利用者との関係性やコンテキストを考慮して、Share単位で論理的に構造化して何をどのように共有するか管理できるので、シンプルな考え方であるにも関わらずとても柔軟にデータ共有が可能です。

図5:データを構造化して管理する

図5:データを構造化して管理する

サーバ機能の参考実装では、これらのコンセプトに対応するようなREST APIが提供され、データ利用者から任意のツールを使って利用できるようになっています。なお、公式GitHub上に公開された情報(※9)によると、2021年9月現在では、利用可能なShareなどをリストする機能、テーブルに付帯されたメタデータを取得する機能、Tableを構成するファイル情報を条件に基づいて取得する機能(※10)などが定義されており、参考実装を用いて動作確認できます。

(※9)Delta Sharingの公式GitHubサイト

https://github.com/delta-io/delta-sharing

(※10)2021月9月現在、これらを実現するサーバの参考実装ではまだ開発が済んでいないものもあります。例えばファイルのリストを取得する際の条件の実装などが部分的な実装に留まっています。

5:オープンでスケーラブルなテクノロジーを活かすサーバ機能内部の仕組み

Delta Sharingのサーバ機能の参考実装では、Armeria(※11)をべースとしたREST API提供用のサービス内で、オープンでスケーラブルなテクノロジーであるDelta Lake、Apache Spark(※12)、Apache Hadoop(※13)などを共有対象データの管理などに内部的に使っています。それらが元々有している効率的な処理の仕組み、利便性、スケーラビリティを利用できるようになっていると言えます。またDelta Lakeやその内部で用いられているApache Parquet(※14)というオープンなデータフォーマットを利用しているおかげで、特定のプラットフォームに依存せず、多くの組織・企業が利用できるようになっています。

図6:サーバ機能におけるスケーラブルな仕組みの内部利用の概略

図6:サーバ機能におけるスケーラブルな仕組みの内部利用の概略

また内部的に利用されているDelta Lakeはスケーラブルなデータレイクの機能を拡張する仕組みです。一般にデータレイクを実現する技術はシンプルでスケーラブルな一方、データ分析や機械学習といったユースケース向けにはやや機能不足を感じることがあります。そこでDelta Lakeはデータレイクに素朴にデータを置いただけでは実現しづらいような「バージョン管理」、「部分更新」、「トランザクション(※15)を考慮した読み書き」といった機能を付与します。これは「DeltaLog」といったデータ本体とは別のデータ本体を管理するためのメタデータ管理の仕組みによって実現されています。内部でDelta Lakeを利用しているDelta Sharingサーバ機能もこのメタデータの機能を利用することができるため、Delta Sharingクライアントがテーブルのバージョン情報等を参照できるようになっています。もしあなたがデータ利用者だとしたとき、自分が所有していない共有されたデータを無条件に信頼するのは難しいと感じませんか?Delta Sharingのこういった管理・情報提供の仕組みや、4章で説明した情報管理の仕組みを応用することで、より安心安全にデータ利用可能になる、と考えられます。これらの機能は、監査やセキュリティ周りの機能(※16)、利用可能なデータレイクの拡充(※17)と同様に今後ますます開発が進むと考えられるため、シンプルかつ安心な仕組みの拡張に期待が持たれます。

(※11)Armeria

https://armeria.dev/

(※12)Apache Spark

https://spark.apache.org/

(※13)Apache Hadoop

http://hadoop.apache.org/

(※14)Apache Parquet

https://parquet.apache.org/

(※15)楽観ロックに基づく排他制御

(※16)署名済みURL発行のログなどが議論されている

(※17)2021年9月現在、Delta SharingはAmazon S3とAzure Storageに置かれたデータのみ対応。開発コミュニティでは他のデータストアへの対応も課題定義されており、今後対応が増えていくものと推測されます。

6:Delta Sharingの動作イメージ

最後に、Delta Sharingを利用したときのイメージを簡単に紹介します。
Delta Sharingのサーバ機能を立ち上げる際には、以下のような設定ファイルを読み込ませます。

図7:設定ファイルの例から抜粋

図7:設定ファイルの例から抜粋

先に紹介したShareによるデータ共有のコンセプトをそのまま表したような設定ファイルであり、とても可読性が高いことが分かります。
一方、クライアント機能を利用する際には、先ほど立ち上げたサーバ機能へのアクセス情報などを渡します。

図8:クライアントの設定例

図8:クライアントの設定例

上記で「endpoint」と記載されている設定がサーバにアクセスする宛先を表します。
上記の通り、現在Delta SharingはBearerTokenを用いた簡易な認可の仕組みのみを提供している状況です。そのため、現在の実装をそのまま公開して用いることは推奨されていません。他のセキュアなウェブサーバやプロキシと組みあわせて用いる方式例が考えられます。
続いて、Python言語によるクライアント処理の例を紹介します。

図9:Python言語からShareのリストを取得する例

図9:Python言語からShareのリストを取得する例

図10:Python言語からSpark上にデータ取得する例

図10:Python言語からSpark上にデータ取得する例

上記の通り、クライアント機能がライブラリとして提供されているため、Share情報を参照したり、実際にデータを取得したりする処理を直観的に実装可能です。ベースとなっているのはREST APIベースのプロトコルであり、ウェブクライアントを利用してサーバとやり取りすることも可能ですが、各種言語用のライブラリを用いた方が簡潔に実装できるでしょう。

7:おわりに

本稿では、業界をまたぐプロジェクトにおいてデータ連携を実現するためのテクノロジーの中で、特にシンプルで取り扱いやすいと考えられるDelta Sharingについて紹介しました。Delta Sharingは「データ共有」に着目し、Delta Lake、Apache Spark、Apache Hadoopといったスケーラブルでオープンなテクノロジーを内部の仕組みに応用することで、シンプルかつ特定のプラットフォームに依存しない仕組みを実現しようとしています。また、Delta Sharingが提供するプロトコルはオープンに定義されており、プロトコルを反映したサーバ機能、クライアント機能は参考実装のオープンソースソフトウェアとしてインターネット上に公開されています。そのため各々の異なる事情や環境を有した組織・企業がその間に存在する環境差異等を埋めながら相互にデータ共有するために、Delta Sharingの提案するプロトコルやソフトウェアを活かせるのではないかという期待が持てます。
NTTデータは、これまでに培ってきたデータ活用基盤の設計・開発ノウハウ、オープンソースソフトウェアによるデータ処理技術の強みを生かし、本稿で紹介したような組織・企業をまたぐようなデータ連携技術を研究開発しています。またオープンソースソフトウェアの開発コミュニティにも引き続き貢献しており、社会全体の安心安全なデータ連携を支えるような技術開発を行っています。
NTTデータの手掛ける研究開発、技術、事例については「NTTデータテクノロジーカンファレンス2021」(※18)にて本稿の著者らも含めて多数講演がございます。そちらも合わせてご覧ください。

8:イベントのお知らせ

NTTデータ主催 オンラインイベント

NTTデータテクノロジーカンファレンス2021 ~未来を創るNTT DATAの確かな技術力~ 2021年10月27日(水)~29日(金)

NTTデータは、2021年10月27日〜29日の3日間 「NTTデータ テクノロジーカンファレンス 2021」 をオンラインイベントとして開催いたします。

~ 未来を創る NTT DATA の確かな技術力 ~

本イベントでは、New Normalなデジタル社会への取り組みや、技術のチカラで解くグリーンイノベーションへの挑戦、OSSを中心とした最新技術など、NTTデータならではの先鋭的な技術トピックを、一緒に取り組んだお客様とともに、NTTデータの技術者がご紹介いたします。

ぜひお気軽にご参加ください。

本稿に関する講演情報

2021年10月29日
- 「動かしてみよう:Delta SharingとECHONET Liteで見る、世界と繋げる家の夢」(NTTデータ 技術開発本部 土橋 昌)
- 「データレイクの信頼性を高めるDelta Lakeのトランザクションと性能の話」(NTTデータ 技術開発本部 利光 宏平)

イベント詳細、お申込みはこちら
https://oss.nttdata.com/techconf2021/

- NTTデータは、「これから」を描き、その実現に向け進み続けます -
お問い合わせ