これらの設定は system.settings で参照でき、source から自動生成されています。
allow_aggregate_partitions_independently
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.7 | 1 | パーティションキーが GROUP BY キーに適している場合、デフォルトでパーティションごとの独立した集約を有効にします。`ReadFromMergeTree::requestOutputEachPartitionThroughSeparatePortForAggregation` にある既存の実行時ヒューリスティックは、パーティションレイアウトが不利な場合(パーティション数が少なすぎる、多すぎる、またはパーティションサイズの偏りが大きい場合)には、この最適化をすでにスキップします。そのため、本来 no-op になるケースでは、この設定を有効にしても安全です。 |
パーティションキーが GROUP BY キーに適している場合、パーティションごとに別スレッドで独立して集約できるようにします。これは、パーティション数がコア数に近く、各パーティションのサイズがほぼ同じ場合に有効です。ReadFromMergeTree のヒューリスティックは、レイアウトが不利な場合 (パーティション数が少なすぎる、多すぎる、またはパーティションサイズの偏りが大きい場合) には、この最適化を自動的に無効化します。これらのチェックを回避するには、force_aggregate_partitions_independently を参照してください。
allow_archive_path_syntax
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 24.8 | 1 | アーカイブパス構文を無効にできるようにする新しい設定が追加されました。 |
| 24.5 | 1 | アーカイブパス構文を無効にできるようにする新しい設定が追加されました。 |
File/S3 エンジン/テーブル関数では、アーカイブの拡張子が正しい場合、'::' を含むパスを <archive> :: <file> として解析します。
allow_asynchronous_read_from_io_pool_for_merge_tree
MergeTree テーブルからの読み取りにバックグラウンド I/O プールを使用します。この設定により、I/O 律速のクエリではパフォーマンスが向上する場合があります。
allow_calculating_subcolumns_sizes_for_merge_tree_reading
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.3 | 1 | 読み取りタスクの分割を改善するため、MergeTree 読み取り時のサブカラムサイズの計算を許可 |
有効にすると、ClickHouse は各サブカラムの読み取りに必要なファイルサイズを計算し、タスクサイズとブロックサイズをより適切に算出します。
allow_changing_replica_until_first_data_packet
有効な場合、ヘッジドリクエストでは、すでにある程度 Progress が進んでいても、最初の Data パケットを受信するまで新しい接続を開始できます
(ただし、receive_data_timeout のタイムアウト時間内に Progress が更新されていない場合に限ります) 。無効な場合は、最初に Progress が進んだ時点以降、レプリカの切り替えは行われません。
allow_create_index_without_type
TYPE を指定しない CREATE INDEX クエリを許可します。このクエリは無視されます。SQL 互換性テストのための設定です。
allow_creating_set_partitions_independently
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.8 | 1 | パーティション式がサブクエリ出力カラムの決定論的関数である場合に、`IN (subquery)` のセット構築時にサブクエリ結果をパーティションごとに並列で事前重複排除できるようにする新しい設定。 |
サブクエリの MergeTree テーブルのパーティション式がサブクエリ出力カラムの決定論的関数である場合に、IN (subquery) のセット構築時にサブクエリ結果をパーティションごとに並列で事前重複排除します。各パーティションは個別のストリームで読み取られ、独立して重複排除されるため、単一のセット補完変換でハッシュ化されるのは一意の行のみです。FINAL、並列レプリカ、GLOBAL IN では適用されません。この最適化でパーティションごとの読み取りが要求されるのは、データに複数のパーティションがあり、かつ最大パーティションの行数が平均パーティションの行数の2倍以下である場合のみです (偏りのチェックを回避するには、force_creating_set_partitions_independently を参照してください) 。別のパーティションごとの機能 (たとえばパーティションごとの LIMIT BY) によってストリームがすでにパーティション間で分離されている場合は、読み取りレイアウトがすでに固定されているため、事前重複排除は常に適用されます。セットの構築中、ストリームごとの重複排除テーブルには合計で、一意のキーのコピー約1つ分が追加で保持されます。
allow_custom_error_code_in_throwif
関数 throwIf() でカスタムエラーコードを有効にします。true の場合、送出される例外に想定外のエラーコードが付与されることがあります。
allow_ddl
true に設定すると、ユーザーは DDL クエリを実行できます。
allow_delta_kernel_rs
別名: allow_experimental_delta_kernel_rs
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.8 | 1 | `allow_experimental_delta_kernel_rs` の新しい名前です。実験的な機能ではなくなりましたが、同名は別名として維持されます。デフォルト値は変更されていません。 |
| 25.5 | 1 | 新しい設定。`allow_experimental_delta_kernel_rs` という名前で導入され、現在はその別名となっています。履歴全体を維持するため、この行は正規名のもとに引き継がれています。 |
Delta Lake テーブルの読み取りに delta-kernel-rs 実装を使用できるようにします。
allow_distinct_partitions_independently
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.8 | 1 | パーティション式が `DISTINCT` カラムの決定論的関数である場合に、パーティションごとの `DISTINCT` を独立して評価できるようにする新しい設定。 |
パーティション式が DISTINCT カラムの決定論的関数である場合、ストリーム間のマージを省略し、パーティションごとの DISTINCT を別スレッドで独立して評価します。パーティション数がコア数に近く、各パーティションのサイズがほぼ同じ場合に有効です。それ以外の場合は、コストヒューリスティックによりこの最適化は省略されます。max_number_of_partitions_for_independent_distinct および force_distinct_partitions_independently を参照してください。FINAL または並列レプリカでは適用されません。
max_rows_in_distinct または max_bytes_in_distinct が設定されている場合は適用されません。これらの上限は、マージ後の結果全体を対象とする単一の DISTINCT 変換によって適用されるため、グローバルな意味を維持するためにストリーム間のマージは保持されます。
allow_distributed_ddl
これを true に設定すると、ユーザーは分散 DDL クエリを実行できます。
allow_drop_detached
ALTER TABLE … DROP DETACHED PART[ITION] … クエリの実行を許可します
allow_dynamic_type_in_join_keys
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 25.10 | 0 | デフォルトでは JOIN キーでの Dynamic 型の使用を許可しない |
JOIN キーで Dynamic 型を使用できるようにします。互換性のために追加された設定です。他の型との比較で予期しない結果になる可能性があるため、JOIN キーで Dynamic 型を使用することは推奨されません。
allow_execute_multiif_columnar
multiIf 関数の列指向実行を許可する
allow_fuzz_query_functions
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.2 | 0 | fuzzQuery 関数を有効にする新しい設定。 |
クエリ文字列に対して AST にランダムな変更を加える fuzzQuery 関数を有効にします。
allow_general_join_planning
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 25.1 | 1 | ハッシュ結合アルゴリズムが有効な場合に、より汎用的な JOIN 計画アルゴリズムを使用できるようにします。 |
より複雑な条件を処理できる、より汎用的な JOIN 計画アルゴリズムを使用できるようにしますが、これはハッシュ結合でのみ機能します。ハッシュ結合が有効でない場合は、この設定の値に関係なく、通常の JOIN 計画アルゴリズムが使用されます。
allow_get_client_http_header
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 24.3 | 0 | 新しい関数が導入されました。 |
現在の HTTP リクエストのヘッダー値を取得できる関数 getClientHTTPHeader の使用を許可します。Cookie などの一部のヘッダーには機密情報が含まれる可能性があるため、セキュリティ上の理由からデフォルトでは有効になっていません。なお、X-ClickHouse-*、Authentication、Authorization の各ヘッダーは常に制限されており、この関数では取得できません。
allow_hyperscan
Hyperscan ライブラリを使用する関数を許可します。コンパイルに長時間かかったり、リソースを過剰に消費したりする可能性を避けるには、無効にしてください。
allow_iceberg_remove_orphan_files
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.4 | 0 | Iceberg の孤立ファイルの削除を制御する新しい設定 |
Iceberg テーブルで 'ALTER TABLE … EXECUTE remove_orphan_files()' を使用できるようにします。
allow_insert_into_iceberg
別名: allow_experimental_insert_into_iceberg
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.2 | 0 | Iceberg への insert がベータに移行しました |
| 25.7 | 0 | 新しい設定 |
Iceberg に対する insert クエリの実行を許可します。
allow_introspection_functions
クエリのプロファイリングで使用するイントロスペクション関数を有効または無効にします。
設定可能な値:
- 1 — イントロスペクション関数が有効。
- 0 — イントロスペクション関数が無効。
関連項目
- Sampling Query Profiler
- システムテーブル trace_log
allow_key_condition_coalesce_rewrite
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.5 | 1 | `coalesce(a_1, ..., a_N) <op> const` 形式の述語(および同等の `ifNull`、または定数が左辺にある場合)を、索引解析の前に選言へ書き換えるための新しい設定です。これにより、各 `a_i` のカラムごとの主キーおよびスキップ索引を利用できます。`coalesce(a, 42, b)` や `coalesce(a, b, 42)` のような、一部が定数の形式も処理されます。 |
coalesce(a_1, ..., a_N) <op> const 形式の述語 (および同等の ifNull、または定数が左辺にある場合) を、索引解析の前に選言 (a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const) へ書き換えます。これにより、各 a_i のカラムごとの主キーおよびスキップ索引を利用できます。coalesce(a, 42, b) や coalesce(a, b, 42) のような、一部が定数の形式も処理されます。引数リストは coalesce 自体と同様に正規化されます (NULL リテラルは削除され、最初の非 Nullable 引数より後の引数は削除されます) 。末尾に非 NULL 定数がある場合は、最終分岐として出力されます。この書き換えは索引の枝刈りにのみ追加されるものであり、ランタイムフィルタリングでは引き続き元の述語が使用されます。
さらに、nullIf(key, sentinel) = const 形式の完全一致述語 (sentinel != const かつ型が完全に一致する場合) は key = const に書き換えられるため、key の主キー、パーティション、およびスキップ索引でグラニュールを直接枝刈りできます。範囲条件および選言条件に対する nullIf の枝刈りはサポートされていません。
allow_limit_by_partitions_independently
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.6 | 1 | パーティション式が `LIMIT BY` カラムの決定論的関数である場合に、パーティションごとに独立して `LIMIT BY` を評価できるようにする新しい設定。 |
パーティション式が LIMIT BY カラムの決定論的関数である場合、別個のスレッドでパーティションごとに独立して LIMIT BY を評価できるようにします。
allow_lossy_numeric_supertype
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.8 | 0 | 損失のない共通型を持たないすべて数値型の分岐(例: Decimal + Float64)について、if/multiIf/coalesce/ifNull/array/map が数値スーパータイプ(Float64、精度が失われる可能性あり)に解決できるようにする新しい設定です。これにより、結果を集計できます。use_variant_as_common_type とは独立しています。これがオフの場合、このような分岐は以前は NO_COMMON_TYPE となり、オンの場合は Variant になっていましたが、現在はいずれの場合も Float64 に解決されます。 |
有効にすると、損失のない共通型を持たない数値引数のセット (たとえば Decimal と Float64、または Int64 と Float64) に対する if/multiIf/coalesce/ifNull/array/map は、失敗する代わりに、精度が失われる可能性のある数値スーパータイプ (Float64) に解決されます。これにより、結果を sum、avg、min、max などの値を結合する集約関数で直接使用できます。これは use_variant_as_common_type とは独立しており、use_variant_as_common_type の有効・無効にかかわらず数値スーパータイプが生成されます。無効の場合 (デフォルト) 、このような引数セットには共通型がないため、Variant になる (use_variant_as_common_type が有効な場合) か、NO_COMMON_TYPE になります。
allow_materialized_view_with_bad_select
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 25.4 | 0 | 存在しないカラムまたはテーブルを参照する MV の作成を許可しない |
| 24.9 | 1 | CREATE MATERIALIZED VIEW でのより厳格な検証をサポート(ただし、まだ有効にはしない) |
存在しないテーブルまたはカラムを参照する SELECT query を含む CREATE MATERIALIZED VIEW を許可します。ただし、構文的には有効である必要があります。refreshable MVs には適用されません。また、MV のスキーマを SELECT query から推論する必要がある場合にも適用されません (つまり、CREATE にカラムリストがなく、TO table もない場合です) 。ソーステーブルより前に MV を作成する際に使用できます。
allow_metadata_only_named_tuple_alter
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.8 | 0 | 名前付き Tuple へのサブフィールド追加に対するメタデータのみの ALTER を制御する新しい設定。 |
true の場合、名前付き Tuple に新しいサブフィールドを追加するだけの ALTER MODIFY COLUMN は、メタデータのみを変更します (データ mutation は実行されません) 。 false に設定すると、従来の完全 mutation の動作を強制します。
allow_minmax_index_for_json
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.7 | 0 | 索引のシリアライゼーション処理では JSON カラムに含まれる可能性がある異種の Field 値を扱えないため、デフォルトで JSON カラムへの minmax スキップ索引の作成を禁止 |
JSON (Object) カラムに対する minmax スキップ索引の作成を許可します。デフォルトでは無効です。これは、minmax 索引のシリアライゼーション処理では、JSON カラムに含まれる可能性がある異種の Field 値を扱えないためです。
allow_named_collection_override_by_default
デフォルトで named collections のフィールドの上書きを許可します。
allow_non_metadata_alters
テーブルのメタデータだけでなく、ディスク上のデータにも影響するalterの実行を許可します
allow_nonconst_timezone_arguments
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 23.4 | 0 | toTimeZone()、fromUnixTimestamp*()、snowflakeToDateTime*() などの一部の時刻関連関数で、非定数のタイムゾーン引数を許可します。 |
toTimeZone()、fromUnixTimestamp*()、snowflakeIDToDateTime*() などの一部の時刻関連関数で、非定数のタイムゾーン引数を許可します。 この設定は、互換性のためだけに存在します。ClickHouse では、タイムゾーンはデータ型、すなわちカラムのプロパティです。 この設定を有効にすると、1 つのカラム内の値ごとに異なるタイムゾーンを持てるかのような、誤った印象を与えます。 したがって、この設定は有効にしないでください。
allow_nullable_tuple_in_extracted_subcolumns
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.3 | 0 | 抽出された Tuple サブカラムを Nullable にできるかどうかを制御する新しい設定。 |
Tuple(...) 型の抽出されたサブカラムを Nullable(Tuple(...)) 型として扱えるかどうかを制御します。
false:Tuple(...)を返し、サブカラムが存在しない行にはデフォルトのタプル値を使用します。true:Nullable(Tuple(...))を返し、サブカラムが存在しない行にはNULLを使用します。
この設定が制御するのは、抽出されたサブカラムの動作のみです。
テーブルで Nullable(Tuple(...)) カラムを作成できるかどうかは制御しません。これは enable_nullable_tuple_type で制御されます。
ClickHouse は、サーバー起動時に読み込まれたこの設定値を使用します。
SET またはクエリレベルの SETTINGS による変更では、抽出されたサブカラムの動作は変わりません。
抽出されたサブカラムの動作を変更するには、起動時プロファイル設定 (たとえば users.xml) で allow_nullable_tuple_in_extracted_subcolumns を更新し、サーバーを再起動してください。
allow_rank_dense_rank_arguments
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.5 | 0 | 新しい設定。26.5 より前では、`RANK` および `DENSE_RANK` ウィンドウ関数は、指定された引数を暗黙的に無視していました(`allow_rank_dense_rank_arguments = 1` と同等)。26.5 以降は、SQL 標準ではこれらの関数は引数を取らないため、デフォルトで引数を拒否し、`NUMBER_OF_ARGUMENTS_DOESNT_MATCH` を返します。従来の動作を復元するには、これを `1` に設定してください。 |
後方互換性のため、RANK および DENSE_RANK ウィンドウ関数に引数を渡せるようにします。
SQL 標準では、RANK および DENSE_RANK は引数を取りません。これらは
OVER (ORDER BY ...) ウィンドウのみに基づいて行を順位付けします。26.5 より前の ClickHouse バージョンでは、
RANK(x) OVER (...) のようなクエリは引数を黙って受け入れて無視していたため、ユーザーの混乱を招いていました
(引数が見えているため順位付けに影響するように見えますが、実際には影響しませんでした) 。
この設定が false (デフォルト) の場合、RANK および DENSE_RANK はあらゆる引数を拒否し、
NUMBER_OF_ARGUMENTS_DOESNT_MATCH 例外を返します。true に設定すると、従来の寛容な動作が
復元され、26.5 より前と同様に引数は黙って無視されます。
allow_reorder_prewhere_conditions
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 24.10 | 1 | 新しい設定 |
条件をWHEREからPREWHEREに移動する際に、フィルタリングを最適化するため条件の並び順の変更を許可します
allow_replace_partition_from_empty_source
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.6 | 0 | 新しい安全性チェック: `ALTER TABLE ... REPLACE PARTITION ... FROM ...` は、ソーステーブルの対象パーティションにパーツが存在しない場合、例外をスローするようになりました([#23727](https://github.com/ClickHouse/ClickHouse/issues/23727) のサイレントなデータ損失を修正)。従来の動作である宛先パーティションのサイレントな削除は、`allow_replace_partition_from_empty_source = 1` を設定することで維持されます。 |
ソースのそのパーティションにパーツが存在しない場合でも、ALTER TABLE ... REPLACE PARTITION ... FROM ... で宛先パーティションをサイレントに削除できるようにします。
デフォルトでは、これは許可されていません。要求されたパーティションにデータがないソースから REPLACE PARTITION を実行すると、例外が発生します。これは、この操作が実質的に宛先に対するサイレントな DROP PARTITION になるためです (宛先のデータは削除されますが、それを置き換えるデータはありません) 。これは、意図しないデータ損失の一般的な原因です (#23727 を参照) 。
たとえば、宛先のデータを消去するために意図的に空のソースパーティションを使う場合は、この設定を有効にすると従来の動作に戻せます。無条件に削除したい場合は、代わりに ALTER TABLE ... DROP PARTITION ... を使用してください。
allow_settings_after_format_in_insert
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 22.4 | 0 | ClickHouse が SETTINGS を値の一部として解釈してしまい、紛らわしいため、INSERT クエリでは FORMAT の後に SETTINGS を許可しません |
INSERT クエリで、FORMAT の後に SETTINGS を許可するかどうかを制御します。SETTINGS の一部が値として解釈される可能性があるため、この設定の使用は推奨されません。
例:
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');ただし、次のクエリは allow_settings_after_format_in_insert が有効な場合にのみ動作します:
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;設定可能な値:
- 0 — 不可。
- 1 — 許可。
allow_simdjson
AVX2 命令が利用可能な場合に、JSON* 関数で simdjson ライブラリを使用できるようにします。無効にすると、rapidjson が使用されます。
allow_special_serialization_kinds_in_output_formats
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 25.11 | 1 | 一部の出力フォーマットで、Sparse/Replicated のような特殊なカラム表現を直接出力できるようにする |
| 25.10 | 0 | Sparse/Replicated のような特殊なカラム表現を、フルカラム表現に変換せずに出力できるようにする設定を追加 |
Sparse や Replicated のような特殊なシリアライゼーション種別を持つカラムを、フルカラム表現に変換せずに出力できるようにします。 これにより、フォーマット処理時の不要なデータコピーを避けられます。
allow_unrestricted_reads_from_keeper
system.zookeeper table から無制限に (path に条件を指定せずに) 読み取ることを許可します。便利な場合もありますが、ZooKeeper に対して安全ではありません。
allow_window_partitions_independently
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.8 | 1 | パーティション式がウィンドウ `PARTITION BY` カラムの決定論的関数である場合に、パーティションごとに独立してウィンドウ関数を評価し(hash scatterをスキップし)するための新しい設定。 |
MergeTree テーブルのパーティション式がウィンドウ PARTITION BY カラムの決定論的関数である場合、パーティションごとに別スレッドでウィンドウ関数を独立して評価します。各パーティションは個別のストリームで読み取られ、ウィンドウのソート記述に従って個別にソートされた後、それぞれ専用のウィンドウ変換で処理されます。通常はすべての行をスレッド間で再配分する hash scatter をスキップします。パーティション数がコア数に近く、各パーティションのサイズがほぼ同じ場合に有効です。それ以外の場合はコストヒューリスティックによりこの最適化はスキップされます。max_number_of_partitions_for_independent_window および force_window_partitions_independently を参照してください。FINAL または並列レプリカでは適用されません。