Polaris 1.0.0 release note

Apache Polaris (incubating) 1.0.0が7月9日にリリースされました!原文はこちらです。 https://polaris.apache.org/downloads/#100

ハイライト

  • 初の正式リリース パブリックベータ0.9.0を経て、実運用のワークロードに対応できる最初の正式リリース
  • バイナリの配布 単一でダウンロード可能な.tgzまたは.zipアーティファクトによる初のリリース
  • Helm Chart 公式のHelmチャートが登場し、Kubernetesへのデプロイがシームレスに

新機能 & 改善点

  • ポリシーストア スキーマ進化に対応した永続化、組み込みのTMSポリシー(データ圧縮、スナップショットの期限切れなど)、REST CRUD エンドポイントを提供
  • Postgres JDBC永続化 堅牢な同時変更サポートを備えたネイティブJDBCバックエンド
  • コンフリクト時のコンパクションロールバック コンパクション中に問題が発生した場合は処理をロールバックし、データを実際に追加・削除している書き込み処理が成功できるようにする。コンパクションを常に優先度の低い処理として扱うような仕組み。
  • 強化されたランタイム Quarkusを採用した新しいランタイムで、Kubernetesへの即対応、起動の高速化、OIDC統合、その他多くのメリットを実現。Polarisサーバーおよび管理ツールがQuarkusをランタイムフレームワークとして使用するようになった。
  • ETagによるHTTPキャッシュ loadTableエンドポイントがETagをサポートし、帯域幅削減および体感的なレイテンシ改善を実現
  • 外部IdP(Identity Provider)サポート Polarisが独自のIdPとして動作できるだけでなく、外部IdPに委譲することも可能に
  • スナップショットフィルタリング クライアントが参照されているスナップショットのみを読み込むことが可能に
  • カタログフェデレーション(実験的) 外部Iceberg RESTカタログやHadoopカタログへのリクエストをフェデレーションできる機能
  • ジェネリックテーブル(実験的) Iceberg以外の複数のテーブルフォーマットを提供。初期のSpark 3.5プラグインがDelta Lakeをサポート
  • イベントリスナーフレームワーク(実験的) カタログイベント(AfterTableCommitedEventBeforeViewCommitedEventなど)の通知を受け取り可能に

主なバグ修正

  • CLIおよびPythonクライアントの改善 新機能対応、updateサブコマンドの変更、各種修正
  • 安全な設定 ユーザーが提供した設定項目と名前を衝突させないよう、カタログレベルのPolarisの設定項目をより厳格な命名規則へと変更。従来のPolaris設定名も1.0では引き続きサポート
  • TableOperationsの最適化 BasePolarisTableOperationsの変更により、コミット時のオブジェクトストレージへのトラフィックが削減
  • エンティティキャッシュのメモリ使用量を抑制 エンティティキャッシュがメモリ使用量を管理するようになり、OOM(Out Of Memory)の発生リスクが低減
  • ブートストラップの修正 ユーザーが新しいRealmをより簡単にブートストラップできるように変更。ルート認証情報はユーザーによる指定、Polarisによる生成のどちらも可能。

互換性に影響する変更

  • サーバー設定 Polarisサービスの設定フォーマットが、Quarkusへの移行と設定変更に伴い、0.9から変更
  • ブートストラップフロー Quarkusへの移行と新しい管理ツールにより、0.9で使われていたブートストラップフローが変更