[レポート] モダンデータスタックの「明日」 #dbtcoalesce
大阪オフィスの玉井です。
2020年12月7日〜11日の間、Fishtown Analytics社がcoalesceというオンラインイベントを開催していました(SQLを触っている方はピンとくるイベント名ではないでしょうか)。
「Fishtown Analytics社って何やってる会社?」という感じですが、dbtというツールを開発しているベンダーです。dbtについては、下記をご覧ください。
今回は、その中からThe post-modern data stackというセッションを受講したので、レポートを記します。
イベント概要
公式
概要
dbt is an essential part of the modern data stack. Over the past four years, the most innovative and forward-thinking data teams have implemented a best-of-breed approach to analytics. This approach has solved many problems, but it has also created new ones. In this video, Drew Banin, Chief Product Officer and co-founder of Fishtown Analytics will share his vision for the data stack of the future.
私なりの要約
今日の「Modern Data Stack」は、データ分析(の基盤)にとってかかせないものになっていますが、一方で、課題もまだまだあります。その課題に対して、「Modern Data Stack」はどういう進化を遂げて対応していくのか、というところが語られています。
セッションレポート
※レポートについては、登壇者視点で記述しています。
前段
私は、Fishtown Analytics社の共同設立者の一人であるDrew Bannonです。普段はCPOとして活動しています。しかし、今日は(美術館の)キュレーターになります。
今日は、芸術(Art)についてお話ししたいと思います。私たちは、芸術を、「過去を振り返り、現在の瞬間やデータを観察し、未来に心を向けるためのレンズ」として使います。
先史美術(prehistoric art)
先史美術とは
私たちの物語は、先史美術(prehistoric art)から始まります。
先史美術は、戦の勝利などを記念するものでした。これらは、非常に多くの人々が、少ない自治権で、大きな努力をし、共同体全体で偉大なことを成し遂げるという、信じられないようなことでした。
スライドの写真は、古代エジプトの象形文字や石彫信仰の一例です。この写真は、様々な人が、それぞれの役割を果たしながら、時の試練に耐えうるモニュメントを作り上げることができることを示しています。これこそが、オールインワンのソリューションです。このようなソリューションは、あらゆることを、少しずつ行いますが、どれも特に優れたものではありません。統合は不十分で、硬くて柔軟性がありません。その結果、ベンダーロックインやスイッチングコストがかかり、総所有コストが高くなってしまうのです。これらのサイロ化したデータスタックは、データのサイロ化とチームのサイロ化を引き起こします。
データ分析における「先史美術」
この絵は「Building an executive dashboard 2020」といいます。この絵には、さまざまな人が登場し、それぞれが非常に具体的な問題を解決しています。彼らは、その問題を、他の特定の問題を解決するために、会社の同僚に「フェンス越し」に渡しています。彼らは6週間遅れで、このエグゼクティブダッシュボードを提供することができますが、それは二度と見られることはありません。このダッシュボードは、時の試練に耐えるモニュメントであり、捨てようと思っても捨てられないものです。ここで不足しているのは柔軟性です。私たちは自律性とレバレッジを切望しています。
ルネッサンス(renaissance)
ルネッサンスとは
ルネッサンスは、フランス語で「再生」を意味します。
スライドの絵は、ラファエロの「アテナイの学堂」と呼ばれるフレスコ画です。これは私のお気に入りの一つです。この作品で私が最も気に入っていることの一つは、「セントラル」であることです。プラトンとアリストテレスという二人の人物が描かれています。プラトンは天を指しており、彼の理想とするプラトニック(イデア論など)を象徴しています。一方、アリストテレスは手のひらで地上を指しており、経験論や形而上学といった、彼の現実的な哲学のさまを象徴しています。ルネッサンス美術の面白さは、この二面性とバランスにあると思います。
芸術の多くは即興で行われます。芸術は焦点がすべてです。
この画像は、直線的な視点を導入しているので、私たちの目は、それぞれの画像の中心となる焦点に引き寄せられます。そして、これらの画像の中にコンテキストがあることがわかるのは、中央の部分ではありません。この絵は「聖ペテロへの天国の鍵の授与」と呼ばれるもので、15世紀の作品です。ここでは、絵の中心的な焦点である、背景のモニュメントに目を向けさせる平行線が見られます。そして、周辺では多くのことが起こっていますが、統合されていません。
データ分析における「ルネッサンス」
データ分析のルネッサンス…それはクラウドデータウェアハウスです。これらのデータウェアハウスの役割は1つで、それは非常に優れています。それは、より多くの(データの)統合の機会を生み出すことです。このコンテキストは存在していますが、ルネッサンスの頃は端っこの方にありました。
この絵は、1つのパスワードにスーパーユーザーの権限を保存するというものです。「ルネッサンス期」の中心的な焦点はデータウェアハウスであり、データモデリング、データ品質、運用、データガバナンスという大きなコンテキストの中で、データローダーやBIツールが存在することがわかります。しかし、データウェアハウスが誕生した当初、つまり私たちのデータスタックでは、これらはまだ完全には実現されていませんでした。
「ルネッサンス」に関する私の話をすると、2014年、私は8tracksというインターネットラジオの新興企業で働いていました。そこにはRedshiftがありました。しかし、既製のデータローダーやBIツールはありませんでした。そのため、自分たちで構築しました。これらのコンポーネントは重要であることはわかっていましたが、コストに見合った優れたツールが世の中になかったのです。だから、自分たちで作ったのです。縁あって、私たちはデータモデリングについて少し考えました。そして、確かにデータの品質には課題がありました。しかし、運用やガバナンスといったものを前面に押し出して仕事をするような状況ではありませんでした。私たちはデータウェアハウスそのものに集中してしまっていたのです。
モダニズム(modernism)
モダニズムとは
モダニズムの話になります。これはピエト・モンドリアンの「Tableau I」という作品です。最近、Salesforceがこの絵をオークションで157億円で購入しました。彼らはTableauと聞いて、これに目をつけたのです。冗談です。
モダニズムとは、私たちの視点を解体することです。現実とまではいかなくても、私たちの知覚を具現化し、その違いを問いかけるような芸術を創造することです。
芸術におけるモダニズムとは、「分解」です。複雑なものを分解し、自分の目で見たままに再配置することで、何かを保持することの意味について多くの新しい定義を導き出します。
例えば、1937年にピカソが描いた「ゲルニカ」がその例です。彼の芸術は、きれいな線や現実的な視点を捨てています。ここには平行線はなく、明確な視点があります。それは、それらの幾何学的な形が、私たちの現実を表していないからです。このアートは、理想主義の幾何学的な精密さを拒絶し、代わりに存在することの意味の断片化と混沌を反映しています。
データ分析におけるモダニズム
データの分野では、モダンデータスタックがありますが、そこには多くの専門的なコンポーネントがあり、それぞれがデータスタックのコンポーネントと、その中で働く個人の両方に対して、より大きな個人の自律性を統合することに焦点を当てています。しかし、どこからどこまでがデータスタックなのか、(境界線が)わからなくなってきています。
これがモダンデータスタックです。データウェアハウスは依然として「セントラル」にありますが、もはや孤立しているわけではありません。すべてが同じ平面上に存在し、きれいな線や幾何学的なフォーラムを捨てて、ビジネスのニーズを反映したデータスタックの構築に集中しています。ビジネスは人間から成り立っており、人間は少々雑然としているからです。
この方法は、前時代的なオールインワンソリューションに比べて、より多くの人が、より自律的に、より多くの力を使って仕事をしなければならないという点で、扱うのは難しいものです。しかし、うまくいけば、これまで以上に安定して、より良く、より速く、より多くの仕事をこなすことができます。
モダンデータスタックの現状と課題
以上が、今日の私たちの状況です。モダンデータスタックは、私たちの現実を反映していると同時に、私たちが組織の中で描いてきたきれいな線を再考することを迫り、私たちが共有する現実についてもっと考えるように促します。
スライドの絵は、フィンセント・ファン・ゴッホの自画像です。私はこの機会に、自分自身を鏡に映して考えてみたいと思います。正直なところ、私たちはどこにいるのでしょうか。実は、モダンデータスタックは、私たちの膨大な数の課題を解決してくれた一方で、新たな課題ももたらしています。
課題1:知識とスキルのギャップ
モダンデータスタックにおける最大の課題の1つは、知識とスキルのギャップです。データビルダーは、SQLやデータシステムを使いこなす必要がありますが、データの利用者にとっても、重要な新しいスキルが必要になります。データを製品として扱うには、新たなスキルが必要です。また、データビルダーは、もはやサービスとしてのダッシュボードを構築しているわけではないので、(データとの)関係性も見直す必要があります。私たちは、データ利用者が、自分でサービスを提供できるようにすることを目指しています。
この課題はどのように始まったのでしょうか?
会社は、まだ、キャリアではなくタスクのためのトレーニングを考えています。これらのタスクにフォーカスした役割は、ビジネスのさまざまな部分の間で「サービスプロバイダー」としての関係を促進します。
この課題はどのように対策していきますか?
私たちは、転用可能なスキルを身につけ、より弾力性のある人材を育成することに注力しています。分析のエキスパートであれば、オペレーショナル・アナリティクスの分野でもかなりの力を発揮できると思います。その先にあるアナリティクス、柔軟性、速度、信頼性は、過去最高の水準にあります。
dbtを使えば、モダンデータスタックの中で、人々は、より良い仕事を、より速く、より確実に行うことができます。通常、これらの3つのうち2つを選択しなければなりませんが、3つすべてを手に入れることができるというのは、このカンファレンスで私たちがこれらの知識やスキルのギャップを埋めるために働いているということであり、このイベントの最も刺激的なことの1つだと思います。
私は、「私たち全員が誰よりもスマート」という言葉が好きです。そして、私たちがお互いに学び合うことを優先していることは、とても素晴らしいことだと思います。今後5年間で、リソースや教材が充実すれば、このような知識の格差は大きな問題ではなくなると思います。しかし、組織の中でデータをめぐる関係を再構築できるかどうかは、未解決の問題だと思っています。
課題2:状況の急速な変化
2つ目の課題は、モダンデータスタックの状況が急速に変化していることです。日々、宇宙で起きる変化はとても刺激的ですが、同時にビジネスインテリジェンスも同じように刺激的なものにしたいでしょうか?これは、ベンダーとお客様の両方にとって、高い柔軟性と低いコミットメントの環境といえます。
この課題はどのように始まったのでしょうか?
モダンデータスタックのツールをそれぞれ繋げるのに大変な労力を要しました(今ではすっかり良くなっています)。しかし、まだモダンデータスタックのすべての層でシームレスというわけではありません。
ここ数年の間に、多くの技術革新と統合が行われました。おそらくここ数年の間に、モダンデータスタック内のツールの1つが買収されたのではないでしょうか。人によっては、過去24時間のうちにモダンデータスタックの1つが買収されたかもしれませんね。このように、物事が急速に変化する環境の中で私たちは生きています。
この課題はどのように対策していきますか?
ベンダーが責任を持って連携ポイントを増やすことで、アナリティクスエンジニアの連携する作業が減りました。これにより、「全体は部分の総和よりも大きい」ということに気づくことができました。
また、データリネージやデータプロヴィナンスなどのオープンスタンダードについての議論も始まっています。これはとてもエキサイティングなことだと思います。最終的には、ほとんどのベンダーが同じサンドボックスの中でプレーするようになり、ウォールドガーデン(壁に囲まれた庭)ではなく、グリーンフィールド(緑地)を意識するようになります。これは誰にとっても良いことだと思います。
課題3:不透明で孤立した依存関係
3つ目の課題は、「不透明で孤立した依存関係」という、私がとても気に入っている言葉です。この言葉は、Fishtown Analyticsの友人であるDavid Wallace氏によるものです。
「不透明で孤立した依存関係」とは何を意味するのでしょうか?問題なのは、大きな単一障害点が1つあるのと、小さな障害点が何十個もあるのと、どちらがいいかということです。
この課題はどのように始まったのでしょうか?
私たちは、やや不可解なデータアーキテクチャを持っており、そのアーキテクチャの大きなコンポーネントはPythonスクリプトと呼ばれているかもしれません。何か問題が発生した場合、その問題が何であり、その問題の影響が何であるかを理解するためには、完全な知識とシステム全体へのアクセスが必要です。
この課題はどのように対策していきますか?
これに対する取り組みは、このプレゼンテーションの後半でお話ししたいことのひとつです。結局のところ、私たちは、物事がうまくいかないときにそれを理解するための優れたツールを持っていませんし、それを解決する方法もありません。(これは構築者である私たちにも言えることですが)みなさん、データの利用者について考えてみてください。データウェアハウスの中で何が起こっているのか、利用者はどうやって知ることができるでしょうか。そして、そのような完全なシステムレベルの知識がなければ、何が起こっているのか、データが正常な状態なのかどうかを知ることはできません。
モダンデータスタックの未来
これはMCエッシャーの作品(「相対性」)ですが、私がやりたいのは、あなたに未来のビジョンを提供することです。今日持っている情報をもとに、ポストモダンのデータスタック…未来のモダンデータスタックがどんなものになるのか、ご説明します。これが私のベストな推測です。
説明のために、ピラミッド図を描いてきました。この中には、少し見覚えのあるものもあるでしょう。これは一種の階層構造で、今のところ「ニーズ」と呼ぶことにします(ニーズだけではありませんが)。
PHYSICAL(物理)
PHYSICALレイヤーのデータは、中央のデータストアにタイムリーに読み込まれます。このようなことができるツールは誰もが持っているはずです。そして、これはデータセットの中でもよく対応している部分だと感じています。
LOGICAL(論理)
そしてLOGICALレイヤーは、rawデータを、データモデリングによって情報に変換します。ここで、dbtを使うことがあります。
QUALITY(品質)
QUALITYレイヤーでは、情報が正しく、分析に使用しても安全であることを検証します。dbtはそのお手伝いをします。また、もっと詳しく聞きたい方は、[レポート] dbtとAirflowとGreat Expectationsで堅牢なデータパイプラインを構築するもチェックしてみてください。
OPERATIONSとREPORTING
そして、おそらくこれらのデータスタックの最後のピースとなるのが、オペレーションとレポーティングです。ここでは、情報がシステムや人間の目に入ることになります。勘のいい方は、これが典型的なピラミッド型ではないことにお気づきでしょう。
しかし、私が主張したいのは、今後5年間で実現されるであろうモダンデータスタックの3つの重要な層が欠けているということです。
AWARENESS(気づき)
まず1つ目は「AWARENESS」です。このレイヤーのデータセットはデータカタログに記録され、組織内に普及します。
OBSERVABILITY(可観測性)
2つ目のレイヤーは「OBSERVABILITY」です。これは、システムの状態が、その出力から完全に観察できることを意味します。この点については、もう少し詳しく説明します。
COMMUNICATION
最後に、「COMMUNICATION」は、データの構築者と利用者が、コンテキストの中でデータを議論するためのものです。
以上が、私の考える明日のデータスタックのイメージです。
今後5年間で実現されるであろうデータスタックについて
それでは早速、ご紹介しましょう。「明日の」モダンデータスタックは、データカタログとデータディスカバリーを第一級のニーズとしてサポートすると思います。また、データスタックの異種コンポーネントを統合するためのツールを提供し、最終的には非常に複雑なシステムに可観測性をもたらします。そして最後に、データをコンテキストに沿って議論する機会を提供します。
AWARENESS
現在のAWARENESSは、SlackやEメールのようなものですが、今後はデータカタログやデータディスカバリーツール、データガバナンスやコンプライアンスに役立つものが一箇所に集められるようになると思います。
「データアウェアネス」に対応したツールは数多くあり、それらが成熟するのを楽しみにしています。これらの製品に欠けているのは、データがコンテキストに沿って提供されておらず、データを得るために別のツールを使用しなければならないことだと思います。自分のデータに関する情報が、テキストエディタやクエリツールの中にあれば、もっと良いと思います。それは、いずれ実現すると思います。これからも楽しみにしています。
COMMUNICATION
まあ、当たり前のことですが、これは現在、Slackやメールで行われています。将来的には、コンテキストの中でデータを議論するための専用メディアが用意されると思いますが、これには2つの形態があると考えています。
1つは、データや定義の変更、インシデント、ダウンタイムなどの情報を利用者に発信するもので、利用者は自分に関連するデータを購読できるようになります。
もうひとつのメディアとして期待されているのは、ユーザーとその仲間たちが、データのコンテキストについて会話を交わすことができるようになることです。あなたが面白いと思っているポイントにどうやってたどり着いたのか、というコンテキストでデータを議論できれば、より良い結果が得られると思いますよ。
コミュニケーションは細分化されていて、さまざまなチャンネルで行われています。そして、それがデータに関する質問なのか、マーケティングに関する質問なのか、データや製品に関する質問なのかを知ることは困難です。今後は、データに関するコンテキストで補強された統一されたチャネルが登場すると思います。また、データにアクセスする際には、より多くのコミュニケーションが必要になってくると思います。そうすれば、データの利用者は、データを照会する際に、データの状態を、よりよく理解することができます。
OBSERVABILITY
可観測性については、現在はまだ未解決のようですね。
将来的には「DatadogのためのDatadog」が登場すると思います。このようなツールは、データウェアハウスで何が起こっているかを理解するのに役立ちます。全てのクエリが失敗しているのか?クエリの時間は増えているのか減っているのか?失敗しているのは1人のユーザーなのか、すべてのユーザーなのか?など。
「OBSERVABILITY」の必要性を動機付けるために、あなたに質問をしてみましょう。マーケティングの責任者があなたにメールを送ってきたとします。「おい、マーケティングのダッシュボードがちょっとおかしいぞ。」何か問題が?データは?どうやって興味を持ちますか?その質問に答えるにはどうしたらいいでしょうか?最初にすることは何でしょうか?2番目にすることは何ですか?紐を解くために引っ張る糸は何ですか?
「問題がないかどうか」という問題は、システムが何が起きているのかを教えてくれて、チェックのために推測する必要がなければいいとは思いませんか。
可観測性とは、デバッグから推測を取り除くことです。それは、複雑で深く連携されたデータスタック全体の問題を特定し、その影響を判断するのに、直感を必要としないことです。このレイヤーがないと、データスタックの「不透明で孤立した依存関係」という課題に直面し続けることになります。また、利用者は、意思決定に使用しているデータが実際に良いものかどうかわからないままになります。
ここで、可観測性に関する質問をします。あなたのチームには、Datadog等のツールを使っているエンジニアがいると思います。彼らと話をして、トレースがアプリケーションにどのような効果をもたらすのかを見学してみることをお勧めします。そして、データ分析の分野でどのような効果があるかを考えてみてください。また、データスタックの安定化にどのように役立つのかを考えてみましょう。
ポストモダンデータスタックに対応するdbtの新機能
ここからは私の芸術を披露するパートと言ってもいいでしょう。そして、最高に芸術的な人間である私が選んだ媒体は、dbtの有向非巡回グラフ(DAG)です。
これは(dbtで生成した)DAGです。多くの人がDAGを見たことがあるでしょうし、多くの点で典型的なDAGのように見えます。しかし、このDAGには興味深い点があります。それは、右端のノードです。このオレンジ色のタグはExposuresと呼ばれています。
Exposureとは、ダッシュボードツールやレポーティングツールなどの外部ツールと、1つ以上のdbtモデルとの間の依存関係を表すものです。エクスポージャーとdbtタグの導入により、左のデータソースから、最終的にデータが利用されたり運用されたりする場所まで、データスタック全体を統合できるようになりました。私たちは、Exposureにとても期待しています。そして、最も期待していることの一つは、データの運用や分析のユースケースを推察できることです。
そこで、dbt Cloudでベータ版として提供されている、Exposureの新しい使用例をご紹介したいと思います。
これはdbt CloudではなくBIツールのダッシュボードの画面です。このダッシュボードは、すべてのデータソースモデルの健全性をレポートします。左のタイルは、ステータスの健全性を、1つの緑のチェックマークまたは赤いXとして抽出します。そして重要なのは、人々がデータにアクセスしている場所にその情報を配置することです。
このパワフルなダッシュボードは、データ構築者とデータ利用者の関係を変えます。ここでは、データ利用者がデータの健全性を理解し、そのプロセスに参加して、データを高品質で信頼性の高いものにするための投資に関心を持つよう、実際に力を与えています。
このダッシュボードには、全く新しいdbt CloudのメタデータAPIが採用されています。このAPIは、インデックスを収集し、dbt Cloud上で実行されたrun、test、source等に関する情報を提供します。
現在、LookerとModeで動作していますが、Chartioチームとも協力して、これらの埋め込みにも対応しています。最終的には、HTMLとiframeに対応していれば、どこにでもこのタイルを埋め込むことができます。いずれ、重要なレポーティングツールやオペレーションツールのすべてを、このようなiframeで表示させることができるのです。
dbt Cloudのベータ版では、Exposureビューと呼ばれるものが用意されています。ここに表示されているのは、Exposureの健全性を示すビューです。そして、そのExposureの説明や、所有者が誰であるかを見ることができます。また、Exposureの親モデルが最後に構築された時期もわかります。
このビューでは、すべてのデータソースとモデル、そしてそれらが最新であるかどうかを確認することができます。モデルが構築されていて、テストも合格しているどうか…これは、私たちが本当に期待しているバージョンの可観測性を実現するための、ごく小さな一歩です。ここでの目標は、誰かが「ダッシュボードの表示がおかしい」と言ったとき、ここに来れば、データが最新かどうか、モデルが通っているかどうか、テストが通っているかどうかを一目で理解できるようにすることです。もしそうでなければ、そこから掘り下げていくことができます。
まとめ
結論として、私たちにはまだやるべきことがあります。しかし、私たちは自分たちが得意とすることを続けていきます。私たちは、さまざまなツールと、今日のデータ分析に参加しているさまざまな人々との間の連携ポイントを増やしていきます。そして、データを使って不確実性を解決することを続けていきます。
それでは、今日はこのへんで。
おわりに
芸術とデータ分析を対比させて語るセンスに脱帽しました。