Configuration parameters

目次

Configuration parameters#

このリファレンスガイドでは、 Postgres Analytics AcceleratorPGAA拡張機能が提供する構成パラメーターについて説明します。これにより、実行エンジンの調整、リモート接続の管理、およびデータレイク全体のクエリパフォーマンスの最適化ができます。

エグゼキューターエンジン#

pgaa.executor_engine#

分析操作の実行を担当するコンピューティングバックエンドを決定します。

サポートされている値はseafowl 、およびspark_connect です。

デフォルトはseafowl です。

pgaa.spark_connect_url#

Spark Connectサービスの接続エンドポイントを定義します。リモートSpark ConnectサービスのURLを指定します。 pgaa.executor_engine がspark_connect に設定されている場合、この設定は必須です。

値は、特定のSpark Connect URI形式sc://<host>:<port> に従う必要があります。

デフォルトはNULL です。

pgaa.spark_connect_extra_config#

pgaa.executor_engine= 'spark_connect' を使用する場合、詳細な調整パラメーターとランタイム設定をJSONオブジェクトとしてSparkセッションに直接提供します。オプションのリストについては、 Spark Connect configuration を参照してください。

例

SET pgaa.spark_connect_extra_config = {
    "spark.sql.execution.arrow.maxRecordsPerBatch": "65536"
};

デフォルトはNULL です。

クエリー動作#

pgaa.enable_direct_scan#

分析テーブルのクエリ実行戦略を制御します。 PGAAがクエリ全体を最適化されたSeafowl エンジンにオフロードしようとするか、標準のPostgres互換性レイヤーを使用して処理するかどうかを決定します。

デフォルトはon で、これは、PGAAがCompatScanにフェイルオーバーする前に、最初にDirectScanを試行することを意味します。

pgaa.direct_scan_fail_behavior#

ダイレクトスキャンが試行されたが、サポートされていないSQL機能または構文のために完了できなかった場合のシステムの反応を定義します。

サポートされている値は次のとおりです。

  • ignore システムはサイレントにCompatScanにフォールバックします。

  • warn デフォルト クエリは互換性フォールバックを使用して実行されますが、PostgresはDirectScanが失敗したことを示す警告通知を発行します。

  • error DirectScanを使用できない場合、クエリの実行は完全に中止されます。

DirectScanが要求されたが失敗した場合の動作、 ignore 、warn 、error のいずれか。デフォルトはwarn です。

pgaa.enable_join_pushdown#

CompatScanでは、分析テーブル間の結合操作の最適化戦略を制御します。結合をPostgres内でローカルに処理するか、リモート実行エンジン Seafowl またはSparkにオフロードするかどうかを決定します。

デフォルトはon です。

pgaa.enable_groupby_pushdown#

CompatScanでは、集計操作SUM 、COUNT 、AVG 、GROUP BY などをリモート実行エンジンSeafowl またはSparkにオフロードしようとします。

デフォルトはon です。

pgaa.enable_orderby_pushdown#

CompatScanでは、 ORDER BY および定数LIMIT / OFFSET を制限されたトップN操作としてリモート実行エンジン Seafowl またはSpark にオフロードしようとします。

デフォルトはon です。

pgaa.enable_distinct_pushdown#

CompatScanでは、 SELECT DISTINCT をリモート実行エンジン Seafowl またはSparkにオフロードしようとします。

デフォルトはon です。

!!!注 pgaa.enable_distinct_pushdown はWarehousePGには適用されません。そこでは、MPPプランナーがPGAAのプッシュダウンステージが実行される前に、スキャン上のモーションとHashAggregateでDISTINCT を重複排除します。

pgaa.enable_window_pushdown#

CompatScanでは、ウィンドウ機能をリモート実行エンジンSeafowl またはSparkにオフロードしようとします。

デフォルトはon です。

pgaa.ctas_intermediate_flush_size#

PGAA管理テーブルへの大規模なINSERT またはCREATE TABLE AS (CTAS) オペレーション中のバッチ動作を制御します。

デフォルト8192です。

pgaa.max_in_memory_mb#

ストレージへの強制的なフラッシュがトリガーされる前に、ライタがデータのバッファーに利用できるメモリの最大量をメガバイト単位で設定します。

デフォルトは3072MBです。

pgaa.scan_aggregation_cost_factor#

ローカルのPostgres実行と比較して、リモートバックエンドSparkまたはSeafowl で集計を実行するコストを重み付けるためにPostgresクエリプランナーが使用する乗数。

デフォルトは0.005です。

pgaa.scan_per_tuple_cost#

ローカルのPostgres実行と比較して、リモートバックエンドSparkまたはSeafowl で単一行タプルをスキャンするコストを重み付けるためにPostgresクエリプランナーが使用する乗数。

デフォルト0.02です。

pgaa.scan_sort_cost_factor#

Postgresクエリプランナーが使用する乗数は、Postgres独自のタプルソート推定と比較して、リモートバックエンドSparkまたはSeafowl によって作成されたプッシュダウンソートのコストを重み付けます。

デフォルト0.5です。

pgaa.scan_startup_cost#

ローカルのPostgres実行と比較して、リモートバックエンドSparkまたはSeafowl でスキャンを開始する固定「スタートアップ」コストを重み付けるためにPostgresクエリプランナーが使用する乗数。

デフォルト25です。

pgaa.use_seafowl_cost_estimates#

Postgresクエリプランナーが、 Postgresによって内部収集された統計に依存するのではなく、Seafowl エンジンから直接リアルタイムのコスト推定を要求するかどうかを決定します。

デフォルトはon です。

pgaa.enable_metadata_stats#

実際のANALYZE 統計が欠如しているテーブルの場合、行数推定、NULL分数、平均列幅、個別値カウント、最小/最大ヒストグラムを含むプランナー統計をIceberg、Delta Lake、またはParquetメタデータから合成します。クエリプランナーは、CompatScanカーディナリティ推定とクエリプランにこれらの合成統計を使用します。

デフォルトはon です。

海鳥#

!!!注 pgaa.autostart_seafowl パラメーターは、WarehousePGのPGAAでは使用できません。 WarehousePGでは、Seafowl は各ホストでsystemd サービスとして管理されます。詳細については、 WarehousePG installation セクションを参照してください。

pgaa.autostart_seafowl#

バックグラウンドワーカーによって管理されるSeafowl プロセスの自動開始を制御します。

デフォルトはon です。

pgaa.autostart_seafowl_max_memory_mb#

組み込みSeafowl エンジンが消費できるRAMの量の上限をメガバイト単位で設定し、分析エンジンがメインのPostgresプロセスのリソースを枯渇させないようにします。

デフォルトは2147483647です。

pgaa.autostart_seafowl_memory_pool_type#

組み込みSeafowl エンジンが使用するDataFusionメモリプールタイプを設定します。受け入れられる値はgreedy およびfair_spill です。 greedy は、最高のクエリーパフォーマンスを得るために、できるだけ早くメモリを割り当てます。 fair_spill は、コンカレントコンシューマ全体にメモリを公平に分散し、メモリが使い果たされると中間データをディスクに流出します。これにより、ある程度のパフォーマンスコストで高いコンカレンシーの下でのメモリ不足障害が削減されます。

デフォルトはgreedy です。

pgaa.autostart_seafowl_track_memory_consumers#

Seafowl メモリプールを、メモリ不足エラーメッセージの上位メモリコンシューマを含む追跡レイヤーでラップし、どのクエリまたはオペレーションがメモリを使い果たしたかの診断を簡単にします。

デフォルトはoff です。

pgaa.autostart_seafowl_enable_metrics#

リアルタイムパフォーマンスメトリックを提供する専用のHTTPエンドポイントを開き、標準の可観測性スタックを使用して分析エンジンの状態、クエリスループット、およびリソース使用率をモニタすることにより、Seafowl プロセスのPrometheusメトリックを有効にします。

デフォルト値はon です。

pgaa.autostart_seafowl_metrics_host#

メトリックエンドポイントのバインドホスト。

pgaa.autostart_seafowl_enable_metrics= on の場合、Prometheusメトリックサービスが到達可能なホスト名またはIPアドレスを指定します。

デフォルトは127.0.0.1 で、これはセキュリティのためのローカルループバックをポイントし、メトリックがデフォルトで公開されないことを保証します。

pgaa.autostart_seafowl_metrics_port#

pgaa.autostart_seafowl_enable_metrics= on のときにPrometheusメトリックサービスに使用される特定のネットワークポートを定義します。

サポートされている値の範囲は1024〜65535です。デフォルトは9090 です。

pgaa.autostart_seafowl_enable_object_store_cache#

S3、Azure、またはGCPの外部ストレージの場所のSeafowl オブジェクトストアキャッシュを有効にするかどうかを決定します。

デフォルトはon です。

pgaa.autostart_seafowl_enable_metadata_cache#

Seafowl がRESTカタログクライアントにIcebergテーブルのメタデータをキャッシュするかどうかを決定します。キャッシュされたエントリは条件付きETag要求で再検証され、クエリプランニングのレイテンシーが削減されます。

デフォルトはon です。

pgaa.autostart_seafowl_metadata_cache_capacity_mb#

Seafowl メタデータキャッシュに保持されるIcebergテーブルメタデータの最大合計サイズをメガバイト単位で設定します。

デフォルト256です。

pgaa.autostart_seafowl_metadata_cache_ttl_s#

キャッシュされたIcebergテーブルのメタデータエントリが更新されるまでの時間を秒単位で設定します。値0は有効期限を無効にし、ETag再検証にのみ依存します。

デフォルト0です。

pgaa.autostart_seafowl_concurrent_manifest_ops#

Seafowl プロセスでの同時アイスバーグマニフェストオブジェクトストア操作の最大数を設定し、スキャン計画とメンテナンス中のフライト中の要求とピークマニフェストデコードメモリの両方を制限します。

デフォルト64です。

pgaa.autostart_seafowl_log_level#

バックグラウンドのSeafowl プロセスのロギングの詳細度を指定します。

サポートされている値には、error 、warn 、info 、debug 、およびtrace が含まれます。

デフォルトはinfo です。

pgaa.autostart_seafowl_path#

Seafowl 実行可能ファイルへの絶対ファイルパスを指定します。これにより、バックグラウンド分析エンジンを起動するときにどのバイナリを起動するかをPGAAスーパーバイザに正確に指示します。このパラメーターの変更は、別のマシンまたはコンテナーでSeafowl サービスを実行しているカスタム構成の場合にのみ必要です。

デフォルトは空の文字列です。

pgaa.autostart_seafowl_port#

バックグラウンドのSeafowl プロセスがリッスンするTCPポートを指定します。 PGAA拡張機能はこのポートを使用して、ローカル実行エンジンと通信します。

デフォルトは47470です。

pgaa.autostart_seafowl_tmp_dir#

クエリーの実行中にバックグラウンドのSeafowl プロセスが一時ファイルを保存するディレクトリを指定します。

デフォルトは空の文字列です。

pgaa.enable_maintenance_worker#

PGAAバックグラウンドスーパーバイザが専用のメンテナンスワーカープロセスを起動および管理するかどうかを制御します。

デフォルトはoff です。

pgaa.maintenance_worker_sleep_interval#

現在実行する保留中の作業がない場合に、新しいタスクをチェックする前にメンテナンスワーカープロセスが待機する時間を秒単位で定義します。

デフォルトは30秒です。

pgaa.seafowl_client_retry_base_ms#

Seafowl プロセスへの失敗した要求を再試行する前にPostgresクライアントが待機する初期遅延をミリ秒単位で指定します。後続の障害が発生するたびに、待機時間は2倍になります。

デフォルト100です。

pgaa.seafowl_url#

PGAA拡張機能がSeafowl サービスと通信するために使用するエンドポイントURLを指定します。デフォルトでは、PGAAはデータベースと同じホストでSeafowl プロセスを自動的に管理します。このパラメーターの変更は、別のマシンまたはコンテナーでSeafowl サービスを実行しているカスタム構成の場合にのみ必要です。

デフォルトはhttp://localhost:47470 です。

カタログの同期#

pgaa.metastore_sync_poll_rate_s#

現在接続されているカタログの状態をポーリングする間隔を秒単位で設定します。これを0に設定すると、自動バックグラウンド同期が完全に無効になります。

デフォルトは60秒です。

pgaa.metastore_sync_stale_duration_s#

接続されたカタログのローカルメタデータが古いと考えられるしきい値を定義します。ローカルキャッシュのメタデータがこの期間よりも古い場合、システムは更新を優先してデータレイクとの一貫性を保証します。

デフォルトは60秒です。

pgaa.enable_metastore_sync_worker#

PGAAが専用のバックグラウンドワーカーを生成して、Iceberg RESTカタログなどのリモートプロバイダーからのメタデータを継続的に同期するかどうかを決定します。

デフォルトはoff です。

キャッシング#

pgaa.lakehouse_table_stats_cache_ttl_s#

pgaa.lakehouse_table_stats() ファンクションをサポートするために物理テーブルのサイズがキャッシュされる期間秒単位を制御します。これにより、メタデータのオブジェクトストアへの頻繁な要求が防止されます。これを0に設定すると、統計キャッシュが無効になり、ファンクションはストレージプロバイダーから直接データを取得します。

デフォルトは300秒です。

pgaa.metadata_stats_ttl_s#

PGAAが pgaa.enable_metadata_stats によって合成されたプランナー統計を、Iceberg、Delta Lake、またはParquetのメタデータから再取得する前にキャッシュする時間を秒単位で制御します。これを0 に設定すると、常に統計が再取得されます。

デフォルトは300秒です。

pgaa.autostart_seafowl_object_store_cache_capacity_mb#

Seafowl プロセスが保存場所からデータをキャッシュするために使用できるローカルディスク領域の最大量をメガバイト単位で指定します。

デフォルト1024です。

pgaa.autostart_seafowl_object_store_cache_min_fetch_size_kb#

pgaa.autostart_seafowl_enable_object_store_cache が有効になっているときにオブジェクトストアに送信されるアウトバウンド要求の最小サイズを定義します。

デフォルト1024です。

pgaa.autostart_seafowl_object_store_cache_ttl_s#

Seafowl オブジェクトストアキャッシュに保存されているオブジェクトのTime To LiveTTLを指定します。このパラメーターは、キャッシュされたデータチャンクがエビクションの対象となるまでに有効な時間を決定します。

デフォルト3600です。

Postgres DistributedPGD統合#

pgaa.max_replication_lag_s#

フラッシュが強制されるまでの最大許容遅延秒。

デフォルト5です。

DataFusionから継承された構成#

PGAAはSeafowl クエリエンジンの基になる実行エンジンとしてApache DataFusionを使用するため、 PGAAはクエリ実行エンジンを調整できる複数のpgaa.datafusion.* 構成パラメーターを提供します。

これらの設定は、メモリ管理、実行並列処理、オプティマイザールール、クエリのExplain出力などの低レベルの動作を制御します。公開される名前空間はexecution 、explain 、およびoptimizer です。

次を実行して、PGAAが組み込むDataFusion構成パラメーターの完全なリストを確認できます。

SELECT name, setting, short_desc, context FROM pg_settings WHERE name LIKE %pgaa.data%;

キー、デフォルト値、およびパフォーマンスへの影響の包括的なリストについては、 DataFusion documentation を参照してください。 DataFusionドキュメントを参照する場合、pgaa. を接頭辞として付けることにより、ドキュメントキーをPGAA構成パラメーターに変換できます。