第13回では「ELT・データモデリング」を実践するツールについて学んできました。

今回の勉強会では、クラウドサービスやSaaSツールを組み合わせたデータ分析基盤である「Modern Data Stack」について学んでいきます。

過去のイベントレポートはこちら

目まぐるしく変化するビジネス環境において、Modern Data Stackはトレンドを示すバズワードです。今回はデータエンジニアの方をお呼びし、Modern Data Stackの概要から様々なトレンドについてお話ししていただきました。データ基盤のクラウド化とサービス化、データトランスフォーメーション、データインテグレーション、データガバナンス、BI・データアプリケーションなど様々なトレンドについて学べる貴重な機会となっております。

当日の発表内容はこちらになります。

基調講演「Overview of The Modern Data Stack / モダンデータスタック概論」

出典:廣瀬智史氏(satoshihirose)、Overview of The Modern Data Stack / モダンデータスタック概論」、https://speakerdeck.com/satoshihirose/modandetasutatukugai-lunより

廣瀬 智史 氏
Senior Customer Reliability Engineer, Treasure Data

モダンデータスタックについて、その概要と特に話題に上がるトピックについて紹介します。

はじめに、Modern Data Stackの概要についてお話ししていただきました。

Modern Data Stackとは何か

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「Modern Data Stackとは、「データ活用・管理領域における現代の環境に合うような設計の新しいサービスやソフトウェア」と言えます。Modern Data Stackの頭に「the」の冠詞がつくことが多く、近年の特定のムーブメントを指しています。

Modern Data Stackにはシステムの進化・ニーズの急増・データ活用領域の拡大におけるトレンドそのものの変化を指すバズワードという側面もあります。何をどこまでModern Data Stackに含めるかの共通の見解はありません。主観的には対象のソフトウェアは2010年代以降の5年から10年ぐらいに生まれたものを指すことが多いです。

Modern Data Stackという言葉は、各ベンダーによるマーケティングのための言葉として使われることが多く、言葉の定義にはそこまで深入りする必要はありません。ユーザーのニーズを捉えた新しいサービスやソフトウェア自体にフォーカスしていくことが重要です。」

Modern Data Stackは注目を集めている

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「最新のModern Data Stackを確認したい場合や、どんな企業やサービスがModern Data Stackにカテゴライズされてされるのか等の深掘りを行いたい場合はこちらのサイトで確認することができます。

こちらはModern Data Stackを取り巻くマクロ環境の記事です。Modern Data Stackは注目を集めており、有望なデータ関連ソフトや企業ランキングまとめた記事です。 databricksを首位として様々な企業が掲載されています。

この記事によると、リスト中の50の企業だけで評価額が約13兆円、調達額が約1.5兆円となっています。直近まで投資の拡大の波によって順調に投資が増えており、今後はマクロ経済の変化が予想されるので、どれだけ評価額が進むのかに注目が必要です。」

以降は具体的にModern Data Stackに関連する内容をお話ししていただきました。

データ基盤のクラウド化とサービス化

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「データ基盤のクラウド化とサービス化は近年の一番大きな変化だと思います。特にこの10年とか20年で分析基盤用のデータストレージシステムやDWHは発展・普及し続けています。

90年代頃からデータエンタープライズデータ(EDW)やData Cubesがありましたが、その流れとは別に2000年頃からHadoopが生まれて「ビッグデータ」というバズワードが流行りました。 また同時期に生まれたクラウドが徐々に普及して行く中で、クラウドに合わせた設計のDWHが生まれました。 代表例としてはRedShift・BigQuery・Snowflakeです。

データレークハウスに象徴されるように、両者が合流してどんどん競合して行く形になりました。そして昨今ではデータインフラのクラウド化やマネージドサービス化が進んで、Modern Data Stackと呼ばれるシステムが生まれてきました。」

DWH・データストレージレイヤーに変化が起こる

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「Redshiftの誕生以降Modern Data Stackが始まったとも言われています。そういった変化の結果、自らDWHやデータツールを運用せずに済むようになり、基盤の開発・運用コストが激減しました。コストが下がったことにより、ビッグデータではないデータフォルダでも気軽にデータ基盤が使えるようになり、データストレージがそのニーズを受けて進化しました。

そして裾野が広がってシステムの普及が進み、データ活用を取り巻く様々な領域でスタートアップが生まれていきました。 また、システムがクラウドに移行してきたことでスケールすることが容易になり処理性能が上がりました。クラウドオブジェクトストレージが普及して行ったおかげで、データレイクアーキテクチャが一般的になり、ETLではなくELTを採用するような設計の変化が生まれていきました。

また、クラウドの誕生でインフラエンジニアの役割が変わったように、トレンドと共にデータエンジニアの役割が変わってきたと言えます。従来のデータエンジニアは狭義の意味ではサーバーにツールをインストールし、管理運用するといったインフラ基盤の開発運用するエンジニアとして生まれていった概念でした。

しかし、データ基盤がマネージドサービス化されることで、従来のニーズが相対的に低くなり代わりに、データ分析用のデータ基盤を使って、その上で動く高度のエンジニアリングのニーズが高まりました。最近のアナリティクスエンジニアのような新たな役割が望まれているっていうのもその流れの一環と言えます。」

データの利活用を高めるために

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「データトランスフォーメーションはデータを使いやすいように変換する処理のことです。ELTにおけるT(Transform)の部分の話で、Hadoopが生まれた当初はJavaでMapReduceを実装してデータ変換を行なっていましたが、Sparkが生まれてPythonでも書けるようになりました。

一方、コードでETLが書ける環境が生まれていったものの、コードを書ける人が少なく、コードをかける人の需要が供給に対応できてない状況が続いていきました。 そのため、比較的書ける人が多いSQLがデータ変化の実装方法のメインになっていきました。

近年では基本的なデータ変換はクラウドDWH上でSQLを行って、実装が必要な場合のみプログラミングする状況が一般的になったと思います。最近ではDWH上のUDFが比較的簡単に作れたり、MLができるようになるなどの進歩も見られ、SQLでできることの要求はさらに増えている状況です。」

dbtの登場

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「データトランスフォーメーションで使われてきたSQLは制限的でデータ提供しやすく、コードによる管理が出来てCI/CDの実践も容易だった点も、データ変換に使われるようになった理由だと思います。

そして、SQLによるデータ変換処理を一般化したフレームワークとして「dbt」というツールが登場しました。dbtはOSSでプラガブルなので、データリネージやドキュメンテーションのサポートが厚く、Modern Data Stackにおけるエコシステムを形作るようになっていると考えています。」

データ記述言語の進化

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「テンプレート化されたSQLを使ったデータ定義の方法は今のところ上手くいっていますが、本来SQLはそのように設計されたものではありません。そのため、PHPとHTMLで行われていたようなweb開発が、その後Reactのようなフレームワークに形を変えていくような展開が今後起こるかもしれません。

最近はLookerのLook MLの開発者が Malloyというデータ記述言語を発表しています。こういった流れから希望的観測ではありますが、将来的にSQLのトランスパイラ的なものが普及する未来もあるかもしれないと考えています。」

データ処理の特殊化

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「近年では扱うデータの種類を限定して、特定のドメインのデータ処理用のソフトウェアやサービスが生まれています。例えばメトリックフレームワークやML(機械学習)のためのFeature StoreやカスタマーデータのためのCDPが例として挙げられます。今回はその中でも最近話題に上がることが多いメトリックフレームワークについて取り上げます。

メトリックとは、何かしらの対象の状態を数値化したもので、サービスにおけるDAU(Daily Active User)やARPU(Average Revenue Per User)が該当します。メトリックの定義や計算はデータ変換レイヤーのLTだったり、BI上のダッシュボードの中だったりと複数の場所に分散しているといった重複管理が問題の元でした。

最近はメトリックの再利用性を高めるためのアプローチとして、メトリックフレームと呼ばれるものを作って、専用のシステムを用意する流れがあります。 図が概念を表していて、 上の図のようなロジックが重複管理されている状態から、下の図のようなMetricのロジックをアプリケーションから切り出して共通化しています。

具体例としてAirbnbの社内システムのMinervaがあります。右下が概念図で、KafkaのストリームデータやデータベースのSnapshotsをInputとして、Metrick計算パイプラインがあって、最後にサービングレイヤーとしてAPIを設けている形で提供しています。

そういった彼らのノウハウをもとにTransformというスタートアップが起業され、そのシステムがSaaSとして提供されています。Transformという会社はMetrickフローというOSS(オープンソースソフトウェア)のメトリック管理フレームワークをリリースしてたりするので、見てみると面白いかもしれません。」

dbtにメトリック機能の実装

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「話に出てきたdbtのバージョン1.0.0から実験的にメトリック機能をサポートし始めていて、MinervaのようにAPIサービングレイヤーを持っているわけではなく、メトリックを提供するのはdbtが動作するDWHになります。

図がdbtによるYAMLを使ったメトリックの定義例で、図のようにメトリックを定義するとlinageに含めたり、そのupstreamを一度にBuildできたり、downstreamで利用できるようです。実験的な側面もあるので、どのような設計にするかなどの有用性は未知数です。」

メトリック管理をテーマに含むサービス

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「メトリック管理がテーマに含まれているサービスはいくつもあり、右上の図はその1つのMetriqlというサービスです。 dbtに定義されるメタデータを使って、集計されたメトリックをAPI経由で提供するためのサービスです。

次のWeldはメトリック提供の形態がAPIレイヤーではなく、各種サービスとのインテグレーションをサポートし、直接データを配信する構成が特徴です。その次のMetloはKafkaやkinesisをデータソースにしたストリームデータを提供するサービスです。その次のCubeというソフトウェアは、Headless BIでDWHと繋いで、その上でモデルを提起したりアプリケーションから参照する際にキャッシュしたり、アクセスコントロールできます。」

次は、データインテグレーションについて解説いただきました。

データ活用が進むにつれ、ELTの実装管理が困難に

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「これまでDWHのインテグレーションは、Embulkのようにソフトウェアの設計を書いて動かすか、データエンジニアがETLを直接行って実装していました。しかし、データ活用領域が増えていき、一つの企業が使うSaaSの数が増えるなどにつれて、ETLの処理の実装や管理が大変になってきました。 そこでDWHへのデータ転送やデータ活用先へのデータ転送を行うようなツールやサービスが普及していきました。

データソースからDWHのデータのロードを担うのがETLサービスで、DWHから各種データを活用する先のサービスへのデータのロードを担うのがReverse ETLと呼ばれるサービスです。Reverse ETLとは近年発明された言葉で、DWHにデータを転送するのがETLでその逆ということになります。 右上の図のように、2022年の5月がReverse ETLの初出で、Reverse ETLみたいなサービスがあると便利だという趣旨のツイートです。

右下の図はReverse ETLの流れを示すもので、ETLサービスであるAirbyteやFivetran等を使ってDWHのSnowflakeにデータを転送します。そしてReverse ETLのサービスであるhightouchやCensusを使って、データ活用先にデータを転送する流れになっています。」

Reverse ETLではなくData Activation?

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「一方で、すぐさまジャンルとして確立したReverse ETLでしたが、Reverse ETLではなく、Data Activationと呼ぶ動きもあります。その流れから、Reverse ETLを謳っていたHightouchはData Activation Companyと自身をリブランドするブログを公開して宣言しています。

その理由として、Reverse ETLはただデータの複製を想起させてしまうところと、意思決定のためのデータ分析だけじゃなく、データを使ってアクションをとるところによりフォーカスして行きたいという思いがあるそうです。」

インテグレーションの最後の話題として、Change Data Capture(CDC)と呼ばれる連携方法について解説していただきました。

CDCによって変更ログをリアルタイムで追跡可能

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「サービス上で使われるRDB上のテーブルの情報分析したいと思った時に、テーブルのスナップショットを定期的に取得するものがあります。ただ、この方法はスナップショットを取得した間の記録更新がされず、日常の処理として実装すると最新のデータの反映が最短1日かかってしまいます。

右の図はメルカリ社で実際に実装されたCDCのシステムのブログから引用したものです。DebeziumというCDCを実現するOSSのコネクターを使用し、データソースの変更ログをKafkaにストリームしてBigQueryで処理しています。Meroxaという会社は、最近オープンCDCといったCDC連携の標準化を進めるような動きをしています。」

データガバナンスに関する内容は、まずメタデータカタログやデータディスカバリーからお話ししていただきました。

データ活用が進み、データガバナンスが困難に

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「メタデータカタログは分散したデータのメタデータを一元的に管理して、データの発見・理解を容易にするツールです。この分野の製品は古くから存在していますが、エンタープライズ向けで使い勝手が悪いものが多いといった状況でした。そのような状況もあってスタートアップ各社は自社システムを作って運用し始め、一部はスピンアウトしてスタートアップが生まれる状況でした。」

OpenMetadataの詳細

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「その中でもOpenMetadataというOSSのメタデータカタログソフトウェアは、後発ながらもすごい機能を実装しています。

メタデータカタログが有している機能は、キーワード検索機能や関連性タブを使ったデータ検索機能や変更ログなどのアクティビティフィード、 webhookによる外部イベントの通知、TierやOwnerのオーナーの管理、アクセスコントロールデータlineage 、dbtのインテグレーションとかデータプロファイルなどかなり充実してきています。」

Active Metadataとは

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「メタデータカタログに関するトピックとしては、Active Metadataというキーワードがあります。従来のメタデータカタログシステムは外部とのインテグレーションが十分でなく、手動入力が必要で継続利用が大変な状況でした。

そこでActive Metadataは新たな要素として、外部システムからのメタデータの継続的な収集・更新とカタログ利用だけでなく、知見を提供するようなアクションを促すようなもので、外部APIとの連携やシームレスな体験といったアクティブ性を持ったメタデータカタログツールをActive Metadataマネジメント領域と称して提供しています。

右の図はActive Metadataツールのシステムの概念図を示したもので、各種データソースから見たデータを収集してアクションを行う形になっており、データをアクティベートするアクティブ性が最近のキーワードかもしれません。」

データオブザーバビリティ・クオリティモニタリング

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「データオブザーバビリティというキーワードは観測性と訳されることが多く、データの状態を観測できる性質です。データの健全性を監視しながらデータの品質を向上させてデータのダウンタイムを削減することが必要だと議論が進められています。

dbtにも関連する機能が用意されていて、YAMLによるschema testやSQLによるdata test、data profiler、外部ライブラリーによる実行といった機能が用意されています。」

データオブザーバビリティのサービス紹介

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「データオブザーバビリティに関連するサービスも作られており、DatafoldとMonte CarloというサービスはどちらもDWHのデータソースと連携して、データをプロファイルして監視・リネージしたり、データの状態を監視するようなサービスです。

右図のDatafoldが提供するData Diffと呼ばれる機能は、任意の環境のテーブルの中のデータの差異を可視化したり、クエリの変更によってデータにどんな影響があるかをリクエストをもとにプロファイルして、コメントを残してくれるCI(継続的インテグレレーション)の機能も有しています。」

データガバナンスの最後のテーマである、「データアクセスコントロール」と「プライバシーデータコントロール」についてお話ししていただきました。

データアクセスコントロールのサービス紹介

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「GDPR(EU一般データ保護規則)やCCPA(カリフォルニア州消費者プライバシー法)といった世界的にデータを取り扱う際のルールや規制は増えています。その結果、組織的にガバナンス強化に取り組むことが多くなりました。

Immutaというサービスはデータアクセスコントロールプラットフォームを謳っていて、属性ベースのアクセルコントロールやダイナミックデータマスキング、管理・モニタリング等の機能を提供しており、アクセスコントロールを実施・運用もできます。

右の図はそのシステム概念図で、プロキシのようにデータの入出力をコントロールするところにコンポーネントおくことで、各機能を実現しています。Satoriも同様な構造で同様なサービスを提供しています。」

プライバシーデータコントロールのサービス紹介

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「Ketchというサービスはプライバシーデータコントロールプラットフォームを謳っています。プライバシーデータは規制の変化が多く取り扱いに専門的な対応が求められます。

このサービスはその運用を助けるために国や地域ごとのコンセントマネジメントやデータ削除のワークフローの機能を提供しています。サイトごとのコンセントマネジメントの管理や分析など、消費者からの個人データの削除申請への対応といった実運用を簡易にする機能を提供しています。」

最後に、BIとデータアプリケーションについて解説していただきました。

BIツールを取り巻く変化

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「BIツールが登場して20年近く経ちましたが、BIツールに求められている役割も変化しています。右の図はBIツールの変化を役割の変化を示した図で、左側が従来のBIでIngestion、Storage、Transformation、Visiualization、Discoveryまでの一貫した実現を表わしています。

右側がこれらの機能を外部化して、特化した領域を実現するような現在のBIツールを表しています。環境が変わったことで、様々なツールと一緒に使用されることが前提のBIが生まれてきています。」

OSS・dbtをバックエンドに据えたBI

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「クラウドベースでインテグレーション、アクティベーション、コラボレーションを重視したBIが増えています。

LightdazhというツールはOSS・dbtをバックエンドに据えたBIで、dbtで定義したメータデータを参照してリネージを作ってくれたり、探索的なチャートを作れます。dbtとの連携でどこまで何ができるようになるかはまだ未知数だと考えていますが、互いにいい影響を与えて進化してくれると嬉しいなと思います 。」

その他最新のBIツールの紹介

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:HyperqueryとHexというサービスは、ノートブック型のBIツールと呼ばれていて、SQLに特化したjupyterに似たものです。右上の図がHyperqueryに関するもので、SQLで取得したデータをドキュメントして共有できるので、会社の社内情報共有に使うと書かれています。

SigmaとActiondeskはスプレッドシートに似たBIで、インテグレーションが豊富なのでデータソースからもスプレッドシートとしてデータを取り込んだり、そのデータを使ってアラートを通知したりできます。」

データアプリケーションの実装を簡素化するフレームワークの紹介

出典:Data Engineering Study#14 「Modern Data Stack特集」、https://youtu.be/JRdlisQMuDYより

廣瀬 智史氏:「データアプリケーションはデータを使うアプリケーションのための実装に特化したツールです。背景として、データ活用が進んでデータ利用したアプリケーションの実装のニーズが増え、それに伴ってデータの視覚化、UIコンポーネント、ユーザーの入力などレディメイドな要素を提供して、実装を簡素化するフレームワークが生まれています。

Snowflakeに買収されたSreamlitはpythonを使ってインタラクティブなアプリケーションをコンポーネントを組み合わせることでつくることができます。 右の図の例はA/B test の有意差があるかどうかをデータをアップロードすることで検証してくれます。

その他にpythonを使ってデータアプリケーションを実装出来るPlotlyやSnykに買収されてクローズしてしまったTopCoatというサービスが生まれています。この辺が進化すると、社内システムやプロダクト組み込みのデータアプリケーションの開発がさらに捗るようになるかもしれません。」

最後に、廣瀬氏が大切だと考えていることをお話しいただきました。

廣瀬 智史氏:Modern Data Stackと称されるようなトレンドを追いかけるのは楽しいものかなと思ってます。新しい仕組みを追いかけることで自分の思いつかないようなアイディアとかが存在することが確認できるので、勉強になります。

その際にツールが解決する課題と、それをどう解決して行くかに注目することが大事だと考えています。 もちろん新しいツールを使えばいいのではなく、解決して行きたい課題に対して適切なツールを適切なタイミングで適切に導入することが必要になってきます。

仕組みはどうやって人のオペレーションに組み込むかは腕の見せ所になりますし 、導入や自社のレガシーをリプレースするのはコストもかかるので、何がビジネス上の価値に結びつくかを意識する必要があると考えています。」

過去のData Engineering Studyのアーカイブ動画

Data Engineering Studyは月に1回程度のペースで、データエンジニア・データアナリストを中心としたデータに関わるすべての人に向けた勉強会を実施しております。

当日ライブ配信では、リアルタイムでいただいた質疑応答をしながらワイワイ楽しんでデータについて学んでおります。

過去のアーカイブもYoutube上にございますので、ぜひご覧ください。

https://www.youtube.com/@dataengineeringstudy6866/featured

hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。