Accelerating with Spark
=======================

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

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

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

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

.. csv-table::
  :header: Feature,Seafowl,Spark Connect
  :widths: 12,25,15
  :align: left
  :class: longtable

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

.. toctree::
  :maxdepth: 3

  spark--spark-only
