@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「データプラットフォーム技術バイブル」を読んだ

本屋に出かけたら売っているのを見かけたので気になったので読んでみた。

目次は以下。

Chapter 1:データプラットフォーム概論
Chapter 2:データプラットフォームの構成要素
Chapter 3:ログ転送
Chapter 4:データ変換・転送(バッチ編)
Chapter 5:データ変換・転送(ストリーミング編)
Chapter 6:データプロビジョニング
Chapter 7:データマネジメントを支える技術
Chapter 8:要件分析
Chapter 9:データプラットフォームの構築
Chapter 10:データプラットフォームの改善

データプラットフォームを構築する理由や価値などから始まり、コア技術がいくつか紹介されている。コア技術としてはログ転送、ETLバッチ処理、ストリーミングなどのデータ転送に関することから、データ提供方法としてのBIツールの説明、データ品質や管理についてが順番に紹介されている。その後、データプラットフォームにおける要件分析、要件を踏まえてプラットフォーム構築のプロジェクトをどうするか、そしてプラットフォームを改善していく話がされている。
データプラットフォームについて幅広い内容が紹介されているので誰が読んでも学びがあると思う。

本書の中では何回も出てくる用語があり、以下は今後喋るときに使うだろうなと思った。

■DIKWモデル
Data ⋯ 生データ。単体では意味をなさない。
Information ⋯ 組織化または構造化されたデータ。単体では単なる数字や文字列。コンテキストにしたがって整理すると意味をなす。
Knowledge ⋯ より抽象度の高い概念。普遍的な情報としてなす。人の分析・洞察を加えた情報。
Wisdom ⋯ さらに概念的なもの。知識をもとに発揮できる価値。

メダリオンアーキテクチャ
Bronze(DIKWモデルData領域) ⋯ 生ログ。データソースそのまま極力変更しないデータ領域。
Silver(DIKWモデルInformation領域) ⋯ クレンジング/一次集計テーブル。データ構造の仕様変更などに追随するバッファとなるデータ領域。
Gold(DIKWモデルKnowledge領域) ⋯ 最終集計テーブル。ビジネス価値が観測できる多くのドメイン知識を有するデータ領域。

このあたりを考えながらデータプラットフォームをきれいにしてみたいなというお気持ちは湧いた。
どこかで試してみたりはしたいので軽くお仕事できるところなどがあったら少しずつお仕事探しでもしてみるかどうするか。

本書の中ではSpark とDelta Lake の話が結構多いなという印象があった。OTF(Open Table Format) に関してはIceberg の方が使われていること多かったりするのではと勝手に思っていたのでなんかそこについては面白ないなと思いながら読んでいた。
Spark は昔から残っている技術な気がしているのだけど、最近久しぶりに触ってみるとやはり便利だなと思っている。
バッチのデータ連携をどういったシステムで動かすのが良いかを考えることが最近多いのだが、DB から抜く連携については結局JDBC ドライバで接続して取得だけで良いのかなと考えていることが多い。 取得したファイルを保存・連携する際には分散して早めに終えたいなどあるのでSpark で処理を考えてみようと思っている。

また最近Iceberg フォーマットのファイルをテーブルとして使うことも考えている。DWH を複数使う際にも同じデータを見ることができるや、処理するためにDWH からデータをファイルに出力する必要などもなくなるのでLakehouse アーキテクチャにしてみたいなという思いもある。 一回動き出すとデータプラットフォームはDWH を変えるタイミングなど以外では大きな変更をすることが少ない気もするが徐々に新しいアーキテクチャにしておきたないと思っている。

まとめ

  • データプラットフォームについて幅広い内容が書かれている
  • 取り上げられている技術要素が沢山なので知識としてまとめておけた
  • 自分たちのプラットフォームに取り入れて改善していきたい

地味に久しぶりに読んで良かったなと思ったのはビッグデータ処理のアーキテクチャパターンが少しだけど書かれていたので懐かしかった。最近はなにそれと思う方とも話すことがある。名前くらいは知っておいてもらえると嬉しいなと思うことがあるのでLambda アーキテクチャ、Kappa アーキテクチャの部分を是非とも読んでおいてももらえると嬉しいな。