『データエンジニアリングの基礎』を読んだ

2024年5月20日 engineering

こんにちは、 @kz_morita です。

今回は、 データエンジニアリングの基礎 という本を読んだのでその感想です

書籍について

書籍名は、 『データエンジニアリングの基礎 ―データプロジェクトで失敗しないために』 です。

この本は、2024 年 03 月に日本語訳版が出版されたばかりの本です。

書籍の内容は以下のような感じです。

Ⅰ部 データエンジニアリングの基礎と構成要素

1章 データエンジニアリング概説
    1.1 データエンジニアリングとは何か
    1.2 データエンジニアリングのスキルと活動
    1.3 組織内でのデータエンジニアリング
    1.4 結論
    1.5 参考資料

2章 データエンジニアリングライフサイクル
    2.1 データエンジニアリングライフサイクルとは何か?
    2.2 データエンジニアリングにおける主要な底流
    2.3 結論
    2.4 参考資料

3章 適切なデータアーキテクチャの設計
    3.1 データアーキテクチャとは何か?
    3.2 良いデータアーキテクチャの原則
    3.3 主要なアーキテクチャの概念
    3.4 データアーキテクチャの例と種類
    3.5 データアーキテクチャの設計にかかわるのは誰か
    3.6 結論
    3.7 参考資料

4章 データエンジニアリングライフサイクルにおけるテクノロジの選択
    4.1 チームのサイズと容量
    4.2 市場投入までのスピード
    4.3 相互運用性
    4.4 コスト最適化とビジネス価値
    4.5 現在vs.未来:不変テクノロジvs.一過性テクノロジ
    4.6 設置場所
    4.7 構築vs.購入
    4.8 モノリスvs.モジュール
    4.9 サーバレスvs.サーバ
    4.10 最適化、性能、ベンチマーク戦争
    4.11 底流とテクノロジ選択への影響
    4.12 結論
    4.13 参考資料

Ⅱ部 データエンジニアリングライフサイクルの詳細

5章 ソースシステムにおけるデータ生成
    5.1 データソース:データはどのように生成されるのか?
    5.2 ソースシステム:主要な概念
    5.3 ソースシステムの実践的な詳細
    5.4 一緒に仕事する人
    5.5 底流とそのソースシステムへの影響
    5.6 結論
    5.7 参考資料

6章 ストレージへの保存
    6.1 データストレージの原材料
    6.2 データストレージシステム
    6.3 データエンジニアリングにおけるストレージ抽象
    6.4 ストレージの要点とトレンド
    6.5 一緒に仕事する人
    6.6 底流
    6.7 結論
    6.8 参考資料

7章 データ取り込み
    7.1 データ取り込みとは
    7.2 取り込みフェーズにおけるエンジニアリング上の重要な検討事項
    7.3 バッチ取り込みに関する検討事項
    7.4 メッセージ取り込みとストリーム取り込みの検討事項
    7.5 データ取り込みの方法
    7.6 一緒に仕事する人
    7.7 底流
    7.8 結論
    7.9 参考資料

8章 クエリ、データモデリング、変換
    8.1 クエリ
    8.2 データモデリング
    8.3 変換
    8.4 一緒に仕事する人
    8.5 底流
    8.6 結論
    8.7 参考資料

9章 アナリティクス、機械学習、リバースETL へのデータの提供
    9.1 データ提供に関する一般的な考慮事項
    9.2 アナリティクス
    9.3 機械学習
    9.4 データエンジニアがMLについて知っておくべきこと
    9.5 アナリティクスやMLに対してデータを提供する方法
    9.6 リバースETL
    9.7 一緒に仕事する人
    9.8 底流
    9.9 結論
    9.10 参考資料

Ⅲ部 セキュリティとプライバシー、およびデータエンジニアリングの未来

10章 セキュリティとプライバシー
    10.1 人材
    10.2 プロセス
    10.3 テクノロジ
    10.4 結論
    10.5 参考資料

11章 データエンジニアリングの未来
    11.1 データエンジニアリングライフサイクルは消えない
    11.2 複雑さの衰退と使いやすいデータツールの興隆
    11.3 クラウドスケールデータOSと相互運用性の改善
    11.4 「大企業的」データエンジニアリング
    11.5 職種名と担当範囲は変化する
    11.6  モダンデータスタックからの脱却とライブデータスタックへの移行
    11.7 結論

付録A シリアライズと圧縮技術の詳細
    A.1 シリアライズフォーマット
    A.2 データベースストレージエンジン
    A.3 圧縮:gzip、bzip2、Snappyなど

付録B クラウドのネットワーク
    B.1 クラウドネットワークのトポロジ
    B.2 CDN
    B.3 データエグレス料金の未来

索 引

感想

この本は、洋書の頃から知っていてずっと読みたいと思っていた本だったのですが、ありがたいことに日本語版が発売されたので読んでみました。 内容としては、データエンジニアリングライフサイクルという、ソースデータからデータを取得して、保存・変換して、提供するまでの一連の流れの中でデータエンジニアが注視すべきことが非常にわかりやすくまとまっています。

これらのライフサイクルを支える、底流として

  • セキュリティ
  • データ管理
  • DataOps
  • データアーキテクチャ
  • オーケストレーション
  • ソフトウェアエンジニアリング

という観点も紹介されています。

これらは DMBOK など、データマネジメントに必要な項目をデータエンジニアリング向けに翻訳されて書いたとも言える内容かなと思っていて非常に参考になることが多かったです。

各章でそれぞれの概念をマスターできるかというとそういうわけではないのですが、参考文献が大量に掲載されていて今後の学習には事欠かないのもまたこの本の魅力だなと思います。

個人的に最近学びを深めたいところとしてデータモデリングがあるのですが、正直この書籍だけでは理解できたとは言い難いです。しかし、次にどんな概念から学んだら良いのか、そのためのどの資料を読めば良さそうかといった点がわかるため、まさに学習の始めの地図を作るという点において非常に良い本だなと思います。

自分もこの本で、知った概念や書籍など読んでみようと思っています。

具体的に気になったところとしては、データモデリングの、Inmon、Kimball、Data Vault についてこのあたりはさらに深掘りしていこうと思います。 また、DODD (Data Observability Driven Development) という概念も興味深かったです。

読み終わってみた率直な感想としては、色々と学びたいところが増えて非常にわくわくしています。データエンジニアとして重要な考えやこれから学ぶべき道を示してくれる良い本だなと思いました。

あらためて、データエンジニアとして働き始めて一冊目に読む本として非常におすすめできるなと思いました。

この記事をシェア