Apache Iceberg のロゴ

Apache Iceberg / リリースノート / 2026/01/26 / 通常

Apache Iceberg C++ 0.2.0 リリース解説: REST Catalog と table operation が実用域へ近づく

公式リリースノート

Apache Iceberg C++ 0.2.0 は、C++ 実装が Iceberg metadata を読めるライブラリ から、テーブル scan、テーブル update、REST カタログ、expression 評価まで含む実装へ進むリリースです。公式記事では、200件以上の pull request と 23人の contributor による更新として紹介されています。

要点

  • v2 delete と メタデータ column read を含む テーブル scan / data access が強化された
  • スキーマ evolution、テーブル property、sort order、partition spec、location、statistics などの テーブル update に対応した
  • REST カタログ client が namespace 操作と テーブル CRUD を広く扱えるようになった
  • expression framework、metrics evaluator、residual evaluator など、scan 計画 に必要な土台が増えた
  • 0.3.0 に向けた継続開発が進んでおり、C++ 組み込みや native engine からの Iceberg 利用に関係する

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

C++ 0.2.0 の中心は、Iceberg テーブル を C++ から安全に扱うための基礎機能が一気に増えたことです。テーブル scan では v2 delete、メタデータ column、manifest reader の projection / filtering、Arrow C Stream 連携 を伴う ファイル scan task reader が入り、単に メタデータ JSON を読む段階から実際の scan 計画 に近づいています。

テーブル operation では スキーマ evolution、properties、sort order、partition spec、location、statistics の更新、さらに fast append を含む transaction API が示されています。Iceberg では snapshot と メタデータ 更新の整合性が重要なので、C++ 側で テーブル update と transaction の土台が整うことは、native engine や組み込み処理から Iceberg テーブル を扱ううえで意味があります。

REST カタログ の対応も大きいです。namespace 操作、create / load / drop / list / update / stage-create テーブル operation、連携 テスト coverage が入ったことで、カタログ interoperability の話が C++ 実装にも広がります。

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

  • C++ ベースの query engine、storage engine、組み込み分析基盤を開発しているチーム
  • Iceberg テーブル を Java / Spark 以外の runtime から直接扱いたい開発者
  • REST カタログ を中心に multi-engine Iceberg 運用を考えている platform team
  • native execution や Arrow C Stream 連携を重視するデータ基盤チーム

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

  1. 自社の利用 engine が C++ Iceberg 実装を直接使う計画を持っているか確認する
  2. v2 delete、スキーマ evolution、transaction API など、必要な テーブル semantics がどこまで実装されているか見る
  3. REST カタログ と既存 カタログ の compatibility を検証する
  4. production 利用では、0.2.0 の範囲と次の 0.3.0 ロードマップ を切り分けて判断する

どう読むべきか

このリリースは、今すぐ全ての C++ ワークロードで Iceberg が完成した、という話ではありません。むしろ、native implementation が テーブル scan、カタログ、メタデータ update、expression 評価 の主要部品をそろえ始めたことが読みどころです。Iceberg を複数言語・複数エンジンで共通 テーブル format として使うなら、C++ 実装の成熟は将来の engine 連携 に効いてきます。