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環境が既にあり、既存のコンピューティングクレジットを活用したいと考えています。