Skip to main content
これらの設定は system.settings で参照でき、source から自動生成されています。

allow_aggregate_partitions_independently

パーティションキーが GROUP BY キーに適している場合、パーティションごとに別スレッドで独立して集約できるようにします。これは、パーティション数がコア数に近く、各パーティションのサイズがほぼ同じ場合に有効です。ReadFromMergeTree のヒューリスティックは、レイアウトが不利な場合 (パーティション数が少なすぎる、多すぎる、またはパーティションサイズの偏りが大きい場合) には、この最適化を自動的に無効化します。これらのチェックを回避するには、force_aggregate_partitions_independently を参照してください。

allow_archive_path_syntax

File/S3 エンジン/テーブル関数では、アーカイブの拡張子が正しい場合、’::’ を含むパスを <archive> :: <file> として解析します。

allow_asynchronous_read_from_io_pool_for_merge_tree

MergeTree テーブルからの読み取りにバックグラウンド I/O プールを使用します。この設定により、I/O 律速のクエリではパフォーマンスが向上する場合があります。

allow_block_nested_loop_join

結合するテーブル間に等値比較を含まない任意の ON 条件を持つ JOIN を、ブロックネステッドループ結合として実行できるようにします。 すべての行の組み合わせを調べるため、処理コストは 2 つのテーブルの行数の積に比例します。この演算子はJOIN 計画を作成する際の最終手段であり、どの join_algorithm でも条件を処理できない場合にのみ使用されます。そのため、この設定で明示的に選択することはできません。 この設定が無効な場合、この演算子を必要とするクエリは、実行計画の作成中に INVALID_JOIN_ON_EXPRESSION で拒否されます。 設定可能な値:
  • 0 — このようなクエリを拒否します。
  • 1 — ブロックネステッドループ結合として実行します (デフォルト) 。

allow_calculating_subcolumns_sizes_for_merge_tree_reading

有効にすると、ClickHouse は各サブカラムの読み取りに必要なファイルサイズを計算し、タスクサイズとブロックサイズをより適切に算出します。

allow_changing_replica_until_first_data_packet

有効な場合、ヘッジドリクエストでは、すでにある程度 Progress が進んでいても、最初の Data パケットを受信するまで新しい接続を開始できます (ただし、receive_data_timeout のタイムアウト時間内に Progress が更新されていない場合に限ります) 。無効な場合は、最初に Progress が進んだ時点以降、レプリカの切り替えは行われません。

allow_correlated_subqueries

別名: allow_experimental_correlated_subqueries 相関サブクエリの実行を許可します。

allow_create_index_without_type

TYPE を指定しない CREATE INDEX クエリを許可します。このクエリは無視されます。SQL 互換性テストのための設定です。

allow_creating_set_partitions_independently

サブクエリの MergeTree テーブルのパーティション式がサブクエリ出力カラムの決定論的関数である場合に、IN (subquery) のセット構築時にサブクエリ結果をパーティションごとに並列で事前重複排除します。各パーティションは個別のストリームで読み取られ、独立して重複排除されるため、単一のセット補完変換でハッシュ化されるのは一意の行のみです。FINAL、並列レプリカ、GLOBAL IN では適用されません。この最適化でパーティションごとの読み取りが要求されるのは、データに複数のパーティションがあり、かつ最大パーティションの行数が平均パーティションの行数の2倍以下である場合のみです (偏りのチェックを回避するには、force_creating_set_partitions_independently を参照してください) 。別のパーティションごとの機能 (たとえばパーティションごとの LIMIT BY) によってストリームがすでにパーティション間で分離されている場合は、読み取りレイアウトがすでに固定されているため、事前重複排除は常に適用されます。セットの構築中、ストリームごとの重複排除テーブルには合計で、一意のキーのコピー約1つ分が追加で保持されます。

allow_custom_error_code_in_throwif

関数 throwIf() でカスタムエラーコードを有効にします。true の場合、送出される例外に想定外のエラーコードが付与されることがあります。

allow_database_glue_catalog

別名: allow_experimental_database_glue_catalog catalog_type = 'glue' を指定したデータベースエンジン DataLakeCatalog を許可します Cloud でのデフォルト値: 1。

allow_database_iceberg

別名: allow_experimental_database_iceberg catalog_type = 'iceberg' を指定したデータベースエンジン DataLakeCatalog を許可します Cloud でのデフォルト値: 1。

allow_database_unity_catalog

別名: allow_experimental_database_unity_catalog catalog_type = 'unity' を指定したデータベースエンジン DataLakeCatalog を許可します Cloud でのデフォルト値: 1。

allow_ddl

true に設定すると、ユーザーは DDL クエリを実行できます。

allow_delta_kernel_rs

別名: allow_experimental_delta_kernel_rs Delta Lake テーブルの読み取りに delta-kernel-rs 実装を使用できるようにします。

allow_delta_lake_create_table

delta-kernel-rs を使用した新しい Delta Lake テーブルの作成、または既存テーブルのカタログへの登録を許可します。パーティション化されたテーブル (PARTITION BY) の作成はまだサポートされていません。DataLakeCatalog データベースでは、テーブルは Delta スキーマとして登録されるため、より広い Delta 型にマッピングされる ClickHouse 型を宣言した場合 (例: UInt8 -> short、FixedString(N) -> string) 、読み出し時には宣言した型ではなく Delta 側でマッピングされた型になります。

allow_delta_lake_writes

別名: allow_experimental_delta_lake_writes delta-kernel の書き込み機能を有効にします。

allow_distinct_partitions_independently

パーティション式が 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

JOIN キーで Dynamic 型を使用できるようにします。互換性のために追加された設定です。他の型との比較で予期しない結果になる可能性があるため、JOIN キーで Dynamic 型を使用することは推奨されません。

allow_executable_tables

executable テーブル関数経由での読み取り、および Executable テーブルと ExecutablePool テーブルからの読み取りを許可します。 これを無効にした場合、拒否されるのは読み取りのみで、こうしたテーブルの作成、アタッチ、削除、DESCRIBE は引き続き利用できます。すでに起動済みの ExecutablePool のプロセスは終了されずに実行されたままになりますが、この設定を再び有効にするまで、読み取りはその都度拒否されます。

allow_execute_multiif_columnar

multiIf 関数の列指向実行を許可する

allow_fuzz_query_functions

クエリ文字列に対して AST にランダムな変更を加える fuzzQuery 関数を有効にします。

allow_general_join_planning

より複雑な条件を処理できる、より汎用的な JOIN 計画アルゴリズムを使用できるようにしますが、これはハッシュ結合でのみ機能します。ハッシュ結合が有効でない場合は、この設定の値に関係なく、通常の JOIN 計画アルゴリズムが使用されます。

allow_geo_types_in_iceberg

別名: allow_experimental_geo_types_in_iceberg Iceberg の geometry および geography フィールド型を、ClickHouse の Geometry (Variant) 型としてパースできるようにします。

allow_get_client_http_header

現在の HTTP リクエストのヘッダー値を取得できる関数 getClientHTTPHeader の使用を許可します。Cookie などの一部のヘッダーには機密情報が含まれる可能性があるため、セキュリティ上の理由からデフォルトでは有効になっていません。なお、X-ClickHouse-*、Authentication、Authorization の各ヘッダーは常に制限されており、この関数では取得できません。

allow_hyperscan

Hyperscan ライブラリを使用する関数を許可します。コンパイルに長時間かかったり、リソースを過剰に消費したりする可能性を避けるには、無効にしてください。

allow_iceberg_remove_orphan_files

Iceberg テーブルで ‘ALTER TABLE … EXECUTE remove_orphan_files()’ を使用できるようにします。

allow_insert_into_iceberg

別名: allow_experimental_insert_into_iceberg Iceberg に対する insert クエリの実行を許可します。

allow_introspection_functions

クエリのプロファイリングで使用するイントロスペクション関数を有効または無効にします。 設定可能な値:
  • 1 — イントロスペクション関数が有効。
  • 0 — イントロスペクション関数が無効。
関連項目

allow_join_right_table_sorting

別名: allow_experimental_join_right_table_sorting true に設定されており、かつ join_to_sort_minimum_perkey_rows と join_to_sort_maximum_table_rows の条件を満たす場合、右テーブルをキー順に並べ替え、left または inner のハッシュ結合の性能を向上させます。 この設定は実験的なものであり、現時点ではすべての結合最適化と併用できるわけではありません。 特に、右テーブルが並べ替えられると、joined_block_split_single_row によって制御されるキー単位の分割が無効になります。そのため、左テーブルの 1 行に対して生成される行数は、max_joined_block_size_rows と max_joined_block_size_bytes のどちらによっても制限されません。

allow_kafka_offsets_storage_in_keeper

別名: allow_experimental_kafka_offsets_storage_in_keeper Kafka 関連のオフセットを ClickHouse Keeper に保存できるようにします。有効にすると、Kafka table engine に ClickHouse Keeper パスとレプリカ名を指定できます。これにより、通常の Kafka エンジンではなく、committed offsets を主に ClickHouse Keeper に保存する新しい種類の storage engine が使用されます

allow_key_condition_coalesce_rewrite

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

パーティション式が LIMIT BY カラムの決定論的関数である場合、別個のスレッドでパーティションごとに独立して LIMIT BY を評価できるようにします。

allow_lossy_numeric_supertype

有効にすると、損失のない共通型を持たない数値引数のセット (たとえば 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

存在しないテーブルまたはカラムを参照する SELECT query を含む CREATE MATERIALIZED VIEW を許可します。ただし、構文的には有効である必要があります。refreshable MVs には適用されません。また、MV のスキーマを SELECT query から推論する必要がある場合にも適用されません (つまり、CREATE にカラムリストがなく、TO table もない場合です) 。ソーステーブルより前に MV を作成する際に使用できます。

allow_metadata_only_named_tuple_alter

true の場合、名前付き Tuple に新しいサブフィールドを追加するだけの ALTER MODIFY COLUMN は、メタデータのみを変更します (データ mutation は実行されません) 。 false に設定すると、従来の完全 mutation の動作を強制します。

allow_minmax_index_for_json

JSON (Object) カラムに対する minmax スキップ索引の作成を許可します。デフォルトでは無効です。これは、minmax 索引のシリアライゼーション処理では、JSON カラムに含まれる可能性がある異種の Field 値を扱えないためです。

allow_non_metadata_alters

テーブルのメタデータだけでなく、ディスク上のデータも変更する ALTER ステートメントを許可します。 無効にすると、MergeTree ファミリーのテーブルに対する ALTER DDL ステートメントのうち、ディスク上のデータを直接、またはミューテーション (system.mutations を参照) のスケジュールを通じて書き換えるものは、 ALTER_OF_COLUMN_IS_FORBIDDEN エラーで拒否されます。対象は次のとおりです。
  • カラムの書き換えを伴う型変更を行う ALTER TABLE ... MODIFY COLUMN、 物理カラムに対する ALTER TABLE ... DROP COLUMN または ... CLEAR COLUMN、 ALIAS を含むすべてのカラムに対する ALTER TABLE ... RENAME COLUMN、 ALTER TABLE ... DROP INDEX、... CLEAR INDEX、... DROP PROJECTION、 ... CLEAR PROJECTION、... DROP STATISTICS、... CLEAR STATISTICS、および materialize_ttl_after_modify が有効な場合の ALTER TABLE ... MODIFY TTL。
  • 重量級ミューテーションとして実行される場合の ALTER TABLE ... UPDATE (デフォルトの alter_update_mode = 'heavy' と、他のモードがフォールバックするすべてのケースが該当) 、 ALTER TABLE ... DELETE WHERE、ALTER TABLE ... MATERIALIZE INDEX、 ... MATERIALIZE PROJECTION、... MATERIALIZE STATISTICS、... MATERIALIZE COLUMN、 ... MATERIALIZE TTL (上記の MODIFY TTL とは異なり、常に対象) 、 ... APPLY DELETED MASK、... APPLY PATCHES および ... REWRITE PARTS。
その他の ALTER ステートメントは許可されます。これには ADD COLUMN、COMMENT COLUMN、 MODIFY SETTING、Enum の拡張、および ALIAS カラムに対する DROP COLUMN が含まれます。 専用の DELETE FROM ... および UPDATE ... SET ... ステートメントは、 上記の ALTER TABLE ... DELETE WHERE や ALTER TABLE ... UPDATE コマンドとは別のものであり、 それらがサポートするどのモードでも、この設定によって拒否されることはありません。この設定が制御するのは ALTER DDL のみです。データ変更全般を制限するには、 ALTER DELETE および ALTER UPDATE 権限の GRANT と REVOKE を使用してください。ただし、 これらの権限は専用ステートメントと ALTER コマンドの両方に適用されるため、両者を 区別して制限することはできない点に注意してください。 このチェックは MergeTree ファミリーのテーブルにのみ適用されます。Memory、 Log、StripeLog、KeeperMap、EmbeddedRocksDB などの他のエンジンでは、この設定は無視されます。

allow_nonconst_timezone_arguments

toTimeZone()、fromUnixTimestamp*()、snowflakeIDToDateTime*() などの一部の時刻関連関数で、非定数のタイムゾーン引数を許可します。 この設定は、互換性のためだけに存在します。ClickHouse では、タイムゾーンはデータ型、すなわちカラムのプロパティです。 この設定を有効にすると、1 つのカラム内の値ごとに異なるタイムゾーンを持てるかのような、誤った印象を与えます。 したがって、この設定は有効にしないでください。

allow_nullable_tuple_in_extracted_subcolumns

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_preliminary_distinct_abandoning

予備段 (ストリームごと) の DISTINCT が、ほぼ一意な入力に対する重複排除を打ち切り、ハッシュテーブルを解放して残りの行をそのまま通過させられるようにします。予備段の DISTINCT は設計上ベストエフォートであり (重複排除を行う場合でも、異なるストリームに由来する重複はそのまま通過します) 、最終段の DISTINCT がその出力を再度重複排除します。そのため、打ち切っても取り除ける重複はほとんど失われず、一意なキーの2つ目のコピーに要するメモリとハッシュ計算を節約できます。予備段の DISTINCT がリミットのヒント (後続の並べ替えを伴わない単純な LIMIT) を持つ場合には適用されません。

allow_rank_dense_rank_arguments

後方互換性のため、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

条件をWHEREからPREWHEREに移動する際に、フィルタリングを最適化するため条件の並び順の変更を許可します

allow_replace_partition_from_empty_source

ソースのそのパーティションにパーツが存在しない場合でも、ALTER TABLE ... REPLACE PARTITION ... FROM ... で宛先パーティションをサイレントに削除できるようにします。 デフォルトでは、これは許可されていません。要求されたパーティションにデータがないソースから REPLACE PARTITION を実行すると、例外が発生します。これは、この操作が実質的に宛先に対するサイレントな DROP PARTITION になるためです (宛先のデータは削除されますが、それを置き換えるデータはありません) 。これは、意図しないデータ損失の一般的な原因です (#23727 を参照) 。 たとえば、宛先のデータを消去するために意図的に空のソースパーティションを使う場合は、この設定を有効にすると従来の動作に戻せます。無条件に削除したい場合は、代わりに ALTER TABLE ... DROP PARTITION ... を使用してください。

allow_settings_after_format_in_insert

INSERT クエリで、FORMAT の後に SETTINGS を許可するかどうかを制御します。SETTINGS の一部が値として解釈される可能性があるため、この設定の使用は推奨されません。 例:
ただし、次のクエリは allow_settings_after_format_in_insert が有効な場合にのみ動作します:
設定可能な値:
  • 0 — 不可。
  • 1 — 許可。
古い構文に依存するユースケースがある場合に限り、後方互換性のためにこの設定を使用してください。

allow_simdjson

AVX2 命令が利用可能な場合に、JSON* 関数で simdjson ライブラリを使用できるようにします。無効にすると、rapidjson が使用されます。

allow_special_serialization_kinds_in_output_formats

Sparse や Replicated のような特殊なシリアライゼーション種別を持つカラムを、フルカラム表現に変換せずに出力できるようにします。 これにより、フォーマット処理時の不要なデータコピーを避けられます。

allow_unrestricted_reads_from_keeper

system.zookeeper table から無制限に (path に条件を指定せずに) 読み取ることを許可します。便利な場合もありますが、ZooKeeper に対して安全ではありません。

allow_url_wildcard_from_index_pages

別名: allow_experimental_url_wildcard_from_index_pages HTTP のインデックスページからの url() および ENGINE = URL に対する wildcard 展開を許可します。

allow_window_partitions_independently

MergeTree テーブルのパーティション式がウィンドウ PARTITION BY カラムの決定論的関数である場合、パーティションごとに別スレッドでウィンドウ関数を独立して評価します。各パーティションは個別のストリームで読み取られ、ウィンドウのソート記述に従って個別にソートされた後、それぞれ専用のウィンドウ変換で処理されます。通常はすべての行をスレッド間で再配分する hash scatter をスキップします。パーティション数がコア数に近く、各パーティションのサイズがほぼ同じ場合に有効です。それ以外の場合はコストヒューリスティックによりこの最適化はスキップされます。max_number_of_partitions_for_independent_window および force_window_partitions_independently を参照してください。FINAL または並列レプリカでは適用されません。