Apache Iceberg meetupの会場手配や発表をしていたおかげか、著者の方から 書籍 「実践Apache Iceberg」を恵贈いただきました。 ありがとうございます、早速読ませていただいたのでその感想をお礼に返させていただきます。
一言感想
私は昨年、2024年の夏くらいから Apache Iceberg を使ったアプリケーションの開発を行なっていたのですが、 その時にこの本があれば! と強く思う内容でした。 これからデータ基盤やIcebergを扱っていく開発者野方への入門と応用どちらにも対応できるし、 母国語で与える良質な情報は貴重です。チームメンバーにもお勧めしていきます。
もっと詳しく
なんらかの技術やライブラリ、フレームワークを調べたいとき、それらの公式サイト、つまり一次情報にあたるのは大事です。 自分もそれを大事にしていますが、自分の知識が足りてない場合には公式サイトを見てもよくわからないことがあります。
昨年の開発を始めた頃の自分がまさにそうで、Icebergってなんかいい感じのデータベースなんでしょ? くらいに思ってたので、テーブルフォーマットと聞いてもぴんとこなかった覚えがあります。
全体のアーキテクチャ的な内容もあまり書かれてないし。
当時は著者の一人である べりんぐさんの Icebergの記事には大変お世話になりました。
他に、国内の導入事例を見たり、いくつか実際に Iceberg + trino のサンプルを動かしてみて、ようやくIcebergとそれを取り込むエコシステムで成り立つデータ基盤というものがわかってきたという記憶があります。
「実践Apache Iceberg」は三部構成になっています。
第一部はIcebergの基礎知識を学ぶことができます。
上で述べた去年の私のような、データ基盤何もわからないという人でも、データ基盤の技術の変遷やIcebergの特徴などを実際に試しながら理解できると思いました。 実際に手を動かしてみて、クエリの結果や生成されるデータファイルやマニフェストファイルの内容もわかるので、理解度が深まると思います。
第二部は、Icebergの重要コンポーネントであるカタログと、クエリエンジンについて。
クエリエンジンはSpark, Flink, Trino, Hive, PyIceberg それぞれについてサンプルコードやクエリ例が豊富で、こちらも実際に動かせるので良いですね。 個人的にはあまり調べてこなかった Spark, Flinkについての解説があるのが良かったです。
Spark が現時点では一番Icebergを使いこなせそうなのと、Flinkの加工が可能なストリーミング処理については今の自分の仕事にも活かせそうです。
あとは PyIcebergにもページを割いてあるのは個人的には良かったです。
クエリエンジンの運用はなんだかんだ大変なので、PyIcebergのように単一のプロセスでIcebergのデータが扱えたり、Pandasと連携できるのは嬉しいですね。
第三部は本書で自分が一番良かったと思うところで、Icebergの様々なユースケースが紹介されています。
データパイプライン、CDC、SCD(履歴データ生成)、WAPパターンによるデータ品質管理、といった各ユースケース、AWSでの応用例、メンテナンスやモニタリングなどの運用、パフォーマンスチューニングについて、など実際に Iceberg を用いたアプリケーションを運用・維持していくために必要なことが書かれています。
個人的に良かった内容は次のとおりです。
- Change Log View による変更履歴データの生成
現時点ではSparkでしか使えないが、データの信頼性や監査のための強力な機能であると感じた。
- ブランチ機能を使ったWAP(Write-Audit-Publish)パターンによるデータ品質管理
Icebergのブランチ機能がある意味がいまいちわかっていなかったが、品質基準を満たしたデータだけを見せたいという場合に有効
- パフォーマンスチューニングの章
パーティションニングやソートについてのまとまった日本語解説があること自体が貴重。
得に SortSpec やz-orderなどの解説は貴重であり、大量データや多数の検索要件があるデータについての設計に立ち向かえそうだと感じました。
個人的にこれがあると良かったなと思うのは、
- データ基盤をシステムに組み込む際に、認証やセキュリティ、バックアップなどの非機能要件をどうするかといった点
- クエリエンジンに関するチューニングなどもあると良かった
くらいです。ただまぁこの辺りはケースバイケースな話も多いし、クエリエンジンの内容を深掘りするとなると誌面の限界もありますしね。
というわけで、ありがとうございました。 広大なデータ基盤技術の俯瞰ができて、歩き方がわかる良い本だと思います。 ありがとうございました。