「データメッシュ」とは? なぜ注目されているのか
前回は、データアーキテクチャのパターンやアプローチについて解説した。今回は、その中からデータメッシュについて深掘りしていきたい。
前回の記事は以下からお読みいただけます。
データメッシュとは
データメッシュとは、Zhamak Dehghani氏が提唱したデータアーキテクチャで、ドメインごとにデータの管理責任を持ち、各ドメインが“網の目(メッシュ)”のようにデータをやり取りする考え方である。
ここで言うドメインとは、ビジネスや業務を推進していくための大きな(領域)単位のことで、たとえばマーケティング、営業、開発、製造、人事、財務といった業務組織単位などを指す。この“ドメインごとの管理”がポイントであり、ドメインごとにデータオーナーシップを求めることから、「非中央集権型のデータマネジメント」と呼ばれている。
データメッシュは、これまでのデータ基盤に課題を感じていた多くの企業から非常に注目を集めており、データの新しい概念(パラタイムシフト)とも言われている。
以前は、「データはエンタープライズ全体の資産であり、その資産は中央で管理すべき」というのが一般的な考え方であった。しかし、なぜ今データメッシュで提唱されるドメインごとのデータ管理(非中央集権型のデータマネジメント)が注目されているのか。そして、本当にパラダイムシフトになり得るのか、考察していきたい。
データメッシュの特徴
まず、データメッシュの特徴として何が挙げられるのか。Zhamak Dehghani氏の著書[1]から筆者の理解も加えながら解説する。
モノリシックの管理からドメイン指向の「分散管理」へ
データメッシュの概念が生まれた背景には、「中央集権型として一元化されたデータアーキテクチャでは、多くの組織や業務(ドメイン)を持つ企業にとってさまざまな障害が発生するようになった」ことが挙げられており、この問題は「人的な問題」と「性能の問題」に大別できる。
そして、その要因は「データソース」と「各組織におけるデータの利用ニーズおよび利用者」の急増である。デジタル化などによって、より多くのデータを生成・利用できるようになるとデータ数や利用者が急増し、データエンジニアによる一元的な管理が困難になるとともに、1つのデータ基盤でデータを整備していくには時間がかかりすぎるようになった。
多様なデータを1ヵ所に管理し、多くの人がそれぞれの目的で利用できるようにするためには、多岐にわたる目的に応じてデータを標準化したり、結合したりするなどの“データ整備”をデータエンジニアが一元的に行わなければならない。また、ツールも目的に合ったものがあるにもかかわらず、1つに集約することには無理が生じてくる。
Dehghani氏は、このように一元管理することで凝り固まり巨大化し、うまく機能しなくなった状態を「モノリシックなデータ基盤」と定義しており、脱却のためには分散化が必要だと述べている。
ドメイン指向の分散管理では、各組織に“データに関する”責任を負ってもらい、ファクトに基づく正しいデータセットを提供させることで、データソースやニーズの急増に対応していく。これは、各ドメインのデータに対して「自律的なデータオーナーシップ」を持たせることで、データ利活用が将来的に拡大したとしても、その管理負担を各ドメインに分散できるため、“現実的な管理”が可能になる。
データパイプラインの分散とプロダクト思考
一般的なデータ連携は、ETL(Extract: 抽出/Transform:変換/Load:書き出し)に関する処理プロセスを一意に管理し、その中でデータクレンジング、データ統合といった機能を提供していく考え方である。しかし昨今、非構造化データの連携、IoT連携、大量データの処理、リアルタイムのデータなど、ノードごとに求められる要件が変わり、ニーズへの対応可否、処理の応答速度などが問題になってしまった。
そこでデータメッシュでは、「データ連携に求めるクレンジングやデータ重複排除といった処理をドメイン内部で実施することで、各ドメインに処理にかかわる負担を分散させていく」としている。
これを実現させるために、各ドメインは他ドメインに提供するデータを“プロダクト”として管理し、他ドメインのデータ利用者を“顧客”として見立てることで、データを提供していく。
セルフサービス型のデータ基盤
データをプロダクト化してしまうことの弊害は、そのための機能をドメインごとに実装しなければいけないことである。そうすると構築のためのリソース(労力やコスト、人的スキル)などが重複してしまうため、それを回避するために共通のインフラ基盤(データ・インフラストラクチャ・プラットフォーム)を構築することが求められる。
ドメインに依存しない、“共通性の高い”データ収集・抽出機能などを提供することで各ドメインの冗長性を排除していく。そのポイントは、ドメインに依存する業務の概念やビジネスルールを排除することである。それを含めてしまうと、共通性が損なわれるからだ。
そしてこのプラットフォームはユーザーに提供し、「セルフサービス型」とすることで自律的な分散型(非中央集権型)のデータマネジメントを実現させていく。
連邦型のデータガバナンス
ドメインごとのデータ管理に向けては、標準化と相互運用性をサポートするためのデータガバナンスが求められる。データガバナンスでは共通性を担保するためのルールを整備し、相互運用性を維持するためのポリシーと基準を設ける。
従来のデータガバナンスは、意思決定と全社的管理における一元化を目的とするが、データメッシュにおけるデータガバナンスは「複数のコンテキスト(意味解釈)を管理する」とある。
[1]『How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh』(20 May 2019, Zhamak Dehghani)
『Data Mesh Principles and Logical Architecture』(03 December 2020, Zhamak Dehghani)
『Data Mesh: Delivering Data-Driven Value at Scale』(March 2022, O'Reilly Media, Zhamak Dehghani)