Postgres Analytics Accelerator(PGAA)1.7.0

日本語訳|Postgres Analytics Accelerator 1.7.0

※GoogleのAutoML Translationを使用して翻訳しております。

英語原文|Postgres Analytics Accelerator 1.7.0

概要

1. PGAAとは
Postgres Analytics Accelerator (PGAA) は、EnterpriseDB (EDB) によって開発されたPostgreSQL向けの高性能な拡張機能です。オペレーショナルデータベース(OLTP)とデータレイク(OLAP)の間のギャップを埋めるように設計されています。

統合プラットフォームとして機能することで、PGAAはPostgresが Apache Iceberg、Delta Lake、Parquet などの最新のオープンテーブルフォーマットで保存された大規模データに直接クエリを実行したり、書き込んだりすることを可能にします。これにより、標準のPostgresインスタンスが効果的にレイクハウスのゲートウェイへと変化し、ユーザーは標準的なPostgres SQLを使用してペタバイト規模のデータレイクとやり取りできるようになります。

2. PGAAを使用するメリット
PGAAを使用することで、組織には以下のような戦略的および運用上の利点がもたらされます。

  • 統合されたエコシステム: ユーザーはPostgresから直接、データレイクに対して複雑な分析クエリを実行できます。コンテキストを切り替えたり、新しいクエリ言語を学んだり、Postgresのエコシステムから移行したりする必要はありません。
  • 複雑なETLの排除: ゼロタッチのデータライフサイクル管理を実現します。重くて遅いバッチETLプロセスに依存することなく、データが存在する場所で直接クエリを実行したり、オペレーショナルデータをデータレイクにストリーミングしたりできます。
  • 大幅なパフォーマンス向上: 標準的なPostgresの行単位(行指向)の処理をバイパスし、数十億行のデータを効率的に処理できる分析スピードでクエリを実行します。
  • コスト効率とストレージの最適化(階層化): 「ホット」な(直近の)オペレーショナルデータは高価で高速なローカルSSDに保持したまま、「コールド」な(履歴)データを安価なオブジェクトストレージ(S3、GCS、Azure)へピンポイントでオフロード(退避)することができます。
  • リアルタイムHTAP(ハイブリッドトランザクション/分析処理): Postgres Distributed (PGD) と組み合わせることで、本番環境のOLTPパフォーマンスに影響を与えることなく、ライブのトランザクションデータの高精度なカラムナ(列指向)分析用レプリカをバックグラウンドで維持できます。

3. PGAAはどのようにしてこれらのメリットを実現しているか
PGAAは、コンピューティングとストレージを分離したアーキテクチャと、特化した実行エンジンによってこれを実現しています。

  • ベクトル化実行エンジン (Seafowl): Postgresの標準的な行単位の処理の代わりに、PGAAのデフォルトエンジン(Seafowl)はデータをカラムナバッチ(ベクトル)で処理します。これにより、CPUキャッシュの効率が最大化され、最新のCPU命令(SIMD)を活用して高速な数学演算を実行します。
  • DirectScanとコンピュートプッシュダウン: PGAAはPostgresのクエリプランナにフックします。クエリがデータレイクを対象としている場合、PGAAは DirectScan を使用して、ワークロード全体(フィルタリング、結合、集計)を分析エンジンにプッシュダウン(押し下げ)します。最終的な小さな結果セットのみがPostgresに返されます。
  • Apache SparkとGPUによる究極のスケーラビリティ: ペタバイト規模のデータセットや重いETL処理の場合、PGAAはSpark Connectを介してリモートのApache Sparkクラスターに実行をオフロードできます。さらに NVIDIA RAPIDS もサポートしており、何千ものGPUコアにまたがる並列実行が可能です。
  • PGFS (Postgres File System): AWS S3、Google Cloud Storage、Azure Blob Storageへの安全で回復力のある接続を処理する、クラウドネイティブなストレージ抽象化レイヤーです。
  • 多層キャッシング: ネットワークの遅延に対処するため、PGAAはオブジェクトストアのデータブロック、メタデータのマニフェスト、およびテーブルの統計情報を高速なローカルSSDにキャッシュし、繰り返し実行されるクエリを瞬時に処理できるようにします。
  • PGD AutoPartitionとの統合: データのライフサイクルを自動化します。データが特定のしきい値を超えて古くなると、AutoPartitionが自動的にデータレイクへ一括コピーし、IcebergやDeltaフォーマットに変換し、ローカルのディスク領域を解放します。その間もデータは継続してクエリ可能な状態に保たれます。

4. バージョン 1.7.0 の新機能
バージョン 1.7.0(2026年3月リリース)では、いくつかのパフォーマンス向上、新機能、および修正が導入されています。

  • ネイティブなIcebergコンパクション: pgaa.launch_task() 関数を使用することで、PGAAのネイティブなバックグラウンドワーカーを介して直接Icebergテーブルのコンパクション(最適化)メンテナンスを実行できるようになりました。以前はこれを行うために外部のApache Spark統合が必要でした。
  • PGDレプリケーションの大幅な高速化: 同期ライターをPGAAエンジンに移行したことにより、Postgres Distributed (PGD) への1秒あたりのレプリケーショントランザクション(TPS)が 2倍〜2.5倍に増加 しました。
  • メモリ管理の強化: ライターのフラッシュ基準となるメモリ制限を管理者が詳細に制御できるようにする新しい設定パラメータ(pgaa.max_in_memory_mb)が導入されました。
  • ストレージ認証の拡充: 自動化されたクレデンシャル発行(IAMロールなど)をサポートしていないストレージバックエンド向けに、静的クレデンシャルのサポートを追加しました。
  • 新しいベンチマークツール: pgbenchに似た合成レプリケーションベンチマーク関数(pgaa._bench_replication)が追加され、エンドツーエンドのベンチマークスクリプトが統合されました(pgaabench.sh)。
  • バグ修正: 永続的なLSN(ログシーケンス番号)の昇格を妨げていた問題が解決され、DirectScanエンジンにおける日付/期間の減算時の計算エラーが修正されました。
  • 非推奨化(Deprecations): pgaa.execute_compaction() 関数は公式に非推奨となり、今後は pgaa.launch_task() に置き換えられます。