@hihihiroroのLog

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

「Delta Lake徹底入門」を読んだ

最近オープンテーブルフォーマットに興味があるのでちょうど出ていたので読んでみた。

目次は以下。

Chapter1 データアーキテクチャの進化
Chapter2 Delta Lake入門
Chapter3 Deltaテーブルの基本操作
Chapter4 テーブルの削除、更新、マージ
Chapter5 パフォーマンス・チューニング
Chapter6 タイムトラベルの利用
Chapter7 スキーマの取り扱い
Chapter8 ストリーミングデータに対するオペレーション
Chapter9 Delta Sharing
Chapter10 Delta Lake上でのレイクハウス構築

Databricks を触っているのだが速度が早いなと思うことが多かった。そのため、データについてどう扱っているのかが気になったこともあり読んでみた。
まずはデータアーキテクチャについての話が書かれており、レイクハウス構成にすることのメリットなどが説明されている。

そのあとDelta Lakeの特徴についてやそれぞれのファイルについての説明が作業を含めながら書かれている。その通りにコマンド実行していくと、どのようにデータやログが追加、削除されていくのかを追って確認できるのでわかりやすかった。トランザクションログの管理によってACIDトランザクションのサポートがうまくされているなと思った。
また、これらを利用したテーブルへの基本操作も説明されているので実運用についても少しだけ考えることができたのは良かった。

それ以外にもパフォーマンス・チューニングのためのデータスキッピング、パーティション分割、コンパクトファイル、ZORDER BYそれにリキッドクラスタリングについての説明されているのが勉強になった。データ量が膨大になっていった際に気をつけるべきことや機能について読むことができて面白かった。スモールファイル問題などDelta Lake に特別でない問題についても勉強になることがあるので他のシステム触るときにも参考にしたいと思う。

また、Unity CatalogやDelta Sharingなどの周辺機能も説明されていた。それ以外にもストリーミングデータに対する詳細と例について説明もされていた。バルクだけではなくストリーミングも合わせて使えるのは強みだなと思った。さらには動的にスキーマ更新をする動きを見ることができたのも面白かった。スキーマはこっそりと変わってしまうとがあったりするのでとても役立ちそうだなと。

Delta Lake Universal Format によってIceberg やHudi との相互運用もできるようになっていくらしい。それぞれのオープンテーブルフォーマットをどう選ぶのが良いのかは今後も学んでいかないとだな。

まとめ

  • Delta Lake のファイル内部について丁寧に説明されていた
  • Python/Sparkコードを用いたチュートリアルが少しあるので動作できて面白かった
  • 今後のバージョンについても書かれており進化が楽しみだな