Apache Iceberg のロゴ

Apache Iceberg / リリースノート / 2026/03/10 / 重要

Apache Iceberg Rust 0.9.0 リリース解説: storage abstraction と DataFusion 書き込みがさらに前進

セキュリティ

公式リリースノート

Apache Iceberg Rust 0.9.0 は、storage abstraction、DataFusion SQL、reader パフォーマンス、decimal precision、REST カタログ セキュリティ などを進めるリリースです。公式記事では、2026年1月上旬から3月上旬までの開発成果として、109件の pull request、28人の contributor、8人の new contributor が紹介されています。

要点

  • 新しい trait-based storage architecture により、storage backend を core ライブラリ から切り離しやすくなった
  • LocalFsStorage と MemoryStorage が native implementation として入り、OpenDAL storage は別 crate に移された
  • DataFusion では CREATE テーブル、DROP テーブル、上限 / predicate pushdown、INSERT INTO が強化された
  • Arrow reader は byte range coalescing、single-threaded fast path、メタデータ size hints などで I/O overhead を減らす方向へ進んだ
  • fastnum への置き換えにより、Iceberg spec が求める 38-digit decimal precision を満たす
  • sensitive headers を error ログ から除外する REST カタログ セキュリティ fix も含まれる

今回の更新で何が変わるのか

Rust 0.9.0 の最大の変化は、storage backend を trait-based architecture で扱うようにしたことです。Storage trait が ファイル I/O の 拡張点 になり、LocalFsStorage と MemoryStorage が native implementation として追加されました。OpenDAL-based storage は iceberg-storage-opendal crate に移され、core ライブラリ を軽く保ちながら optional dependency として OpenDAL サポート を維持する構成になっています。

DataFusion 連携 では、CREATE テーブル と DROP テーブル を DataFusion SQL から扱えるようになり、上限 pushdown、Boolean / IsNaN / Timestamp / Binary / LIKE / StartsWith predicates の pushdown、INSERT INTO による Iceberg テーブル への書き込み、partitioned writes に対する sort-based clustering が加わっています。DataFusion を query engine として使う環境では、Iceberg テーブル がより native な対象になっていく流れです。

Reader パフォーマンス では、byte range coalescing、single-concurrency fast path、Parquet メタデータ size hint、ファイル size propagation、builder overhead reduction など、細かい I/O overhead を減らす変更が並びます。さらに rust_decimal から fastnum へ移行し、Iceberg specification に必要な 38-digit decimal precision に対応した点は、金融・会計・高精度数値を扱う テーブル で重要です。

対象になりそうなユーザー・チーム

  • Rust / DataFusion ベースの analytical runtime を開発しているチーム
  • Iceberg テーブル への write path を Rust から扱いたい開発者
  • storage backend を独自に差し替えたい platform エンジニア
  • decimal precision、predicate pushdown、REST カタログ セキュリティ を重視するデータ基盤チーム

実務でまず確認したいこと

  1. OpenDAL storage 依存が iceberg-storage-opendal への分離に対応できるか確認する
  2. Rust 1.92.0 への MSRV 引き上げが CI / build image と衝突しないか見る
  3. Decimal 型を使う テーブル で 38-digit precision と hashing の挙動を検証する
  4. DataFusion SQL からの create / insert / pushdown が自社 workload で正しく効くか確認する
  5. REST カタログ error logging に 認証情報 が残らないことを確認する

どう読むべきか

Rust 0.9.0 は、Iceberg Rust をより production-oriented な component に近づける release です。特に storage abstraction と DataFusion SQL サポート は、今後の Rust-native lakehouse stack に効いてきます。一方で storage architecture、MSRV、decimal implementation には 破壊的変更 があるため、既存利用者は dependency と runtime の棚卸しをしてから上げるのが安全です。