見出し画像

おい、MDSってなんなんだ?

データ活用基盤の話です。
Modern Data Stack; MDSって、知ってますか?

MDSとは、クラウド型DWHを中心とし、それに様々な工程を担うSaaSツールを組み合わせて1つのデータ基盤を構築するという考え方のことです。

実体がないので、MDSって何なのか?って検索し始めると沼にハマります。
テクノロジースタック(技術スタック)のデータ基盤版がデータスタックで、それにモダンとついているとクラウド型DWHを中心とした技術やツール、サービスの組み合わせのことを指すと理解しておけばいいと思いました。


起源

バズワードなので、正確な起源ってのを探す意味はないのですが、いつからこの言葉が言われるようになったのかという流れを整理すると理解が深まります。

  1. クラウドへの移行(2012年〜): 従来のオンプレミス(自社で物理的に管理するデータセンター)からクラウドベースのサービスへの移行が進んだ。(AWS Redshiftの登場)

  2. ETLからELTへのシフト(2016年〜): データウェアハウスにおける従来の「抽出(E)、変換(T)、ロード(L)」(ETL)のプロセスよりも早くて安価な、「抽出(E)、ロード(L)、変換(T)」(ELT)という新しいプロセスが誕生した。(Snowflakeが代表的)

これらのデータ基盤の革命によって、企業内のさまざまデータ活用が進み(海外では)、それらを実現するためのさまざまなサービス群をMDSと呼ぶようになったという感じです。

参考:https://hightouch.com/blog/reverse-etl-bringing-the-modern-data-stack-full-circle

MDSの意味はわかった。で、具体的に何?

大切なのはMDSと呼ばれるサービス群の中身です。
海外のデータ活用は相当に進んでおり、これらのサービス概要を読むだけでなんだかデータ活用のやり方がわかった気になります。

The Modern Data Stack Repositoryに綺麗にまとまっているのですが、カテゴリーが30個もあり情報量で溺れ死にました。少しでも整理できればと、データエンジニアリングライフサイクル(「データエンジニアリングの基礎」を参照)に当てはめてみました。

データエンジニアリングライフサイクルとは、データが生成される段階から、それを収集、保存、処理、分析してビジネスの意思決定に役立てるまでの一連のプロセスのことを言います。
それぞれのカテゴリーがこのデータ活用プロセスのどのあたりに位置づけられるのか理解しておくと、MDSの全体像がなんとなく掴めるかなと思っています。

頑張って整理してみましたが・・・あんまりいい感じになりませんでした。どのサービスもカバー範囲を広げていく傾向があるのでここからここくらいまでがカバー範囲っていう図にしてもいいかと思いましたが、めちゃくちゃ時間がかかりそうだったので断念します。

なんとかMDSカテゴリーを整理したいと悪戦苦闘した図

気を取り直して・・・。
MDSのカテゴリー概要とその代表的なサービスのリンクを列挙します。The Modern Data Stack Repositoryを自分がわかりやすいように再編集したものです。

☁︎ ETL Tools

ETLとは、データを取り出して整理し、必要な場所に移し、統合するプロセスのことです。これは、マーケティングデータを集約して分析したり、データを新しい場所に移行したり、機械学習に必要な大量のデータを処理するために使われます。

  • Fivetran(a closed-source ELT solution)

  • Airbyte(an open-source ELT solution)

open-sourceはソースコードが公開されているサービスのことで、利用については基本的に無料のものが多いです。AIを意識したPiplineを提供するものが増えており、データエンジニアリングライフサイクルの右側に侵食し、カバー範囲を広げている印象です。

☁︎ Data Workspace/Collaboration

伝統的なBIツールと同様の特徴を持ちながらも、柔軟性、協力、および整理された成果物の簡単な共有に重点を置いています。BIツールとは異なり、より技術的なユーザーが非常に強力で複雑なデータ作業を行い、結果を簡単に共有できる環境を提供します。

Jupyter notebookのバケモン。分析プロセスごとレポートし、ダッシュボードまで作成できるって感じです。

☁︎ Data Modelling and Transformation

データをデータウェアハウスに格納する前にデータモデルを開発するプロセス(Modelling)およびデータをある形式から別の形式に変換するプロセス(Transformation)を提供し、組織内でデータソースを持続的に管理する方法を確保します。

RiveryってのはETLのオールラウンダーって感じで、今後の展開に着目したいところです。ただ、若干高いかも。
言語はpythonやsqlがメインです。DSにも優しい。

☁︎ Data Warehouses

データをクリーンアップして準備した後、ビジネスインテリジェンスアプリケーションで価値ある洞察を得るために使用される、中央集権型のデータ管理システムです。

有名どころがたくさんあります。

☁︎ Feature Store

MLモデルを駆動するデータプロセスをオーケストレートします。MLモデルにはモデルトレーニングと本番推論の両方を可能にする独自のデータアクセス要件があります。フィーチャーストアは、生データとモデルが必要とするインターフェースの間の抽象化を提供します。

特徴量の生成や管理を一括して行えるツールです。MLOpsを構築する際には必須項目ですね。最近はLLMのRAGでの使用例も着目されています。

☁︎ Event Tracking

ユーザーとデジタルインターフェースとのやり取りを記録することです。キャプチャされた「イベント」はユーザーの行動を説明し、そのデータはしばしば行動データと呼ばれます。

Segmentのサービス紹介ページがわかりやすいです。
個人的には、あとで出てくるcustomer data platform; CDPも含めてこの辺りの情報を集めています。LLMとの組み合わせがエグそうな領域です。

☁︎ Metrics Store

組織が重要なメトリクス(基準や指標)を保存するための中央集権的で管理された場所です。組織の知識を集約し、ステークホルダーがキーのメトリクスにリピータブルな方法でアクセスできるリポジトリを作成します。

いわゆるSemantic Layer(データベースとデータ利用者の間の層)のサービスが含まれています。LLMとの組み合わせでビジネス用語↔︎コードという変換がこれまで以上にスムーズになるのは確定でしょう。

☁︎ Business Intelligence

企業データを活用し、貴重な洞察を得てビジネスの意思決定を支援するためのデータ関連のツール、方法、ベストプラクティスの利用を意味します。データ関連の要素全般を包括し、ビジネスプロフェッショナルが最良のデータ駆動型の意思決定を行うのを支援することが目的です。

本当に数多くのサービスがあります。DWHへの繋ぎこみも含めてノーコード化しています。何を基準に選べばいいのかわかりません。

☁︎ No code automation

主に技術者ではないユーザー(SQL、Python、またはその他のスクリプト言語に慣れていないユーザー)が、スケジュールまたはトリガーに基づいてアプリケーション間でデータを共有する新しい方法を作成するプロセスを指す総称です。

データ活用を進めるにあたってぶつかるDS・DAリソース足りない問題を解決してくれるかもしれないサービスです。
・・・このレベルの単純なタスクをこなすだけのDS・DAだとまずい。ということで、どこまで何をできるようになってくるのか注目しています。

☁︎ Augmented Analytics

機械学習と自然言語処理を使用して、通常はアナリストまたはデータサイエンティストによって行われる分析を自動化するデータ分析のアプローチです。データサイエンスと人工知能を組み合わせたものです。

言語による検索+データビジュアライズというアシスタントレベルのDS・DAが不要となるツールです。集計や簡単な分析なら言語による問いかけで完了するという世界線です。
・・・このレベルの単純なタスクをこなすだけのDS・DAだとまずい。ということで、どこまで何をできるようになってくるのか注目しています。

☁︎ Operational Analytics

ビジネスの運用プロセスを改善することを目的とした分析アプローチです。データ分析とビジネスインテリジェンスの組み合わせにより、日常業務をリアルタイムで効率化します。

とにかく早くシンプルに。日常のアクションに焦点を絞ったBIツールというイメージです。確かにTableauとかってリッチ過ぎる時があるので、その代わりになるかもです。

☁︎ Data Cataloging

メタデータおよびデータ管理ソフトウェアであり、企業がシステム内のデータを目録化して整理し、人々が見つけやすく理解しやすくする単一の参照ソースを提供します。

データ活用において、メタデータ管理は超絶重要です。そのため、自社で作成・運用する以外にもSaaSを使うっていう選択肢もありだと思います。

☁︎ Synthetic Data

人工的に作成された情報です。これは、「元のデータに似せてアルゴリズムによって製造されたデータ」と定義できます。合成データは元のデータに似ていますが、機密情報は含まれていません。MLモデルのテストや製品やサービスのテストに使用されます。

擬似データってやつですね。セキュリティや個人情報関連で今後は匿名加工データではなく、Synthetic dataを使いなさいとかなりかねませんね。要チェックのサービスです。

☁︎ Data Privacy and Governance

データの整合性とデータ保護を確保し、企業によるデータの管理を保証するプロセスで構成されます。

DMBOKで詳しく書かれていますが、データガバナンスは非常に多くの要素を管理する必要があります。そのサポートツールがあるなんて・・・導入したい。

☁︎ Spreadsheet based BI

さまざまなソースからデータを収集し、ダッシュボードではなくスプレッドシートのようなインターフェイスで視覚化することと定義できます。用語は新しいかもしれませんが、何十年にもわたって起こっていることを説明しているだけです。

最強のインターフェイスとして認めざるを得ないエクセルシート。それに争っても仕方ないじゃないか。BIツールでエクセルライクに使用可能というものです。悪くないと思います。

☁︎ Reverse ETL Tools

データをデータウェアハウスから取り出して変換し、第三者のビジネスツールにロードするプロセスです。これにより、ビジネスチームが変換されたデータを直接利用できるようになります。

ETLで統合したデータを解析し、それをReverse ETLで実務者が触っているサードパーティシステムに返す。Operational Analyticsを推進させる技術としても着目されています。分析における「ラスト ワンマイル」問題を解決してくれるかもしれないツールです。

☁︎ Data Lakes

あらゆる規模のすべての構造化データと非構造化データを保存できる集中リポジトリです。データをネイティブ形式で保持し、後で役立つものに変換できます。

S3があまりにも有名ですが、それ以外も結構あります。DWHと同様に技術選定の基準を教えてもらいたいです。

☁︎ Workflow Orchestration

ワークフローとは、繰り返されるソフトウェアプロセスを指します。これらのプロセスはコードで定義することも、完全に手動で定義することもできます。そのような自動化されたプロセスの構成と状態を管理および調整する行為です。

この辺りもPythonで書けんのか。すごいな。

☁︎ Data Discovery

データを1か所に集約して管理し、データを探しやすくするツールです。データのメタデータを抽出し、追加の文書化も可能です。また、データを使う方法や信頼性、最終更新日時など、データに関する情報をユーザーが簡単に見つけることができます。

これはほとんどData Catalogingと同じですね。ユーザーフレンドリーなUIが用意されているということなんでしょうね。

☁︎ Business Reliability/Observability

ビジネスの信頼性とは、ビジネスの運用中に問題や中断がない状態を指します。ビジネス環境は常に変化するため、問題が起こる可能性があります。信頼性があるビジネスは、問題を自動的に検知し、すぐに修正できる強固なプロセスを持っています。

KPI管理ツールと言ってもいいかもしれないです。このサービスコンセプトは実務にもとりいれたいです。

☁︎ Data Quality Monitoring

組織がシステム内のデータの健全性をチェックし続けるために使用するプロセスであり、DevOps可観測性のベストプラクティスをデータパイプラインに適用することでデータのダウンタイムを排除します。

非常に重要です。ちなみにDevOpsの可観測性の 3柱はログ(logs)、トレース(traces)、メトリック(metrics)と言われています。これをデータパイプラインにも組み込むということですね。データの場合は5柱で鮮度(freshness)、分布(distribution)、ボリューム(volume)、スキーマ(schema)、系統(lineage)だそうです。これらを観測しておくということですね。

☁︎ Data Streaming

連続的にデータが生成される状況で、そのデータを直ちに処理して利用することを指します。バッチ処理とは異なり、データがストレージに溜め込まれることなく、データが生成されるとすぐに処理されます。例えば、トランザクションデータやセンサーデータ、ソーシャルメディアの投稿などが該当します。データが生まれるタイミングで処理することで、組織はリアルタイムで洞察を得たり、異常を検出したり、トレンドを把握したりできます。

連続的なデータ処理は未知の領域なので興味があります。紹介されていたサービスのページを見てもユースケースの具体的なイメージは出てきませんでした。

☁︎ PLG CRM

Product-led growth; PLG(製品やサービス自体が顧客の興味を引き、成長を促進させるアプローチ)の世界で顧客関係を管理する方法(CRM)を変えています。営業チームが販売プレゼンテーションや会話の際に製品使用データのあらゆる側面を活用できるよう支援します。

PLGにも興味があるし、データ活用基盤にも興味がありますが、あんまり情報が落ちてない・・・。とてつもなく抽象的にまとめると、顧客がプロダクトを使用するうちにどんどん熱狂していき、それによって市場が開拓されていくという顧客のライフサイクル全体を可視化し、全関係者が見てアクションの取れる状態にすること・・・それは素晴らしい。

☁︎ Change Data Capture

ダウンストリームシステムがその変更に対するアクションをトリガーできるように、ソースシステムに発生した変更を追跡および特定するプロセスとして定義できます。データベースに発生する変更はすべて処理され、それらの変更に即座に対応します。

もう少しアーキテクチャが複雑になってきた時に検討したい項目です。お試しに無料で入れてみてもいいかもですが、導入後データの追従しかできない?とかの記事もあったのでそんなにお手軽には試せそうにありません。

☁︎ Data Mesh

分析データを管理する新しいアプローチです。データをデータレイクやデータウェアハウスに移動せずに、ユーザーが直接データにアクセスし、クエリを実行できるようにします。データの所有権を特定のチームに分散させ、ビジネスユーザーやデータサイエンティストが簡単にデータを利用できるようにします。データメッシュを使うことで、データの利用可能性やアクセス性の課題が解消され、価値の創出までの時間が短縮されます。

MDSのカテゴリーなのか?という違和感はあるものの、クラウドDWHを中心とするという定義から外れてはない気もするData Mesh。データエンジニアリングライフサイクルで整理したいという私の思惑からは大きく外れることになります。笑。
DWHを一元化するという戦略ではなく、分散したままで運用するという別のコンセプトとして理解しています。ただ、分散にするとクエリが複雑になることが予想されるので、ユーザーのスキルがある程度高い場合には導入を検討したいですね・・・。

☁︎ Managed Data Stack

データに基づいた経営を目指す企業は、効率的にデータを集中管理し整理するためのツールの集まりである現代のデータスタックを使います。しかし、インフラストラクチャの専門知識がない企業も多いため、操作しやすいソリューションであるマネージドデータスタックが求められています。

そもそもMDSをまとめ始めたのもデータ活用関連のツールが多すぎて整理したいというものでした。専任のチームがいない場合は外部ベンダーに任せるというのも選択肢の一つだと思います。

☁︎ Product Analytics

製品またはサービスが顧客/ユーザーに提供するデジタルエクスペリエンスを分析するプロセスです。パフォーマンスの最適化、問題の診断、顧客アクティビティと長期的な価値の関連付けなど、さまざまな目的で製品またはサービスに関する超重要な情報と洞察を得るのに役立ちます。

モニターからABテストまでオールインワンでプロダクトデータ活用をサポートしてくれるツールですね。to C向けのプロダクトを開発するときはこれらのツールを導入してしまった方がいいかも・・・。

☁︎ Customer Data Platform

顧客情報を収集して統一的なプロファイルを作り、それを使って顧客とのやり取りを改善するツールです。顧客の情報を集めて一つにまとめ、それを使ってメッセージングやインタラクションを個別化し、良い顧客体験を提供します。

CDPは顧客データ活用に特化したデータ活用基盤と理解しています。さまざまなソースからファーストパーティデータ(企業が自社で収集したデータ)を取得し、統合し、データをアクティベートさせます。まさに、セールス領域でのデータ活用って感じです。データ活用って結局何すんの?って方は、とりあえずCDPを調べてみるってのもありです。。

The Modern Data Stack Repositoryより引用

☁︎ DataOps

アジャイルかつプロセス指向の方法を通じて分析を開発および提供するための優れたアプローチとして定義できます。組織内のデータの管理者と利用者間のデータフローのプロセスを自動化し、データ分析のサイクルタイムを短縮します。

DeveOpsのデータ版です。開発と運用をスムーズに回すためのベストプラクティスが詰まっています。開発環境と運用環境のギャップを埋めてくれるのは非常に有益です。特にプロダクトへの活用が進むにつれOpsの重要性が増してきていることを実感します。

☁︎ Data Apps

データを使いやすく可視化したり、操作できる製品です。通常のダッシュボードよりも使いやすくカスタマイズされています。

これまで分析作業と納品物作成作業は別作業・別ツールでやると割り切ってきましたが、これらのアイデアはアドホックなデータ解析の納品物を劇的に変化させる可能性があります(最近文章がChatGPTっぽくなってきました笑)。また、一括でできると工数削減もそうですが、情報の密度もグッと上がると思います。積極的に試してみたいです。

感想

MDSの言葉の理解からいつの間にかカテゴーリーごとのツール調べになっていました。どのツールもサービスページが綺麗で見ていて飽きなかったですが、ただ種類が多い。海外サイトのため日本のツールは見当たらないですが、その辺も見つけたら足していく予定です。

この記事が気に入ったらサポートをしてみませんか?