Hello, ぼーです!
つい先日行われたSnowflake Data Cloud World TourでDCR(Data Clean Room)について紹介されたセッションがありましたね!
その直前にもDCRについてのセミナーがあったので改めて「DCRって何者?」「Snowflakeでどうやってやるの?」といった疑問について
・第1回 概念編
・第2回 ハンズオン①
・第3回 ハンズオン②
の全3回に分けてご紹介させていただこうと思います!
なお、私自身もセミナーを受けるまで名前は聞いたことあるぐらいの知識レベルでしたので、この記事を通して私と一緒に勉強していきましょう!間違ってたらこっそり教えてね!
今回は概念編です!
Data Clean Roomとは?
Data Clean Room(以降DCRと表記させていただきます)とは、プロバイダー・ユーザー間でファーストパーティデータ(自社データ)の公開・共有せずに分析を可能とするプライバシーを担保したプラットフォームのことを言います。
これだけでは「何のこっちゃ?」とイメージが湧かないので、このDCRの元となった ヤオの富豪問題 を例に独自解釈で説明してみます。
ヤオの富豪問題(Yao’s Millionaires’ problem)
これは1982年にコンピュータサイエンスの権威者Andrew Yaoさんが提唱したセキュリティに関する「秘匿関数計算」にまつわる問題です。
問題内容は以下になります。
あるところに大富豪アリスと大富豪ボブがいました。
アリスは自分がボブよりお金持ちかどうか気になって仕方ないです。
ただアリスもボブもお互いの資産について非公開を貫いています。
この時、「互いの資産を公開せずにどうやってどちらのほうがお金持ちかを知るか」という問題になります。
ポイントは以下です。
・お互い資産額は公開したくない
・アリスは「自分がボブ以上なのか以下なのか」を知りたい
過去には「秘匿関数計算」というなんか難しそうな計算を介して知ったりとかなんか色々あったらしいのですが、DCRが登場してからはそんなまどろっこしい事せずとも知ることができるようになりました。
ここの例でいくと、セキュリティの固い銀行さんの部屋(DCR)を借りて使い手は片側しか見えない特殊な天秤(ロジック)を使って資産比較の結果を知るイメージになります。
上記図では天秤の半分は見えてしまってますが、実際にはこの天秤(ロジック)自体も見えずにボブの方が金持ちという結果だけ知ることができます。
ここでのポイントとしては
・結果はボブ(プロバイダー)には知られない
・ボブが承認した天秤(ロジック・クエリ)なら使っていい
・アリス(ユーザー)はボブより金持ちかどうかの結果だけ知れる
・互いに資産額自体は知ることができない
つまり本題に戻すとDCRのポイントは以下となります。
・互いのデータプライバシーが担保されている(生データが見えない・個人情報が特定できない等)
・プラットフォームそのもののセキュリティが担保されている(SnowflakeやAWS等などのサービス)
・互いが承認・同意した分析クエリまたは結果のみ使用可能
活用例
目立つ活用事例としては広告関連の分析が多いです。近年GDPRや個人情報保護法などでクッキーが使用できなくなってきてます。その代替案としてDCRが挙げられています。
例にはなりますが、広告主が持つ顧客データと動画配信会社が持つ顧客データを掛け合わせて「自社製品を買う顧客層がどのような動画ジャンルを見る傾向にあるか」等といった広告配信に役立つ属性情報を個人情報が特定できない粒度で互いにデータ公開することなく分析することもできます。
下記図だとDCR内でユーザーとプロバイダー両方の顧客データを掛け合わせ、個人情報が特定できない粒度での集計結果のみをユーザーに返してる感じですね。
Snowflakeではどうやるのか
現段階では「DCR」という機能が既にであるのではなく、Snowflakeの機能を組み合わせてDCRを構築していく形になります。
Snowflake公式にクイックスタートガイドが2つあるので次回はそのガイドを通してハンズオンの解説を行いたいと思います!
truestarではSnowflakeの検討、導入支援や環境構築からアプリ開発まで幅広くサポート可能です。
Snowflakeに゙興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらからご相談ください