[レポート] Data Exchange – Why is Data Sharing so Powerful?

データもシェアる時代
2020.06.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

奈良県でリモートワーク中の玉井です。

Snowflake社の下記のウェビナーを受講したので、レポートします。

ウェビナー情報

公式情報

概要

Data sharing, especially in recent times, has been highlighted as crucial in order to make the most accurate, data-driven decisions. Snowflake gives any organisation the ability to securely share data and receive shared data while eliminating the cost and headache of traditional data sharing methods.

Join this master class to learn how you can empower your ecosystem of customers, suppliers, partners and employees to improve collaboration with secure and governed access to all your available data.

登壇者

補足

Snowflakeには元々データシェアリングという強力なデータ共有機能がありますが、そのデータシェアリングにもいくつか種類があります。このセッションでは、3種類のデータシェアリングについて解説がなされました。

レポート

データを共有したいのは誰?

今日は、データエクスチェンジによるコラボレーションについてお話します。データの観点から組織が安全に協力し、複数のエンティティ間でデータを共有するのにどのように役立つのでしょうか。この機能は、最終的には、どのような方法でもデータを使用することができ、すべてのユースケースやステークホルダーをサポートすることができるようになります。

まず最初に、誰がデータを共有するのか…という話をしましょう。

スライドにあるように、ほとんどのデータの共有は、組織内部で行われるものです。お互いにデータを共有する要件を持っているビジネス部署があると思います。外部向けの共有としては、ベンダーやサプライヤーとデータを共有するのが一般的ですが、顧客に何らかのプロセスでデータを提供しなければならない場合もあります。

多くの顧客はマーケットプレイスでもデータを販売しており、そこではデータを既存のシステムからプラットフォームに移行したり、既存のデータを共有したり、データの販売や収益化を行っています。

また、コラボレーションの観点では、データ共有が使われる理由や、データの共有のユースケースが数多くあります。しかし、これらの課題は共有されたデータそのものではなく、データの共有方法です。

ファーストパーティ(データ共有元)のデータセットは、すべて非常に高度に管理された安全な方法で構築されており、多くの精査が行われています。すべてを監査・追跡し、誰がどのデータセットを購入したかどうかを確認します。

データを共有しようとした時の問題点

ここで、一歩引いて考えてみましょう。データを共有したとき、共有元となるデータがどうなるかを見てみます。

実のところ、今日利用可能な方法は、全体のセキュリティとガバナンスモデルを破壊するだけなのです。これらの方法は、結局、データを移動させてしまうことになるのです。つまり、共有元のデータは、(本当の意味で)データ共有のためには利用できないのです。内部向けのデータ共有を行っているときには、おそらくログイン機能を作成してアクセスを許可しているでしょう。しかし、そうすると、コンピュートリソースを共有してしまうリスクがあります。そのため、最終的にはデータをファイルにエクスポートして、ファイル共有サンプルを使ってアクセスを提供することになります。これは、外部向けのデータ共有する場合でも変わりません。

私たちは最終的に、「ファイルを送信する」という似たような習慣を、「セキュアな」方法で解決することになりました。FTPチャンネルを経由してファイルを送信したり、非常に複雑なAPIを作成してデータが安全なAPIチャンネルを経由して移動するようにしたりしましたが、実際には移動できませんでした。データが大量であることを分かっているため、非常に小さなデータ量を複数のAPIコールで共有することになり、最終的には全体のメンテナンスやビルド自体が非常に高くつくことになってしまいます。

しかし、一旦その手段の準備ができたとしましょう。もしあなたが同じデータの使用者の一人だとしたら、その後どうすればいいのでしょうか?そのデータを組織のネットワークに戻し、そのデータから何か価値を得られるようになる前に、全プロセスを実行しなければなりません。そして、データをデータソースに近づけ、データを取り込み、データを処理し、その上にスキーマを作成し、すべてのパイプラインを経て、やっとデータを使用することができます。これにより、一連の処理の間に(データの)多くのギャップが生まれます。これらのメンテナンスにはコストがかかります。それは非常に多くの連携・処理部分があるので、エラーが発生しやすいですし、当然ながら非常にアンセキュア…一度データが安全なプラットフォームから移動した後、同じレベルのセキュリティとガバナンスをこのデータセットに適用することはできません。そして、これが私たちがSnowflakeで解決しようとした問題です。

Snowflakeにおけるデータの共有

Snowflakeではどのように違うのでしょうか。データのコピーは1つだけで、共有しているデータは使用可能状態のままです。ここで、覚えておいてほしいのですが、内部または外部と他のSnowflakeアカウントとの間でデータを共有しているときには、データの移動は絶対にありません。このデータは絶対に使用可能となっています。そのデータに行われた任意の変更は、すべての共有先ユーザーがすぐに利用できるようになっています

他の大きな部分は、Snowflakeアカウント内で共有されたデータを使用している場合、データ元に変更があった場合、すぐに自分のアカウントにも変更が反映されることです。ETL処理などは必要無く、すぐに新しいデータを使い始めることができます。取り込まなければならないファイルはありません。この共有機能は、他のどのデータ共有プラットフォームにもない、共有オブジェクト自体をパーソナライズできる非常に重要な機能です。すべての共有データは、1つのコピーで管理され、すべてSnowflakeアカウント内で安全に管理されます。共有オブジェクトへのアクセスをコントロールしているため、アクセスを取り消すとすぐにデータセット自体が利用できなくなります。繰り返しになりますが、これはクラウド全体でグローバルに利用可能であり、複数のクラウドや地域にまたがる単一のクラウドデータプラットフォームであるという私たちのテーマと結びついています。

データ共有サービスには3つのタイプがあります。1つは、Direct Share(Data Sharing)で、Snowflakeで共有オブジェクトを作成し、その共有オブジェクトへのアクセスを他のアカウントに許可するというものです。誰かがそのアカウントにアクセスすると、そのアカウントはあなたが共有したデータにアクセスできるようになります。

そして、2020年6月2日、私たちはデータシェアリングの別の2つの機能を開始しました。

1つはData Exchange、もう一つはSnowflake Market Placeです。

Market Placeは、データの提供者と使用者が1つのプラットフォーム上に集まり、使用者は提供者がシェアしているデータにアクセスすることができます。スライドで説明がありますが、例えば、あなたが自分のためにパーソナライズされた健康データへのアクセスが必要な場合や、新型コロナウィルスに関するオープンデータへのアクセスが必要な場合など、サードパーティのデータプロバイダーが存在することを知っておいてください。データセットにパーソナライズが必要な場合や、パブリックデータセットの場合は、ボタンをクリックするだけで、データセットにアクセスすることができます。その際、ETL処理は絶対に行われません

Data Exchangeとは何でしょうか?

データの提供者、使用者、使用可能なデータセットを誰が共有できるかを定義することで、小さいデータ共有を作成できます。そして、自分自身の小さなData Exchangeを作成しますが、それをコントロールできるのは自分自身なので、社内外のすべてのパートナーを共通のプラットフォームに連れてきて、マーケットプレイスと同じような経験をすることができます。

各データシェアリングの深堀り

これらのデータシェアリングを、もう少し詳しく見ていきましょう。

基本的には、Direct ShareはデータシェアリングのためのSnowflakeの基本的な能力です。今、これがあなたのデータがあなたのSnowflakeのプラットフォームであると想像してみてください。そして、共有したいデータを定義します。例えば、外部エンティティと共有したいビューやテーブルの場合、基本的には共有オブジェクトを作成して、その共有オブジェクトがデータベースやスキーマ、そして最終的には特定のビューへのアクセス権を持っていると言うことになります。そして、そのデータへのアクセス権を持つのは誰かを定義します。つまり、基本的には別のSnowflakeアカウントで、このSnowflakeアカウントが共有オブジェクトにアクセスできるようになったとします。このように定義すると、他のSnowflakeアカウント(Consumerアカウント)は、共有オブジェクトの中の特定のビューを見始めることになります。そして、Snowflakeアカウントは、その上にデータベースを定義することができ、それを定義するとすぐに自分のアカウントに表示され始めます。

青色の部分は、共有オブジェクトに関連しています。灰色の部分は、あなたのアカウントにあるデータですが、共有することはできません。ここで共有オブジェクトを定義する際に、通常はデータベースの使用状況を知るために、スキーマの使用状況を知るためのアクセス権を与えます。そして、そのテーブルの中で安全なアクセスのみを選択します。そして、共有オブジェクトを作成し、共有オブジェクトが、このConsumerアカウントで利用可能にするとすぐに、そのConsumerアカウントは自分のデータベースを作成することができるようになります。その場合、彼らはこの単一のテーブルやビューにアクセスすることができますが、このアクセスを提供することで、複数のオブジェクト、複数のスキーマ、複数のデータベースにまたがって拡張することができます。この機能では、すべての単一のエンティティのための独立した共有オブジェクトを作成することができ、同様の機能を拡張することができます。

Market Placeを見てみましょう。

このマーケットプレイスでは、Consumerは自分のSnowflakeのアカウントからアクセスを申し込むことができます。その特定のデータセット自体にアクセスすることができますので、複雑なサイトではありません。Data Market Placeでは、データを提供している特定のアカウントへのアクセスを要求することができ、自分のSnowflakeアカウント内でデータを照会することができます。このData Market Placeには、複数のカテゴリーがあります。人口統計、財務、政府、医療などのカテゴリーを紹介していますが、これらのカテゴリーは常に成長しており、現在、60以上のプロバイダーがData Market Placeに登録されています。これらのデータはすべて、指先一つで利用可能です。データセットにアクセスするために時間やリソースを費やす必要はありません。あなたがしなければならないことは、ただアクセスを要求して、あなた自身のSnowflakeアカウント内でデータを取得することです。

Data Exchangeです。

私が言ったように、Exchangeは基本的に自分のプライベート版マーケットプレイスで、データセットの管理者として、公開したいデータセットを定義して、作成したData Exchangeに参加できるユーザーを定義することができます。それは、独自のSnowflakeアカウントを運営している他の部署かもしれません。あるいは、データにアクセスしてくる外部のパートナーである可能性もあります。そして、このMarket Placeに実際に貢献できるデータプロバイダーを定義します。誰がこのデータのConsumerになるのかを定義します。データが利用できるようになれば、基本的には組織内外でデータを共有するためのエコシステムを構築することができます。アクセス管理されているので、データがどこかへ移動することはありません。また、Data Exchangeで利用可能なデータセットへのアクセスも可能です。

おわりに

データの共有や提供というのは、まだ日本では馴染みがないかもしれません。当面はConsumerとして利用するのがメインになると思いますが、将来的にはデータマーケットプレイスに国内企業からのデータ提供があれば嬉しいですね。