enable_adaptive_aggregator
GROUP BY アルゴリズムを有効にします。各スレッドは、ローカルハッシュテーブルが adaptive_aggregator_freeze_threshold 個のキーに達するまで集計を行い、その後テーブルは固定されます。すでに出現した頻出キーの行はそのテーブル内で更新され続ける一方、新しいまれなキーはハッシュに基づいてバケットごとのバックログに振り分けられ、バケット並列マージ内で正確に1回だけ集計されます。頻出キーはキャッシュに収まる小さなテーブルに保持され、まれなキーはスレッドごとではなく1回だけ保存・処理されます。
外部集計の設定 (max_bytes_before_external_group_by、max_bytes_ratio_before_external_group_by) も考慮されます。しきい値を超えると、バックログは早期に共有テーブルへ排出されます。それでも使用量をしきい値未満に戻せない場合は、通常の外部集計により共有テーブルがディスクにスピルされます。
enable_adaptive_memory_spill_scheduler
enable_add_distinct_to_in_subqueries
IN サブクエリで DISTINCT を有効にします。これはトレードオフのある設定です。有効にすると、一意の値だけが送信されるようになるため、分散 IN サブクエリで転送される一時テーブルのサイズを大幅に削減でき、分片間のデータ転送を大きく高速化できます。
ただし、この設定を有効にすると、重複排除 (DISTINCT) を実行する必要があるため、各ノードで追加のマージ処理負荷が発生します。ネットワーク転送がボトルネックになっており、追加のマージコストを許容できる場合にこの設定を使用してください。
enable_automatic_decision_for_merging_across_partitions_for_final
enable_cascades_optimizer
make_distributed_plan = 1 と併用した場合にのみ有効になります。この設定だけでは、単一ノードのクエリプランニングは変更されません。
enable_early_constant_folding
enable_extended_results_for_datetime_functions
Date32 型 (Date 型と比較) または拡張範囲を持つ DateTime64 型 (DateTime 型と比較) の結果を返すかどうかを有効または無効にします。
設定可能な値:
0— 関数は、すべての型の引数に対してDateまたはDateTimeを返します。1— 関数は、Date32またはDateTime64型の引数に対してはDate32またはDateTime64を返し、それ以外の場合はDateまたはDateTimeを返します。
enable_full_text_index
allow_experimental_full_text_index
true に設定すると、テキスト索引を使用できます。
enable_global_with_statement
enable_hdfs_pread
pread の使用を有効または無効にします。デフォルトでは hdfsPread が使用されます。無効にすると、HDFS ファイルの読み取りには hdfsRead と hdfsSeek が使用されます。
enable_http_compression
- 0 — 無効。
- 1 — 有効。
enable_identifier_resolve_cache
enable_job_stack_trace
enable_json_ast_dialect
dialect設定のclickhouse_json値を有効にします。
dialectがclickhouse_jsonに設定されている場合、クエリはSQLテキストではなくJSON AST
(parseQueryToJSONの出力) として解釈されます。ダイアレクトを元に戻せるよう、SETクエリは引き続き
通常のSQLとして解析されます。
例:
enable_lazy_columns_replication
JOIN、ARRAY JOIN、および高階関数 (例: arrayMap) のラムダキャプチャでのカラムの遅延複製を有効にします。これにより、同じ行をメモリ上で何度も不必要にコピーするのを防げます。
enable_materialized_cte
enable_memory_bound_merging_of_aggregation_results
enable_multiple_prewhere_read_steps
enable_named_columns_in_function_tuple
enable_order_by_all
ORDER BY ALL 構文でのソートを有効または無効にします。詳しくは ORDER BY を参照してください。
設定可能な値:
- 0 — ORDER BY ALL を無効にします。
- 1 — ORDER BY ALL を有効にします。
enable_packed_string_keys_in_aggregation
Stringキーに対するGROUP BYでは、16バイトにパックされた文字列参照 (PackedStringRef) をキーとするハッシュテーブルを使用します。最大11バイトのキーはパックされた参照内にインラインで格納され、より長いキーはアリーナで参照されます。
これはほとんどのワークロードで高速ですが、11バイトを超える異なるキーがごく少数のGROUP BYでは、従来方式より遅くなることがあります。特に12..24バイトの場合に顕著です。従来のハッシュテーブルはキーをセル内にインラインで保持する一方、パック方式ではプローブのたびにアリーナポインターを間接参照するためです。
無効にすると、従来のStringHashTableベースの方式 (26.8より前のデフォルト) が使用されます。
分散クエリに参加するすべてのサーバーで、この値が一致している必要があります。distributed_aggregation_memory_efficientでは、二段階バケット番号がキーのハッシュに依存し、そのハッシュは2つの方式で異なるため、この設定が一致しないサーバーでは同じキーが異なるバケットに分割され、不正にマージされた結果が生成される可能性があります。一致を保証するため、イニシエーターは有効な値を常にセカンダリクエリとともに送信します (サーバーまたはプロファイルのデフォルトから取得された値のみの場合も含む) 。これにより、リモートサーバー側のデフォルトは上書きされます。
enable_parsing_to_custom_serialization
enable_producing_buckets_out_of_order_in_aggregation
distributed_aggregation_memory_efficientを参照) で、バケットを順不同で生成できるようにします。
これにより、集約バケットのサイズに偏りがある場合でも、レプリカは id の小さい重いバケットをまだ処理している間に、id の大きいバケットをイニシエーターへ送信できるため、パフォーマンスが向上することがあります。
欠点として、メモリ使用量が増える可能性があります。
enable_reads_from_query_cache
SELECT クエリの結果が クエリキャッシュ から取得されます。
設定可能な値:
- 0 - 無効
- 1 - 有効
enable_s3_requests_logging
enable_scalar_subquery_optimization
enable_scopes_for_with_statement
enable_sharding_aggregator
GROUP BY最適化を有効にします。
これは、データが均等に分散した高カーディナリティのキーに対して効率的ですが、キー分布に大きな偏りがある場合や、異なるキーがごく少ないクエリでは性能が低下することがあります。
設定可能な値:
- 0 — 分片化集約の最適化は無効です。
- 1 — 分片化集約の最適化は有効です。
- 0 - 無効
- 1 - 有効
enable_sharing_sets_for_mutations
enable_streaming_queries
SELECT ... FROM t STREAM [CURSOR '{...}'] の継続クエリを許可します。
オフの場合、STREAM 修飾子を使用するテーブル式はすべて
プラン構築時に拒否されます。これは streaming-queries
機能全体を制御するゲートであり、追加の機能は
それぞれ独自の設定で制御される場合があります。
enable_time_time64_type
allow_experimental_time_time64_type
Time および Time64 データ型を作成できるようにします。
enable_unaligned_array_join
enable_url_encoding
enable_vertical_final
enable_writes_to_query_cache
SELECT クエリの結果がクエリキャッシュに保存されます。
設定可能な値:
- 0 - 無効
- 1 - 有効