カーキ色はヒンディー語らしい

技術記事は https://zenn.dev/notrogue

Fundamentals of Data Engineering読んだ

https://learning.oreilly.com/covers/urn:orm:book:9781098108298/400w/

 

 

learning.oreilly.comFundamentals of Data Engineeringという本を読みました。

どんな本か

2022年に出版された、名前の通りData Engineering入門の本です。具体的には、

  •  データの流れ(後述のData Engineering Lifecycle)に沿った、仕事・ベストプラクティスの説明
  • データ基盤のアーキテクチャを考える時の観点
  • 技術選定する時の観点
  • 他の職種の人とのかかわり
  • データウェアハウスのデータモデリングの概要
  • 流行り言葉の説明

などが説明されています。

 

構成は、

  • 一部はData Engineeringの一般論(定義や歴史)、全体的なアーキテクチャ・技術の選び方
  • 二部はデータの流れ(後述のData Engineering Lifecycle)に沿った、仕事・ベストプラクティスの説明
  • 三部はセキュリティと、Data Engineeringの未来
    • (一部にまとめられたのでは?と思わなくもないです)

の三構成からなっています。特に一部のアーキテクチャ・技術選定の章(3、4章)が私には印象に残っています。

 

なお、著者のお二人はTernary Dataというコンサルタント会社の方です

 

どんな本ではない

基本的に特定・具体的なツール・製品の話には踏み込みません。例えば、一般論としてのData warehouseの説明はありますが、具体的な製品(例えば、SnowflakeやBigQuery)は名前の紹介に留まります。

そのため、この本を読んでもデータ基盤を作ったり使えるようにはなりません。

(それらのツール・製品の理解はしやすくなるでしょうが)

 

また、Data EngineeringはData Science・Machine Learningの隣接分野ですが(かつ一部オーバーラップや混同される分野)、その説明はほとんどありません。

 

Data Engineering Lifecylecyle

この本では「Data Engineering Lifecycle」という概念を紹介しており、本文中(特に二章)では、それに沿って話が進みます。

 

Data Engineering Lifecyleは本文中では

The data engineering lifecycle comprises stages that turn raw data ingredients into a useful end product, ready for consumption by analysts, data scientists, ML engineers, and others

と定義されています。元データをエンドユーザ(データサイエンティスト等)が利用できるようにするまでの一連の流れで、

  • 元データの生成(Generation)
  • 挿入(Ingestion)
  • 変換(Transformation)
  • 提供(Seving)
  • 保存(Storage)

をライフサイクルとしています。

 

また、「undercurrent」(適当な訳が難しい…)として、

  • セキュリティ
  • Data Management
  • DataOps
  • Data Architecture
  • Orchestration
  • Software Engineering

など、データエンジニアリングを支える横断的な考えについて、都度説明があります。

 

アーキテクチャ・技術の選び方

3、4章のアーキテクチャ・技術選定の章が特に印象に残っています。

本書では色々書いていますが、

  • 要件ちゃんと考えろ

というのが核で、

  • 過度に複雑にするな
  • 新しいってだけで技術を選ぶな
  • 将来変わりうる所はフレキシブル・スケールする

などが、よく陥る罠に対する注意点なのかなーと思いました。

 

技術選定関係で印象に残った言葉

データエンジニアリングの領域は新しいツールやバズワードが多いので、その警鐘が多い気がします。

 

focus on the fundamentals to understand what’s not going to change;

t-wadaさんの技術の審美眼にも似た話あったなーと思い出しました(t-wadaさんの方は変わった部分は変わる要因に注目しようという話だと思いますが)。

 

speakerdeck.com

Enterprise architecture is the design of systems to support change in the enterprise, achieved by flexible and reversible decisions reached through careful evaluation of trade-offs.

reversible(後からやり直せる)な決定はflexibleな決定に繋がり(やり直せる分柔軟に試せる・戻せる)、flexibleな決定は環境の変化に追随しやすいので良いと繋がります。

 

There’s also a temptation to do resume-driven development, stacking up impressive new technologies without prioritizing the project’s ultimate goals

 We sometimes see small data teams read blog posts about a new cutting-edge technology at a giant tech company and then try to emulate these same extremely complex technologies and practices. 

You are not Dropbox, nor are you Cloudflare

新しい・他が使っている・履歴書に書けるような技術というだけで、あるテクノロジーを選ぶなという警告です。耳が痛いです。

(最後の引用は、DropBoxやCloudflare(の一部)はオンプレに戻ったというだけで、クラウドディスるなという話)

 

We see such apples-to-oranges comparisons made all the time in the database space.

データベース製品の比較の文脈です。SnowflakeとDatabricksがベンチマークで喧嘩していたり(下)、ベンチマーク見るの難しいですよね。

www.databricks.com

www.snowflake.com

 

Future work的な

この本を読んだ印象では、著者は

  • ストリーミング
  • 「Enterprisey」(大企業っぽい分野というニュアンス?)。具体的には、データマネージメント等?
  • データの品質管理

の分野が、未発達・これから伸びると踏んでいるようです。

 

他の人の感想

 

Amazon(.com)だと評判良くて結構売れているようです

Amazon.comのランキング高い

O'reillyのSafariでも評判良さげです

 

 

 

日本の方ですとtoosh2230さんが感想をまとめてくださっています。

ts223.hatenablog.com