Postgres Analytics Accelerator(PGAA)1.8.0

日本語訳|Postgres Analytics Accelerator 1.8.0

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

英語原文|Postgres Analytics Accelerator 1.8.0

概要

1. PGAAとは?
Postgres Analytics Accelerator (PGAA) は、標準のPostgresを強力な分析エンジンへと変革する、EnterpriseDB (EDB) 提供の高性能な拡張機能です。Delta Lake、Apache Iceberg、Parquet といったオープンテーブルフォーマットで保存された大規模データをPostgresからネイティブにクエリできるようにすることで、運用データベース(OLTP)とデータレイク(OLAP)間のギャップを埋めます。

大規模なデータセットをPostgres内で行ごとに処理する代わりに、PGAAは負荷の高い分析クエリを、分離・高度に最適化されたベクトル化実行エンジン(SeafowlやApache Sparkなど)にオフロードします。これにより、企業は使い慣れたPostgresエコシステムから離れることなく、データレイクに対して直接複雑な分析ワークロードを実行できるようになります。

2. PGAAの主な機能

  • 最適化された実行エンジン: ベクトル化されたシングルノード実行のデフォルトとして Seafowl(ステートレスなDataFusionベースのエンジン)を使用します。マルチテラバイトやペタバイト規模のワークロードに対しては、NVIDIA RAPIDSプラグインを介したGPUアクセラレーションを含む、分散型 Apache Spark クラスターへのオフロードをサポートします。
  • インテリジェントなクエリルーティング: 2つの実行モードを採用しています。最高速度を得るためにクエリを分析エンジンに完全にオフロードする DirectScan と、特定のPostgresネイティブ関数やローカルでの結合が必要な場合に、事前フィルタリングされたデータをPostgresにストリームバックするハイブリッドモードの CompatScan です。
  • クラウドオブジェクトストレージの統合: Postgres File System (PGFS) レイヤーを使用して、AWS S3、Google Cloud Storage (GCS)、Azure Blob Storageにシームレスに接続します。
  • オープンテーブルフォーマットとカタログのサポート: Parquet、Iceberg、Delta Lakeフォーマットをネイティブにクエリします。Iceberg REST(例: Snowflake Polaris、Tabular)や AWS S3 Tables などの外部メタデータカタログとシームレスに統合します。
  • 自動データ階層化 (PGD連携): Postgres Distributed (PGD) と組み合わせることで、管理者は「階層化テーブル(Tiered Tables)」を作成できます。頻繁にアクセスされるホットデータは高速なローカルSSDに保持され、古いパーティションは経過時間のしきい値に基づいて自動的にコールドオブジェクトストレージにオフロードされます。
  • HTAP (ハイブリッドトランザクション/分析処理): トランザクションのスループットに影響を与えることなく、ローカルのトランザクションヒープテーブルを列指向オブジェクトストレージへ継続的かつほぼリアルタイムにレプリケーション(IcebergのMerge-on-Readを使用)させることができます。
  • データエクスポート (CTAS): CREATE TABLE AS SELECT (CTAS) をネイティブにサポートし、ローカルのPostgresテーブルのエクスポート、変換、結合を行い、その結果を直接クラウドデータレイクに書き込むことができます。

3. PGAAのメリット

  • 統合されたデータエコシステム: 断片化したデータサイロの必要性を排除します。ユーザーは、Postgresから直接標準SQLを使用して、運用データと過去の分析データの両方にアクセス、クエリ、管理ができます。
  • 大幅なコスト削減: 履歴データや分析データを安価なクラウドオブジェクトストレージにオフロードすることで、プライマリデータベースに必要となる高価なローカルSSDストレージの容量を劇的に削減できます。
  • ゼロETLとリアルタイムの洞察: データレイクへの継続的なバックグラウンドレプリケーションにより、従来のバッチETLパイプラインのような遅延や運用のオーバーヘッドなしに、BIツールや分析クエリが常に最新のデータにアクセスできるようになります。
  • 大規模環境での高性能: 列指向ストレージの圧縮、SIMD CPU命令(ベクトル化実行)、およびオプションのGPUアクセラレーションを活用し、標準のPostgresの最大100倍の速度で複雑な結合や集計を処理します。
  • 自動化されたストレージ管理: AutoPartitionやバックグラウンドのメンテナンス・タスク(コンパクション、Z-Ordering、Vacuumingなど)により、データの「ゼロタッチ」なライフサイクルが提供され、データベースを無駄なく高性能に保ちます。

4. バージョン 1.8.0 の新機能

  • ストレージロケーションにおけるパーティションテーブルのUNIONビュー: 以前はRESTカタログでのみサポートされていたパーティションテーブル上のUNIONビューが、標準のファイルベースのストレージロケーション(Storage Location)カタログでもサポートされるようになりました。
  • CTASの進捗レポート: 実行時間の長い CREATE TABLE AS SELECT 操作において、100万行ごとまたは10分ごとに NOTICE メッセージが出力されるようになり、ユーザーがクエリの進捗状況をより明確に把握できるようになりました。
  • EPAS向けのクエリプッシュダウンの改善: Seafowlエンジンが、一般的な EDB Postgres Advanced Server (EPAS) 固有の関数を認識するようになりました。以前はOracle互換構文のために低速なCompatScanにフォールバックしていたクエリが、完全なDirectScanアクセラレーションの恩恵を受けられるようになりました。
  • 未サポートデータ型のレプリケーション強化: いくつかのPostgresの配列型からデータレイクへのネイティブなレプリケーションが改善されました。マッピングされていない配列型は、単一のテキスト値に結合されるのではなく、文字列の配列として安全にレプリケーションされるようになりました。
  • 新しい管理関数: pgaa.seafowl_version() が導入されました。これにより、ビルド時間、コミットハッシュ、有効になっている機能など、Seafowlエンジンの詳細情報が返されます。
  • 内部インフラのアップグレード:
    • 安定性とクエリパフォーマンス向上のため、Apache DataFusion 52 にアップグレードしました。
    • 内部のバッチ追加操作を最適化し、PGDの初期ロードおよびCTASのパフォーマンスを高速化しました。
    • カタログベースのターゲット向けに、レプリケーションのベンチマーク機能を拡張しました。
  • 重要なバグ修正: PGAAが管理するテーブルでの pg_dump 失敗の問題、0行を返すCTASクエリの正しい処理、および相関サブクエリで誤った結果を引き起こす可能性があった過剰なクエリプッシュダウンの修正などに対応しました。

AI

次の記事

AI Database(AIDB)7.3.2