社内勉強会「Modern Data Stack入門」の内容をブログ化しました

こんにちは、プレイドでCore Platform開発の責任者をしているエンジニアのkusappeです。

プレイドの社内向けに行ったModern Data Stack勉強会の内容が好評だったので、データ基盤に携わる方に向けてブログ化しました。
この記事では、Modern Data Stackとは何か、そのメリットや特徴について解説します。また、具体的な技術要素・主要サービスや重要だと思うトレンドについても紹介します。

Modern Data Stackとは?

Modern Data Stackとは、データの収集、処理、分析、可視化などデータ活用に関わる機能を、それぞれに特化したクラウドサービスやSaaSツールを組み合わせて構築するという考え方やその基盤のことを指します。
クラウドサービスやその周辺の技術要素の進化によって、従来のデータ基盤と比べると以下のメリットがあると言われています。

  • 高いスケーラビリティや可用性を実現できる
  • SaaSを組み合わせてスピーディーにデータ基盤の環境を構築できる
  • 簡単にツールを使えるようになり、誰でもデータの利活用ができる状態になる(データの民主化)

そして、dbtのCEOは2020年に書いたModern Data Stackの過去・現在・未来のブログで、「2021〜2025年にかけてさらなるイノベーションが起きるのでは?」と予測しています。
データの活用をより加速させるためにも、具体的な技術要素や主要なSaaSサービスを押さえておくのはとても重要だと思います。それでは見ていきましょう。

具体的な技術要素・主要なサービス

個々の技術要素を説明する前に、まずはModern Data Stackの全体像(図1)を見てみましょう。今回紹介する図以外にも全体像の図はいくつかあるため、本記事末の参考資料のところに載せておきます。

ModernDataStack_Overview.png
図1. Modern Data Stack 全体像 ( https://www.moderndatastack.xyz/journal/the-modern-data-stack-ecosystem-spring-2022-edition-5qe )

それでは各カテゴリーと主要サービスを見ていきましょう。データの流れの観点から大きく、データ収集、データ処理、データ活用、その他(横断系)の4つに分類して解説します。

データ収集

  • Data Warehouse
    Data Warehouseとは企業内の多種多様な大量データを貯め、様々な分析を行うために特化されたサービスのことです。Warehouse(倉庫)という言葉からも連想されるように、構造化されたデータを扱うイメージが強いです。画像やテキストなどの非構造化データを扱う場合は、Data Lakeという言葉が使われます。
    その中で一つ注目したいトレンドとして、ETLからELTへのシフト(図2)があります。
    Data Warehouse側の技術進化によって、まずはロードしてその後変換が簡単に実現できるようになりました。ETLと比べた場合のELTは、高速・低メンテナンス・ロードが1回で済むといった利点があります。
    ELTが標準になることによって、Data Warehouse内でのData Transformationの管理ニーズが高まってきました。

    ETL_ELT.png
    図2. ETLとELT ( https://aws.amazon.com/jp/compare/the-difference-between-etl-and-elt/ )

  • Data Integration
    様々なデータソースからデータウェアハウスにデータを集めるための連携ツール(図3)です。
    主要なSaaSとして、FivetranAirbyte があります。
    双方の立場から比較記事が出ているので興味ある方は見てみてください。

    Data_Integration_Overview.png
    図3. Data Integration ( https://www.fivetran.com/data-movement )

  • Event Tracking
    Websiteでのクリック情報など、ユーザーの行動情報を取得するツールのことを指します。
    SegmentRudderstackあたりがグローバルでも有名ですね。KARTEもこのリストの仲間に入れるように頑張らなくではと思います。
    SegmentとRudderstackに共通する点としては、Customer Dataを軸としてそれをマーケティングに使うだけではなく、データのTransformation機能や他の業務ツールとの連携など多岐にわたって活用していることが挙げられます。

データ処理

  • Data Transformation
    Data Warehouseにロードしたデータを使いやすい形に変換するレイヤーです。
    Warehouse側の技術進化によってSQLでできることが増え、基本的な処理はSQLで行うのが主流になってきています。
    そのデータ変換用のSQLを管理するフレームワークとして、dbtDataformがあります。
    プレイドでのdbtの活用方法は先日ブログに記載したのでよかったらみてください。

  • Metric Store
    一言でいうと、分析の際に使う指標や数値(メトリクス)の定義を一元管理するツールです。
    今までは各BIツールでメトリクス定義を管理していましたが、それによって以下問題が起きていました。
    - レポーティングで使う数値の定義が、各チーム・各BIツールによって違っていて何が正解なのかわからない
    - 運用管理しようとしても、定義がBIツールごとに散らばり重複しているので管理が大変
    メトリクスの定義管理をBIツールとは分離し、再利用可能にするというのがコンセプトです(図4)。Headless BIとも呼ばれます。
    SaaSとしては、dbt(semantic layer)Metriqlcube があります。
    Metric_Store.png
    図4. Metric Storeのコンセプト( https://benn.substack.com/p/metrics-layer )

データ活用

  • Data Analytics
    この領域はBIツールなど、みなさんご存知だと思うので割愛します

  • Reverse ETL
    Reverse ETLとは、Data Warehouseのデータを他のシステム(CRM、Marketing Tool、Operation用のSaaSなど)に連携する手法(図5)を指します。
    Data warehouseに入ったデータやその分析を最後アクションに結びつけることから、Data Activationとも呼ばれます。
    収集した生データや変換されたデータをビジネス上の価値に繋げるための重要な架け橋の一つだと考えられています。
    Reverse ETL / Data ActivationのSaaSは、rudderstack, Census , hightouch があります。
    Data_Activation.png
    図5. Data Activation ( https://www.getcensus.com/solutions/data-teams )

その他(横断系)

  • Data Governance
    ここまで説明したツールの進化によってデータの活用が進むと、今度はデータの運用管理が大変になり、管理ツールへのニーズが高まってきました。
    データ運用管理に求められる機能としては以下があります。

    • データカタログ
      • 組織内にあるデータを検索・発見する
    • データリネージ
      • どこからどこへデータが流れたのかを可視化・監視する
    • データオブザーバビリティ
      • 今流れているデータのEnd-to-Endのモニタリングする(可視化、品質チェックetc)

    各機能についてData Warehouse側でも提供しています。たとえば、DatabricksのUnity CatalogGCP Data Catalogなどなど。各種サービス跨いだ管理ツールとしてはAtlanMONTE CARLO があります。

    いずれの機能も内部的には各種サービスからメタデータを収集し、それを目的に応じて使用しているという構造になっています(図6)。なので、どれぐらい解像度高くリアルタイムでメタデータを収集できるかがポイントと言えます。
      Metadata_Lake.png
    図6. Metadata管理 ( https://atlan.com/what-is-data-governance/?ref=/modern-data-stack-101/ )

  • Data Orchestration
    上で話したようなデータの収集・処理・活用を実行するために、タスクのワークフロー管理を行うツールを指します。
    主にAirflowPrefectdagsterあたりが有名です。

まとめ

さて、Modern Data Stackとは何かから始めて、カテゴリーごとの技術要素・代表的なサービス・重要だと思うトレンドを解説しました。
あくまで概要を説明しただけなので、実際にデータ基盤を構築しようとした際はいろいろなトピックを深掘りする必要が出てきます。参考資料にも今回調べたリンクを載せたので、みなさんが各トピックの詳細を知る上での手助けになれば幸いです。

参考資料