ISBN 9784814400652

データエンジニアリングの基礎 : データプロジェクトで失敗しないために

データエンジニアリングの基礎 : データプロジェクトで失敗しないために
刊行
2024-03

概要

データエンジニアリングライフサイクルを軸に組織のデータ基盤を設計・運用する

想定読者

データ基盤の構築・運用を担い始めたエンジニア、またはアナリスト・データサイエンティストからデータエンジニアリング領域へ軸足を移したい人。ツール選定の判断軸や組織内での役割定義に悩んでいる人に特に向く

こんな人には向いていない

  • 特定ツール(Airflow・dbt・Spark 等)の操作手順を習得したい人。本書はツール横断の概念・原則書であり、ハンズオン的な内容は含まない
  • データエンジニアリングをすでに深く実践しており、個別技術の内部実装や高度なアーキテクチャパターンを求める人。本書の記述はサーベイ的な広さを優先している
  • プログラミング経験がなく IT インフラの基礎知識も持たない初学者。SQL・クラウドストレージ・ETL の概念程度の前提がないと議論の文脈を掴みにくい

読了後にできるようになること

  • データエンジニアリングライフサイクル(生成・ストレージ・取り込み・変換・配信)の各フェーズで発生する技術的選択肢とトレードオフを説明できる
  • データウェアハウス・データレイク・データレイクハウスの設計哲学の違いと、組織のデータ成熟度に応じた選択基準を理解できる
  • バッチとストリーミングの取り込みパターン、スキーマ進化・遅延データ・エラーハンドリングの実務上の選択肢を整理できる
  • データメッシュ・Lambda/Kappa アーキテクチャ等のパターンを特徴・適合条件から選べる
  • FinOps の観点でクラウドコストを設計段階から意識した技術選定ができる
  • データガバナンス・セキュリティ・DataOps をライフサイクルの横断的関心事として位置づけられる

本書のキー概念(章解説)

  • 第 1 章 データエンジニアリング概論 — Type A / Type B エンジニアの役割スペクトラムなど、職種定義の言語化に使える章
  • 第 2 章 データエンジニアリングライフサイクル — 本書の骨格となるフレームワーク。6つのアンダーカレント(セキュリティ・ガバナンス・DataOps 等)はここで一覧できる
  • 第 3 章 データアーキテクチャの設計 — 9つの設計原則とデータメッシュ等の新興パターンを俯瞰する。輪読会でも最初に取り上げられた章
  • 第 4 章 テクノロジーの選択 — FinOps・ビルド vs 購入・モノリシック vs モジュラーの判断軸を整理。ツール比較疲れしているチームに有用
  • 第 5 章 ソースシステムにおけるデータ生成 — CDC・メッセージング・タイムスタンプの扱いなど、上流との接続設計に関わる実務論点を網羅
  • 第 6 章 ストレージ — シリアライゼーション・圧縮・オブジェクトストレージ・データカタログまで、ストレージ層の全貌を俯瞰
  • 第 7 章 データの取り込み — バッチ vs ストリーミングの判断基準が具体的。スキーマ進化・遅延データの扱い方は実務直結度が高い
  • 第 8 章 クエリ・データモデリング・変換 — Kimball・Inmon・Data Vault の比較など、モデリング選択の整理として参照価値がある
  • 第 9 章 アナリティクス・ML・リバース ETL へのデータ配信 — セマンティックレイヤーや ML 向けデータ要件など、配信先ごとの設計上の考慮点を扱う
  • 第 10 章 セキュリティとプライバシー — 最小権限原則・暗号化・ログ監視といった横断的セキュリティ対策の基礎
  • 第 11 章 データエンジニアリングの未来 — ライブデータスタックへの移行とリアルタイム分析データベースの台頭を展望する短章

ハイライト

  • 変わらないものを理解するために基礎に注力すること。ツールは急速に陳腐化するが、ライフサイクルの原則は変わらない(本書が特定ツールの解説ではなくライフサイクル原則に焦点を当てている理由が端的に表れている)
  • データエンジニアは、どちらか一方では作れないようなツールをチームが協力して構築できるよう支援する役割を担う(データエンジニアの職責を組織横断の協業支援として捉えた記述で、役割定義の議論に使いやすい)
  • データ基盤の構築はコスト・セキュリティ・使いやすさ・速度のバランスを組織戦略に照らして最適化する問題であり、最大性能を追うことではない(技術選定における組織的文脈の重要性を示す観点で、明確な指針のないまま進めることへの警鐘として機能している)

外部からの言及

  • Qiita 上では輪読会や読書メモの形で本書を章ごとに消化する記事が複数存在し、特にアーキテクチャ設計原則・FinOps・データモデリング比較の章が単独で取り上げられることが多い。ツール解説ではなく概念整理の参照先として使われている様子が見て取れる(qiita)
  • データチーム一人目として analytics からデータ基盤構築に役割を広げた実践者が、自己学習の参照文献として本書を挙げているケースが見られる。全体像の把握に有効という位置づけで、特定フェーズの深掘りには別書を併用している(qiita)
  • データエンジニアリング用語の定義整理を行う記事で、データエンジニアとアナリティクスエンジニアの役割区分の根拠として本書が引用されている。コミュニティ内での語彙統一の参照先としても機能している(qiita)

編集メモ

Qiita で確認できた直接言及記事は5件・累計 likes 約30。ただし18ヶ月・41セッションに及ぶ輪読会(likes 11)が成立しており、英語原著から翻訳版にかけて継続的な学習コミュニティが形成されている。データエンジニアリング分野の体系書として着実に参照されている

読む前に押さえておきたいこと

  • SQLの基本的な読み書きと、テーブル・スキーマ・クエリの概念
  • クラウドサービス(AWS・GCP・Azure のいずれか)でのストレージやコンピュートリソースの基本操作経験
  • ETL または ELT という言葉が何を指すかの大まかな理解

学習のコツ

  • 1〜2章でライフサイクルとアンダーカレントの全体像を掴んでから、自分の現在の担当フェーズ(取り込みか変換か配信か)に対応する章を優先して読むと、実務との接続が早い
  • 3章(アーキテクチャ設計)と4章(テクノロジー選択)はチームのツール選定議論の共通言語として機能する。個人学習よりも輪読会・チーム読書で使うと投資対効果が高い
  • 特定ツールの深掘り(dbt・Airflow・Spark 等)は本書と並行して各ツールの公式ドキュメントや専門書を参照する構成にすると知識の抜けが生じにくい
  • 付録A(シリアライゼーション・圧縮)と付録B(クラウドネットワーク)は必要に応じて参照する補足章で、通読より辞書的な使い方が向いている
出版社による内容紹介

データエンジニアリングを理解しデータリテラシーを飛躍的に向上させる! データエンジニアリングとは、組織内外で日々生成されるデータを蓄積し分析するためのデータシステムを構築し維持管理することであり、急速に注目を集めている分野です。近年ではデータエンジニアリングを支えるツールやクラウドサービスが成熟し、組織へのデータ利活用の導入は容易になりましたが、明確な指針のないままデータシステムの構築を進めると費用と時間を無駄に費やすことになります。本書は「データエンジニアリングライフサイクル」を軸にデータシステムの要件を整理することで、組織の「データ成熟度」に応じたデータシステム構築の指針を与えます。またデータエンジニアの立ち位置を明確にし、組織内でデータエンジニアが果たすべき役割を示します。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。