/note/tech

データエンジニアリングとドメイン駆動設計

要約:

■ 1. 発表概要

  • 登壇者: 増田 亨(masuda220)、有限会社システム設計
  • 発表日: 2026年7月22日
  • イベント: Data Engineering Study #36「"良いデータモデル"は、どこから生まれるのか」
  • 参考文献:
    • 著書: 増田 亨(2017)『現場で役立つシステム設計の原則』技術評論社
    • 訳書: Vlad Khononov(著) 増田 亨、綿引 琢磨(訳) 2024 『ドメイン駆動設計をはじめよう』オライリージャパン
  • 話題の構成:
    • 非集中型データアーキテクチャ「データメッシュ」
    • なぜ非集中型を採用するか
    • 非集中型にした場合の全体最適化

■ 2. データメッシュ(非集中型データアーキテクチャ)

  • データエンジニアリングライフサイクルの3段階:
    • データ生成: 業務プロセス実行系のアプリケーション(データソース)
    • データ提供: データの抽出、モデルの変換、利用者への提供
    • データ利用: 意思決定支援、機械学習、業務プロセス実行系へのフィードバック
  • データメッシュの基本構造:
    • 業務単位の開発チームがデータを所有し、データプロダクトを相互に提供する非集中型アーキテクチャ
    • 販売促進、商談、顧客サポート、入荷物流、注文処理、出荷物流などの各業務チームが独立してデータを管理・提供する
  • データプロダクトの特性:
    • ビジネス上の特定の課題を解決するためにデータをパッケージ化する
    • 商品のように、商品内容の説明、取り扱い方法、品質保証、アフターサービスを提供する
    • データソースのアプリケーション開発チームが、所有するデータを使って他チームのニーズに合わせたプロダクト(データパッケージ)を提供する

■ 3. 非集中型を採用する理由

  • 採用理由は目的適合性、発展性、安全性の3点
  • 目的適合性の向上:
    • データソースの業務活動に精通し、データの正しい意味を熟知するチームがデータの提供に責任を持つ
    • データを利用したい業務分野のニーズを深く理解している開発チームが、分析用データのニーズをデータソース所有チームに提示する
    • 提供側チームと利用側チームが意図を伝達し合うことで高度なデータ活用が可能となる
  • 発展性の向上:
    • 提供するデータの品質保証レベルが向上する
    • データソースのデータモデルは、提供するデータパッケージとは独立して進化可能
    • 提供するデータパッケージのデータモデルは、データソースのデータモデルとは独立して進化可能
    • 提供と利用の組み合わせの変更が柔軟で、データの活用方法を発展させやすい
  • 安全性の向上:
    • データ管理の境界を明確に定義できる
    • データ管理の責任はデータ提供側が持つ
    • 境界をまたぐデータ移動をより安全により適切に制御できる

■ 4. 非集中型と全体最適化

  • 全体最適の課題は「目指す方向の一致と設計判断の一貫性」と「効率化(ムリ・ムダ・ムラの検知と除去)」の2点
  • 目指す方向の一致と設計判断の一貫性:
    • 事業目的適合性に焦点を合わせる
    • 事業活動を中核の業務領域(競争優位を生み出す)と一般の業務領域(他社と同じでよい)に分類する
    • 中核の業務領域は独自モデルとその実装を探究し続ける
    • 一般の業務領域は一般モデルをそのまま流用し、実装はできるだけ簡略に済ませる
  • 業務領域の分類(2軸4カテゴリー):
    • 横軸: 競合他社との差別化への影響度
    • 縦軸: 業務ロジックの複雑さ(開発の難易度)
    • 中核の業務領域(差別化大・複雑さ大): 競争優位性◎、変化◎ → 内製開発、変更容易性の継続的改善
    • 一般の業務領域(差別化小・複雑さ大): 競争優位性× → 模倣または購入を検討
    • 補完的な業務領域(差別化大・複雑さ小): 競争優位性○、変化△ → CRUD/ETL機能の簡易開発
  • 効率化(ムリ・ムダ・ムラの検知と除去):
    • データプロダクトの企画と実装で事業目的適合性を評価して優先順位を決め、設計判断する
    • チーム間の対話を通じて事業目的適合性の捉え方を言語化し、チームの判断と行動の事業目的適合性を高める
    • 中核は発展性に価値があり、継続的な学習と育成を継続する
    • 一般はできるだけ簡略に済ませることに価値がある
    • 事業目的から外れる企画はやらない決断が重要
  • 技術課題の効率的・効果的な解決手段:
    • データエンジニアリングの実践コミュニティを立ち上げ、継続的に活動する
    • データエンジニアリングの課題解決に必要な知識と技能を継続的に学習するための自発的なコミュニティを形成する
    • 組織や役職から独立した技術者の学習共同体として機能させる
    • 現場のリアルな課題感、課題解決の経験談(成功と失敗)をざっくばらんに話し合える場を定期的に持つ
  • ボトムアップによる全体最適の促進:
    • 競争優位性(顧客が自社の製品を選ぶ理由)をどこに見出すかを全社的に問い続け、立場や経験の違いによる異なる見方を積極的に持ち寄ることで方向性を創発する
    • 組織や役職から離れた学習共同体の活動を組織として支援する
    • このボトムアップのアプローチが、中央集権的なルール作りとその徹底よりも効率的で効果的である