Accelerating with Spark#

デフォルトでは、 Postgres Analytics AcceleratorPGAAは、組み込み分析エンジンであるSeafowlを使用してクエリを高速化します。ただし、単一のPostgresインスタンスのリソースを超える大規模なデータ処理の場合、Spark Connectを介してリモートのApache Sparkクラスターに実行をオフロードできます。

Spark Connectは、Sparkドライバーからアプリケーションを分離するApache Sparkのシンクライアントサーバープロトコルです。高速ブリッジとして機能し、Postgresはクエリ指示をリモートの分散Sparkクラスターに送信できます。これにより、データベースと同じマシンでSparkを実行する必要がなく、外部クラスターの膨大な計算能力を活用できます。

エグゼキューターエンジンの選択#

pgaa.executor_engine 構成パラメーターは、分析クエリの重労働が発生する場所を決定します。

Feature

Seafowl

Spark Connect

Architecture

Runs as a process alongside Postgres.

Connects to an external Spark cluster.

Best for

Small to medium datasets, low latency.

Petabyte-scale data, heavy ETL/Z-Ordering.

Scalability

Limited by the host machine's RAM/CPU.

Distributed across multiple worker nodes.

Complexity

Zero-config; starts automatically.

Requires a running Spark Connect endpoint.

Performance

Faster for single-node data skipping.

Faster for massive joins and aggregations.

Sparkに切り替えるのはどのような場合ですか?#

Seafowlは、単一ノードでのパフォーマンス向けに高度に最適化されていますが、次の場合にSpark Connectへの切り替えを検討する必要があります。

  • メモリ制約 集計または結合がpgaa.autostart_seafowl_max_memory_mb 制限に到達しています。

  • メンテナンスが多い デルタまたはアイスバーグテーブルでZオーダーまたは大規模なコンパクションなどのリソースを大量に使用する操作を実行しています。

  • 集中コンピューティング 管理対象Spark環境が既にあり、既存のコンピューティングクレジットを活用したいと考えています。