add_http_cors_header
additional_result_filter
SELECTクエリの結果に適用される追加のフィルタ式です。
この設定はどのサブクエリにも適用されません。
Example
additional_table_filters
aggregate_function_input_format
state— シリアライズされた state を含むバイナリ文字列 (デフォルト) 。AggregateFunction の値をバイナリデータとして受け取る、標準の動作です。value— このフォーマットでは、aggregate function の引数の単一の値、または引数が複数ある場合はそれらの Tuple を受け取ります。これらは対応する IDataType または DataTypeTuple を使用してデシリアライズされ、その後集計されて state が形成されます。array— このフォーマットでは、上記のvalueオプションで説明したとおり、値の Array を受け取ります。Array のすべての要素が集計されて state が形成されます。
aggregate_function_input_format = 'value' の場合:
aggregate_function_input_format = 'array' の場合:
value および array フォーマットは、挿入時に値の生成と集約が必要になるため、デフォルトの state フォーマットよりも低速です。
aggregate_functions_null_for_empty
- 0 — 無効。
- 1 — 有効。
aggregate_functions_null_for_empty = 0 の場合、次のようになります。
aggregate_functions_null_for_empty = 1 の場合、結果は次のようになります:
aggregation_in_order_max_block_bytes
aggregation_memory_efficient_merge_threads
ai_function_credentials
provider、endpoint、model、省略可能な api_key など) に使用する named collection の名前です。空の場合は例外が発生します。
ai_function_embedding_max_batch_size
aiEmbed が 1 回の HTTP リクエストで送信するテキストの最大数です。API 呼び出しのオーバーヘッドを減らすため、テキストはこのサイズのバッチにまとめられます。たとえば、一意なテキストが 500 件あり、バッチサイズが 100 の場合、HTTP リクエストは 5 回になります。
ai_function_max_api_calls_per_query
ai_function_max_input_tokens_per_query
usage オブジェクトを返すプロバイダ (OpenAI、Anthropic、vLLM) に対してのみ適用されます。トークン使用量を返さないプロバイダ (特に HuggingFace TEI) ではカウンターが 0 のままになるため、そのような呼び出しの上限を設けるには、代わりに ai_function_max_api_calls_per_query を使用してください。
ai_function_max_output_tokens_per_query
usage オブジェクトを含めて返す provider (OpenAI、Anthropic、vLLM) のみです。これは埋め込み関数 (特に aiEmbed) には適用されません。埋め込み関数は出力トークンを生成しないためです。
ai_function_max_retries
ai_function_retry_initial_delay_ms を初期値とする指数バックオフを使用します。
ai_function_request_timeout_sec
ai_function_max_retries に従って再試行されることがあります。
ai_function_retry_initial_delay_ms
ai_function_throw_on_error
ai_function_throw_on_quota_exceeded
ai_function_max_input_tokens_per_query、ai_function_max_output_tokens_per_query、または ai_function_max_api_calls_per_query) を超えると、例外が発生してクエリは中止されます。false の場合、残りの行にはカラムの型のデフォルト値 (String の場合は空文字列) が設定されます。
allow_aggregate_partitions_independently
allow_archive_path_syntax
<archive> :: <file> として解析します。
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
receive_data_timeout の timeout の間 Progress が更新されていない場合) 、最初の Data パケットを受信するまでは新しい connection を確立できます。無効な場合は、最初に Progress が発生した時点でレプリカの切り替えを無効にします。
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_deprecated_database_ordinary
allow_deprecated_error_prone_window_functions
allow_deprecated_snowflake_conversion_functions
snowflakeToDateTime、snowflakeToDateTime64、dateTimeToSnowflake、dateTime64ToSnowflake は非推奨で、デフォルトで無効になっています。
代わりに、snowflakeIDToDateTime、snowflakeIDToDateTime64、dateTimeToSnowflakeID、dateTime64ToSnowflakeID を使用してください。
非推奨の関数を再び有効にするには (たとえば移行期間中) 、この設定を true にしてください。
allow_deprecated_syntax_for_merge_tree
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_experimental_ai_functions
aiGenerateContent) を有効にします。これらの関数は、AI プロバイダーに対して外部 HTTP リクエストを実行します。
allow_experimental_analyzer
enable_analyzer
新しいクエリアナライザを有効にします。
allow_experimental_cleanup_old_data_files_compaction
allow_experimental_codecs
allow_experimental_database_glue_catalog
allow_database_glue_catalog
catalog_type = ‘glue’ の実験的なデータベースエンジン DataLakeCatalog の使用を許可します
Cloud でのデフォルト値: 1.
allow_experimental_database_hms_catalog
allow_experimental_database_iceberg
allow_database_iceberg
catalog_type = ‘iceberg’ の実験的なデータベースエンジン DataLakeCatalog の使用を許可します
Cloud でのデフォルト値: 1.
allow_experimental_database_materialized_postgresql
allow_experimental_database_paimon_rest_catalog
allow_experimental_database_unity_catalog
allow_database_unity_catalog
catalog_type = ‘unity’ の実験的なデータベースエンジン DataLakeCatalog を有効にします
Cloud でのデフォルト値: 1.
allow_experimental_delta_kernel_rs
allow_experimental_delta_lake_writes
allow_experimental_expire_snapshots
ALTER TABLE ... EXECUTE expire_snapshots を実行できるようにします。
allow_experimental_funnel_functions
allow_experimental_geo_types_in_iceberg
geometry および geography フィールド型を、ClickHouse の Geometry (Variant) 型としてパースできるようにします。
allow_experimental_hash_functions
allow_experimental_iceberg_compaction
allow_experimental_join_right_table_sorting
true に設定され、join_to_sort_minimum_perkey_rows と join_to_sort_maximum_table_rows の条件が満たされている場合、LEFT または INNER のハッシュ結合のパフォーマンスを向上させるため、右テーブルをキー順に並べ替えます。
allow_experimental_json_lazy_type_hints
allow_experimental_kafka_offsets_storage_in_keeper
allow_experimental_kusto_dialect
allow_experimental_materialized_postgresql_table
allow_experimental_nlp_functions
allow_experimental_nullable_tuple_type
enable_nullable_tuple_type
テーブルで Nullable Tuple カラムを作成できるようにします。
この設定は、抽出された Tuple のサブカラムを Nullable にできるかどうかは制御しません (たとえば、Dynamic、Variant、JSON、または Tuple カラムから抽出されたもの) 。
抽出された Tuple のサブカラムを Nullable にできるかどうかを制御するには、allow_nullable_tuple_in_extracted_subcolumns を使用してください。
allow_experimental_object_storage_queue_hive_partitioning
allow_experimental_paimon_storage_engine
allow_experimental_parallel_reading_from_replicas
enable_parallel_replicas
SELECT クエリの実行時に、各分片から最大 max_parallel_replicas 個のレプリカを使用します。読み取りは並列化され、動的に調整されます。0 - 無効、1 - 有効 (障害時は自動的に無効化) 、2 - 有効 (障害時に例外をスロー)
allow_experimental_polyglot_dialect
allow_experimental_prql_dialect
allow_experimental_text_index_lazy_apply
true に設定すると、テキスト索引クエリで遅延ポスティングリスト適用モードを使用できるようになります。
allow_experimental_time_series_aggregate_functions
allow_experimental_ts_to_grid_aggregate_function
Prometheus ライクな時系列のリサンプリング、rate、delta 計算のための実験的な timeSeries* 集約関数。
allow_experimental_time_series_table
- 0 — TimeSeries テーブルエンジンは無効です。
- 1 — TimeSeries テーブルエンジンは有効です。
allow_experimental_unique_key
UNIQUE KEY 句を指定して作成できるようにします。
allow_experimental_window_view
allow_experimental_ytsaurus_dictionary_source
allow_experimental_ytsaurus_table_engine
allow_experimental_ytsaurus_table_function
allow_fuzz_query_functions
fuzzQuery 関数を有効にします。
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader の使用を許可します。Cookie など一部のヘッダーには機密情報が含まれる可能性があるため、セキュリティ上の理由からデフォルトでは有効になっていません。なお、X-ClickHouse-* および Authentication ヘッダーは常に制限されており、この関数では取得できません。
allow_hyperscan
allow_iceberg_remove_orphan_files
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
Iceberg に対する insert クエリの実行を許可します。
allow_introspection_functions
- 1 — イントロスペクション関数が有効です。
- 0 — イントロスペクション関数が無効です。
- サンプリングクエリプロファイラ
- システムテーブル trace_log
allow_key_condition_coalesce_rewrite
coalesce または ifNull を含む WHERE/PREWHERE 述語に対して、MergeTree の主キーおよびスキップ索引で granule を絞り込めるようになります。この設定が無効な場合、そのような述語は索引解析では内容を判別できないため絞り込みに使われず、一致しない granule も読み込まれます。影響があるのは読み込まれる granule だけで、クエリ結果は変わりません。行のフィルタリングには引き続き元の述語が使われるためです。
索引解析の前に、次の 2 種類の述語の shape が書き換えられます:
coalesce/ifNullに対する比較 (たとえばcoalesce(a, b) = 5) は、各引数の索引で絞り込めるよう論理和に書き換えられます:a = 5 OR (a IS NULL AND b = 5)。引数がさらに多い場合も同様に拡張されます。- 条件として直接使われる、偽値 (ゼロ) の定数をデフォルト値に持つ
coalesce/ifNull(たとえばifNull(a = 5, 0)やcoalesce(a = 5, 0)) は、内部の述語a = 5にアンラップされます。このような wrapper は、内部述語の三値論理の結果を確定したブール値に畳み込みます (NULLはfalseに対応付けられます) 。
allow_limit_by_partitions_independently
LIMIT BY のカラムの決定論的関数である場合、パーティションごとに独立した LIMIT BY の評価を別々のスレッドで有効にします。
allow_materialized_view_with_bad_select
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nondeterministic_mutations
dictGet のような非決定論的関数を、レプリケートテーブルに対する mutation で使用できるようにするユーザーレベルの設定です。
たとえば、辞書はノード間で同期が取れていない場合があるため、そこから値を取得する mutation は、デフォルトではレプリケートテーブルで許可されていません。この設定を有効にすると、そのような動作を許可できますが、使用するデータがすべてのノードで同期されていることを保証する責任はユーザーにあります。
例
allow_nondeterministic_optimize_skip_unused_shards
rand や dictGet など。後者は更新時にいくつか注意点があります) の使用を許可します。
設定可能な値:
- 0 — 不可。
- 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_prefetched_read_pool_for_local_filesystem
allow_prefetched_read_pool_for_remote_filesystem
allow_push_predicate_ast_for_distributed_subqueries
allow_push_predicate_when_subquery_contains_with
allow_rank_dense_rank_arguments
RANK および DENSE_RANK ウィンドウ関数に引数を渡せるようにします。
SQL 標準では、RANK と DENSE_RANK は引数を取りません。これらは
OVER (ORDER BY ...) ウィンドウのみに基づいて行の順位を付けます。ClickHouse 26.5 より前のバージョンでは、
RANK(x) OVER (...) のようなクエリでも引数が黙って受け入れられ、無視されていました。これにより、
ユーザーの混乱を招いていました
(引数が見えているため順位付けに影響しているように見えますが、実際には影響しません) 。
この設定が false (デフォルト) の場合、RANK と DENSE_RANK は引数を受け付けず、
NUMBER_OF_ARGUMENTS_DOESNT_MATCH を返します。true に設定すると、従来の寛容な動作が
復元され、26.5 より前と同様に引数は黙って無視されます。
allow_reorder_prewhere_conditions
allow_settings_after_format_in_insert
INSERT クエリで、FORMAT の後に SETTINGS を許可するかどうかを制御します。ただし、SETTINGS の一部が値として解釈される可能性があるため、使用は推奨されません。
Example:
allow_settings_after_format_in_insert が有効な場合にのみ動作します。
- 0 — 不可。
- 1 — 可。
この設定は、ユースケースで古い構文に依存している場合にのみ、後方互換性のために使用してください。
allow_simdjson
JSON* 関数で simdjson ライブラリを使用できるようにします。無効にすると、rapidjson が使用されます。
allow_special_serialization_kinds_in_output_formats
allow_statistics
allow_experimental_statistics
カラムに statistics を設定して定義し、statistics を操作できるようにします。
allow_statistics_optimize
allow_statistic_optimize
統計情報を使用してクエリを最適化することを許可します
allow_suspicious_codecs
allow_suspicious_fixed_string_types
FixedString(n) 型のカラムを作成できるようにします。長さが 256 以上の FixedString は不自然であり、多くの場合は誤用を示しています
allow_suspicious_indices
allow_suspicious_low_cardinality_types
FixedString(8_bytes_or_less) で LowCardinality を使用することを許可または制限します。
固定長でサイズの小さい値に LowCardinality を使用しても、通常は非効率です。これは、ClickHouse が各行に対して数値索引を格納するためです。その結果、次のような影響が生じる可能性があります。
- ディスク使用量が増加することがあります。
- Dictionary のサイズによっては、RAM 使用量が増えることがあります。
- 追加の符号化/復号化処理により、一部の関数の動作が遅くなることがあります。
- 1 —
LowCardinalityの使用は制限されません。 - 0 —
LowCardinalityの使用は制限されます。
allow_suspicious_primary_key
PRIMARY KEY/ORDER BY (例: SimpleAggregateFunction) を許可します。
allow_suspicious_ttl_expressions
allow_suspicious_types_in_group_by
allow_suspicious_types_in_order_by
allow_suspicious_variant_types
allow_unrestricted_reads_from_keeper
alter_move_to_space_execute_async
alter_partition_verbose_result
- 0 — 詳細表示を無効にします。
- 1 — 詳細表示を有効にします。
alter_sync
replication_alter_partitions_sync
ALTER、OPTIMIZE または TRUNCATE クエリによってレプリカ上で実行されるアクションについて、どのように待機するかを指定できます。
設定可能な値:
0— 待機しません。1— 自身の実行完了を待機します。2— すべてのレプリカの実行完了を待機します。3- アクティブなレプリカの実行完了のみ待機します。
0。
alter_sync は Replicated テーブルおよび SharedMergeTree テーブルにのみ適用され、Replicated テーブルでも Shared テーブルでもないテーブルに対する alter には効果がありません。alter_update_mode
UPDATE コマンドを含む ALTER クエリに対するモードです。
設定可能な値:
heavy- 通常のミューテーションを実行します。lightweight- 可能であれば論理更新を実行し、そうでない場合は通常のミューテーションを実行します。lightweight_force- 可能であれば論理更新を実行し、そうでない場合は例外をスローします。
analyze_index_with_space_filling_curves
ORDER BY mortonEncode(x, y) または ORDER BY hilbertEncode(x, y) で、クエリにその引数に対する条件 (たとえば x >= 10 AND x <= 20 AND y >= 20 AND y <= 30) があると、索引解析に空間充填曲線を使用します。
analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested
SELECT a.b.c FROM table ARRAY JOIN a は動作せず、SELECT a FROM table でも a.b.c カラムは Nested a の結果に含まれません。
analyzer_compatibility_join_using_top_level_identifier
SELECT a + 1 AS b FROM t1 JOIN t2 USING (b) では、結合は t1.b = t2.b ではなく、t1.a + 1 = t2.b によって実行されます) 。
analyzer_compatibility_prefer_alias_over_subcolumn
b.id のような複合識別子が、別名 b を持つテーブルのカラム id を指す場合と、別のカラムの Tuple サブカラム b.id を指す場合の両方があり得るときは、別名プレフィックスとしての解釈 (b のカラム id) を優先します。デフォルトでは、新しいアナライザはサブカラムを優先します。従来のアナライザの名前解決に合わせるには、これを有効にしてください。
analyzer_inline_views
any_join_distinct_right_table_keys
ANY INNER|LEFT JOIN 演算で、従来の ClickHouse server の動作を有効にします。
この設定は、ユースケースが従来の
JOIN の動作に依存している場合に限り、後方互換性のために使用してください。- ClickHouse は、左から右へのテーブルキーの多対一マッピングのロジックを使用するため、
t1 ANY LEFT JOIN t2とt2 ANY RIGHT JOIN t1の結果は一致しません。 ANY INNER JOINの結果には、SEMI LEFT JOINと同様に、左テーブルのすべての行が含まれます。
- ClickHouse は、
ANY RIGHT JOINで一対多のキーマッピングを行うロジックを使用するため、t1 ANY LEFT JOIN t2とt2 ANY RIGHT JOIN t1の結果は同一になります。 ANY INNER JOINの結果には、左テーブルと右テーブルの両方から、キーごとに 1 行が含まれます。
- 0 — 従来の動作は無効です。
- 1 — 従来の動作は有効です。
apply_deleted_mask
apply_mutations_on_fly
apply_patch_parts
apply_patch_parts_join_cache_buckets
apply_prewhere_after_final
apply_row_policy_after_final
- 0 — 行ポリシーと PREWHERE は FINAL の前に適用されます (デフォルト) 。
- 1 — 行ポリシーと PREWHERE は FINAL の後に適用されます。
apply_settings_from_server
SET クエリ、または SELECT クエリの SETTINGS セクション) ではなく、ユーザープロファイル (users.xml または ALTER USER などのクエリ) で設定する必要があります。クライアント経由では false に変更できますが、true には変更できません (ユーザープロファイルで apply_settings_from_server = false になっている場合、サーバーは設定を送信しないためです) 。
なお、当初 (24.12) にはサーバー setting (send_settings_to_client) がありましたが、使いやすさの向上のため、後にこの client setting に置き換えられました。
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
- ‘path’ — FlightDescriptor::Path を使用します (デフォルト。ほとんどの Arrow Flight サーバーで動作します)
- ‘command’ — SELECT クエリを指定して FlightDescriptor::Command を使用します (Dremio では必須)
ast_fuzzer_any_query
ast_fuzzer_runs で制御) は、読み取り専用クエリ (SELECT、EXPLAIN、SHOW、DESCRIBE、EXISTS) のみをファジングします。true の場合は、DDL や INSERT を含むすべてのクエリタイプがファジングされます。
ast_fuzzer_runs
- 0: 無効 (デフォルト) 。
- 0 より大きく 1 未満の値: ファズ化クエリを 1 件実行する確率。
- 1 以上の値: 通常のクエリ 1 件ごとに実行するファズ化クエリ数。
asterisk_include_alias_columns
SELECT *) に ALIAS カラムを含めるかどうかを指定します。
設定可能な値:
- 0 - 無効
- 1 - 有効
asterisk_include_materialized_columns
SELECT *) に MATERIALIZED カラムを含めます。
設定可能な値:
- 0 - 無効
- 1 - 有効
asterisk_include_virtual_columns
SELECT *) に仮想カラムを含めるかどうかを指定します。
設定可能な値:
- 0 - 無効
- 1 - 有効
async_insert
INSERT クエリのデータはキューに保存され、後でバックグラウンドでテーブルにフラッシュされます。wait_for_async_insert が false の場合、INSERT クエリはほぼ即座に処理され、そうでない場合はデータがテーブルにフラッシュされるまでクライアントは待機します
async_insert_busy_timeout_decrease_rate
async_insert_busy_timeout_increase_rate
async_insert_busy_timeout_max_ms
async_insert_busy_timeout_ms
最初のデータが到着してから、クエリごとに収集されたデータをダンプするまでの最大待機時間です。
Cloud でのデフォルト値: 1000 (1s).
async_insert_busy_timeout_min_ms
async_insert_deduplicate
async_insert_max_data_size
104857600 (100 MiB).
async_insert_max_query_number
async_insert_deduplicate が 1 の場合にのみ有効です。
async_insert_poll_timeout_ms
async_insert_use_adaptive_busy_timeout
async_query_sending_for_remote
async_socket_for_remote
automatic_parallel_replicas_min_bytes_per_replica
automatic_parallel_replicas_mode=1 の場合にのみ適用されます) 。0 はしきい値がないことを意味します。
読み取る総バイト数は、収集された統計に基づいて推定されます。
automatic_parallel_replicas_mode
enable_analyzer = 1、enable_parallel_replicas != 0、parallel_replicas_local_plan = 1 が必要で、さらに cluster_for_parallel_replicas を指定する必要があります。
0 - 無効、1 - 有効、2 - 統計の収集のみ有効 (並列レプリカを使用した実行への切り替えは無効) 。
azure_allow_parallel_part_upload
azure_check_objects_after_upload
azure_connect_timeout_ms
azure_create_new_file_on_insert
azure_ignore_file_doesnt_exist
- 1 —
SELECTは空の結果を返します。 - 0 —
SELECTは例外をスローします。
azure_list_object_keys_size
azure_max_blocks_in_multipart_upload
azure_max_get_burst
azure_max_get_rps と同じです
azure_max_get_rps
azure_max_inflight_parts_for_one_file
azure_max_put_burst
azure_max_put_rps と同じです
azure_max_put_rps
azure_max_redirects
azure_max_single_part_copy_size
azure_max_single_part_upload_size
azure_max_single_read_retries
azure_max_unexpected_write_error_retries
azure_max_upload_part_size
azure_min_upload_part_size
azure_request_timeout_ms
azure_sdk_max_retries
azure_sdk_retry_initial_backoff_ms
azure_sdk_retry_max_backoff_ms
azure_skip_empty_files
- 0 — 空ファイルが要求されたフォーマットに対応していない場合、
SELECTは例外をスローします。 - 1 — 空ファイルに対して
SELECTは空の結果を返します。
azure_strict_upload_part_size
azure_throw_on_zero_files_match
- 1 —
SELECTは例外をスローします。 - 0 —
SELECTは空の結果を返します。
azure_truncate_on_insert
azure_upload_part_size_multiply_factor
azure_upload_part_size_multiply_parts_count_threshold
azure_use_adaptive_timeouts
true に設定すると、すべての Azure リクエストで、最初の 2 回の試行は送信および受信タイムアウトを短くして行われます。
false に設定すると、すべての試行が同じタイムアウトで行われます。
backup_restore_batch_size_for_keeper_multi
backup_restore_batch_size_for_keeper_multiread
backup_restore_failure_after_host_disconnected_for_seconds
backup_restore_finish_timeout_after_error_sec
backup_restore_keeper_fault_injection_probability
backup_restore_keeper_fault_injection_seed
backup_restore_keeper_max_retries
backup_restore_keeper_max_retries_while_handling_error
backup_restore_keeper_max_retries_while_initializing
backup_restore_keeper_retry_initial_backoff_ms
backup_restore_keeper_retry_max_backoff_ms
60000.
backup_restore_keeper_value_max_size
backup_restore_s3_retry_attempts
backup_restore_s3_retry_initial_backoff_ms
backup_restore_s3_retry_max_backoff_ms で指定された最大値に達するまで、遅延が指数関数的に増加します。
backup_restore_s3_retry_jitter_factor
Aws::Client::RetryStrategy において、再試行時の backoff 遅延に適用されるジッタ係数です。算出された backoff 遅延には、最大 backup_restore_s3_retry_max_backoff_ms まで、[1.0, 1.0 + jitter] の範囲のランダムな係数が乗算されます。[0.0, 1.0] の範囲内である必要があります
backup_restore_s3_retry_max_backoff_ms
backup_slow_all_threads_after_retryable_s3_error
true に設定すると、同じバックアップエンドポイントへの S3 リクエストを実行しているすべてのスレッドは、いずれか 1 つの S3 リクエストが ‘Slow Down’ などの再試行可能な S3 エラーに遭遇した後、速度が抑えられます。
false に設定すると、各スレッドは他のスレッドとは独立して S3 リクエストのバックオフを処理します。
cache_warmer_threads
calculate_text_stack_trace
cancel_http_readonly_queries_on_client_close
SELECT) をキャンセルします。
Cloud でのデフォルト値: 1。
cast_ipv4_ipv6_default_on_conversion_error
cast_keep_nullable
Nullable データ型を保持するかどうかを制御します。
この設定を有効にすると、CAST 関数の引数が Nullable である場合、結果も Nullable 型に変換されます。この設定を無効にすると、結果は常に宛先の型そのものになります。
設定可能な値:
- 0 —
CASTの結果は、指定した宛先の型そのものになります。 - 1 — 引数の型が
Nullableの場合、CASTの結果はNullable(DestinationDataType)に変換されます。
Nullable 修飾子が適用されます。
- CAST 関数
cast_string_to_date_time_mode
-
'best_effort'— 拡張パースを有効にします。 ClickHouse は、基本的なYYYY-MM-DD HH:MM:SSフォーマットに加え、ISO 8601 のすべての日付・時刻フォーマットをパースできます。たとえば、'2018-06-08T01:02:03.000Z'です。 -
'best_effort_us'—best_effortとほぼ同じです (違いについては parseDateTimeBestEffortUS を参照してください) -
'basic'— 基本パーサーを使用します。 ClickHouse は、基本的なYYYY-MM-DD HH:MM:SSまたはYYYY-MM-DDフォーマットのみをパースできます。たとえば、2019-08-20 10:18:56または2019-08-20です。
cast_string_to_dynamic_use_inference
cast_string_to_variant_use_inference
check_named_collection_dependencies
check_query_single_value_result
MergeTree ファミリーのエンジンにおける CHECK TABLE クエリ結果の詳細度を定義します。
設定可能な値:
- 0 — クエリは、テーブルの個々のデータパートごとのチェック状態を表示します。
- 1 — クエリは、テーブル全体のチェック状態を表示します。
check_referential_table_dependencies
check_table_dependencies
checksum_on_read
cloud_mode
1.
cloud_mode_database_engine
2.
cloud_mode_engine
- 0 - すべて許可
- 1 - DDLs を *ReplicatedMergeTree を使用するように書き換える
- 2 - DDLs を SharedMergeTree を使用するように書き換える
- 3 - リモートディスクが明示的に指定されている場合を除き、DDLs を SharedMergeTree を使用するように書き換える
- 4 - 3 と同じですが、さらに Distributed の代わりに Alias を使用します (Alias テーブルは Distributed テーブルの宛先テーブルを指すため、対応するローカルテーブルが使用されます)
2.
cluster_for_parallel_replicas
default。
cluster_function_process_archive_on_multiple_nodes
true に設定すると、クラスター関数でのアーカイブ処理のパフォーマンスが向上します。互換性を確保し、以前のバージョンでアーカイブを含むクラスター関数を使用している場合に 25.7 以降へのアップグレード中のエラーを回避するため、false に設定してください。
cluster_table_function_buckets_batch_size
bucket 分割粒度を使用するクラスターテーブル関数で、タスクを分散処理する際に使われる Batch のおおよそのサイズ (バイト単位) を定義します。システムは、少なくともこのサイズに達するまでデータを蓄積します。実際のサイズは、データ境界に合わせるため、これよりわずかに大きくなる場合があります。
cluster_table_function_split_granularity
file— 各タスクがファイル全体を処理します。bucket— ファイル内の内部データブロックごとにタスクが作成されます (たとえば、Parquet の行グループ) 。
bucket のようなより細かい粒度を選ぶことで、並列度を向上できることがあります。
たとえば、Parquet ファイルに複数の行グループが含まれている場合、bucket 粒度を有効にすると、各グループを異なるワーカーが独立して処理できます。
collect_hash_table_stats_during_aggregation
collect_hash_table_stats_during_joins
compatibility
compatibility 設定を使用すると、ClickHouse は指定された以前の ClickHouse バージョンのデフォルト設定を使用します。
設定がデフォルト以外の値に変更されている場合、それらの設定はそのまま維持されます (compatibility 設定の影響を受けるのは、変更されていない設定のみです) 。
この設定には、22.3、22.8 のような ClickHouse のバージョン番号を文字列として指定します。値が空の場合、この設定は無効になります。
デフォルトでは無効です。
ClickHouse Cloud では、サービスレベルのデフォルトの compatibility 設定は ClickHouse Cloud Support が設定する必要があります。設定を希望する場合は、サポートケースを作成してください。
ただし、compatibility 設定は、セッションでの
SET compatibility = '22.3' やクエリでの SETTINGS compatibility = '22.3' など、標準的な ClickHouse の設定メカニズムを使用して、ユーザー、ロール、プロファイル、クエリ、またはセッションレベルで上書きできます。compatibility_ignore_auto_increment_in_create_table
compatibility_ignore_collation_in_create_table
compatibility_s3_presigned_url_query_in_path
compile_aggregate_expressions
- 0 — JIT コンパイルを使用せずに集約処理が実行されます。
- 1 — JIT コンパイルを使用して集約処理が実行されます。
compile_expressions
compile_sort_description
connect_timeout
connect_timeout_with_failover_ms
connect_timeout_with_failover_secure_ms
connection_pool_max_wait_ms
- 正の整数。
- 0 — タイムアウトなし。
connections_with_failover_max_tries
convert_query_to_cnf
true に設定すると、SELECT クエリは連言標準形 (CNF) に変換されます。クエリを CNF に書き換えることで、実行が高速になる場合があります (詳しくは、このGitHub issueを参照してください) 。
たとえば、次の SELECT クエリは変更されません (これがデフォルトの動作です) 。
convert_query_to_cnf を true に設定して、どう変わるか見てみましょう。
WHERE句がCNFに書き換えられている点に注目してください。ただし、結果セットはまったく同じで、ブール論理は変わっていません。
right で、この場合、デコリレーション後のプランにはサブクエリ入力が右側にある RIGHT JOIN が含まれます。
設定可能な値:
left- デコリレーション処理により LEFT JOIN が生成され、入力テーブルは左側に配置されます。right- デコリレーション処理により RIGHT JOIN が生成され、入力テーブルは右側に配置されます。
count_distinct_implementation
uniq* 関数を指定します。
設定可能な値:
count_distinct_optimization
count_matches_stop_at_empty_match
countMatches 関数で、パターンが長さ0に一致した時点でカウントを停止します。
create_if_not_exists
CREATE ステートメントの IF NOT EXISTS を有効にします。この設定または IF NOT EXISTS のいずれかが指定されていて、指定した名前のテーブルがすでに存在する場合、例外は発生しません。
create_index_ignore_unique
create_replicated_merge_tree_fault_injection_probability
create_table_empty_primary_key_by_default
cross_join_min_bytes_to_compress
cross_join_min_rows_to_compress
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — カラム定義のデータ型は、デフォルトで
Nullableに設定されます。 - 0 — カラム定義のデータ型は、デフォルトで
Nullableには設定されません。
database_atomic_wait_for_drop_and_detach_synchronously
DROPおよびDETACHクエリにSYNC修飾子を追加します。
設定可能な値:
- 0 — クエリは遅延して実行されます。
- 1 — クエリは遅延せずに実行されます。
database_datalake_require_metadata_access
database_replicated_allow_explicit_uuid
database_replicated_allow_heavy_create
database_replicated_allow_only_replicated_engine
1.
database_replicated_allow_replicated_engine_arguments
database_replicated_always_detach_permanently
database_replicated_enforce_synchronous_settings
database_atomic_wait_for_drop_and_detach_synchronously、mutations_sync、alter_sync) 。これらの設定を有効にすることは推奨されません。
database_replicated_initial_query_timeout_sec
- 正の整数。
- 0 — 無制限。
UNDROP TABLE ステートメントを使用してテーブルを復元できます。
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
deduplicate_insert
INSERT INTO のブロック重複排除を有効または無効にします (Replicated* テーブルの場合) 。
この設定は、insert_deduplicate および async_insert_deduplicate の設定をオーバーライドします。
この設定には、次の 3 つの設定可能な値があります。
- disable —
INSERT INTOクエリの重複排除は無効です。 - enable —
INSERT INTOクエリの重複排除は有効です。 - backward_compatible_choice — 特定の insert タイプで
insert_deduplicateまたはasync_insert_deduplicateが有効になっている場合、重複排除が有効になります。
deduplicate_insert_select
INSERT SELECT のブロック重複排除 (Replicated* テーブル向け) を有効または無効にします。
この設定は、INSERT SELECT クエリに対して insert_deduplicate と deduplicate_insert より優先されます。
この設定には 4 つの設定可能な値があります:
- disable —
INSERT SELECTクエリの重複排除は無効です。 - force_enable —
INSERT SELECTクエリの重複排除は有効です。SELECT の結果が安定していない場合、例外がスローされます。 - enable_when_possible —
insert_deduplicateが有効で、かつ SELECT の結果が安定している場合に重複排除が有効になり、それ以外の場合は無効になります。 - enable_even_for_bad_queries -
insert_deduplicateが有効な場合に重複排除が有効になります。SELECT の結果が安定していない場合は警告がログに記録されますが、重複排除を有効にしたままクエリは実行されます。このオプションは後方互換性のためのものです。予期しない結果につながる可能性があるため、代わりに他のオプションを使用することを検討してください。
default_materialized_view_sql_security
DEFINER です。
default_max_bytes_in_join
max_bytes_in_join が設定されていない場合の、右側のテーブルの最大サイズ。
default_normal_view_sql_security
SQL SECURITY オプションを設定できます。SQL security について詳しくは、こちら。
デフォルト値は INVOKER です。
default_table_engine
CREATE ステートメントで ENGINE が設定されていない場合に使用されるデフォルトのテーブルエンジンです。
設定可能な値:
- 有効な任意のテーブルエンジン名を表す文字列
SharedMergeTree。
例
クエリ:
Engine を指定しない新しいテーブルはすべて、Log テーブルエンジンが使用されます。
クエリ:
default_temporary_table_engine
Engine を指定していない新しい一時テーブルでは、Log テーブルエンジンが使用されます。
クエリ:
default_view_definer
DEFINER オプションを設定できます。SQL security の詳細。
デフォルト値は CURRENT_USER です。
defer_partition_pruning_after_final
FINAL クエリでは、パーティションプルーニングはスキップされます。これは
26.3 で導入された、正しさを優先する動作です。FINAL では、同じ主キーを共有しながら
異なるパーティションに存在する行を重複排除する必要が生じることがあり、パーティションプルーニングを行うと、
そうした行が重複排除の入力から暗黙的に除外されてしまいます。
無効な場合は、FINAL を使用していてもパーティションプルーニングが適用され、
26.3 より前の動作に戻ります。これは、パーティションカラムに対する WHERE predicate を含む
クエリでは大幅に高速になる可能性がありますが、同じ主キーを持つ行が異なるパーティションに存在し得ない場合にのみ
正しく動作します。たとえば、パーティションカラムが insert 時に設定され、
その後は決して変更されないイベントログテーブルなどが該当します。
この設定の影響を受けるのは、パーティションキーのカラムがソートキーに含まれていない
パーティション化テーブルのみです。それ以外のテーブルでは、パーティションプルーニングは常に適用されます。
設定可能な値:
- 0 —
FINALの前にパーティションプルーニングを適用します (26.3 より前の動作。高速ですが、一般的には安全ではありません) 。 - 1 —
FINALの後までパーティションプルーニングを遅らせます (デフォルト。正しさを優先) 。
delta_lake_enable_engine_predicate
delta_lake_enable_expression_visitor_logging
delta_lake_insert_max_bytes_in_data_file
delta_lake_insert_max_rows_in_data_file
delta_lake_log_metadata
delta_lake_reload_schema_for_consistency
delta_lake_snapshot_end_version
-1 は最新バージョンを読み取ることを意味します (値 0 は有効なスナップショットバージョンです) 。
delta_lake_snapshot_start_version
delta_lake_snapshot_version
delta_lake_throw_on_engine_predicate_error
describe_compact_output
describe_include_subcolumns
- 0 —
DESCRIBEクエリにサブカラムは含まれません。 - 1 —
DESCRIBEクエリにサブカラムが含まれます。
describe_include_virtual_columns
dialect
dictionary_use_async_executor
dictionary_validate_primary_key_type
distinct_overflow_mode
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、ソースデータが尽きた場合と同様に、 部分的な結果を返します。
distributed_aggregation_memory_efficient
distributed_background_insert_batch
distributed_directory_monitor_batch_inserts
挿入データをバッチ単位で送信する機能を有効または無効にします。
バッチ送信が有効な場合、Distributed テーブルエンジンは、挿入された複数のデータファイルを個別に送信する代わりに、1 回の操作でまとめて送信しようとします。バッチ送信により、サーバーとネットワークのリソースをより効率的に活用できるため、クラスターのパフォーマンスが向上します。
設定可能な値:
- 1 — 有効。
- 0 — 無効。
distributed_background_insert_max_sleep_time_ms
distributed_directory_monitor_max_sleep_time_ms
Distributed テーブルエンジンがデータを送信する際の最大間隔です。distributed_background_insert_sleep_time_ms 設定で指定した間隔が指数関数的に増加するのを制限します。
設定可能な値:
- 正の整数のミリ秒数。
distributed_background_insert_sleep_time_ms
distributed_directory_monitor_sleep_time_ms
Distributedテーブルエンジンがデータを送信する際の基本間隔です。実際の間隔は、エラーが発生すると指数関数的に増加します。
設定可能な値:
- 正の整数のミリ秒数。
distributed_background_insert_split_batch_on_failure
distributed_directory_monitor_split_batch_on_failure
失敗時にバッチを分割するかどうかを有効/無効にします。
特定のバッチをリモートの分片に送信する際、後段に複雑なパイプライン (たとえば GROUP BY を伴う MATERIALIZED VIEW) があると、Memory limit exceeded などのエラーによって失敗することがあります。この場合、再試行しても改善せず、table の distributed 送信が滞る可能性がありますが、そのバッチ内のファイルを 1 つずつ送信すれば INSERT が成功する場合があります。
そのため、この設定を 1 にすると、そのようなバッチでは batching が無効になります (つまり、失敗したバッチに対して distributed_background_insert_batch を一時的に無効にします) 。
設定可能な値:
- 1 — 有効。
- 0 — 無効。
この設定は、破損したバッチにも影響します (異常な server (マシン) の停止や、Distributed table engine で
fsync_after_insert/fsync_directories を使用していないことが原因で発生する場合があります) 。パフォーマンスに悪影響を及ぼす可能性があるため、自動バッチ分割に依存すべきではありません。
distributed_background_insert_timeout
insert_distributed_timeout
Distributed への INSERT クエリのタイムアウトです。insert_distributed_sync が有効な場合にのみ使用されます。値が 0 の場合はタイムアウトしません。
distributed_cache_alignment
distributed_cache_bypass_connection_pool
distributed_cache_connect_backoff_max_ms
distributed_cache_connect_backoff_min_ms
distributed_cache_connect_max_tries
distributed_cache_connect_timeout_ms
distributed_cache_credentials_refresh_period_seconds
distributed_cache_data_packet_ack_window
distributed_cache_discard_connection_if_unread_data
distributed_cache_fetch_metrics_only_from_current_az
distributed_cache_file_cache_name
distributed_cache_log_mode
distributed_cache_max_unacked_inflight_packets
distributed_cache_min_bytes_for_seek
distributed_cache_pool_behaviour_on_limit
distributed_cache_prefer_bigger_buffer_size
distributed_cache_read_only_from_current_az
distributed_cache_read_request_max_tries
distributed_cache_receive_response_wait_milliseconds
distributed_cache_receive_timeout_milliseconds
20000.
distributed_cache_receive_timeout_ms
distributed_cache_send_timeout_ms
distributed_cache_tcp_keep_alive_timeout_ms
distributed_cache_throw_on_error
distributed_cache_use_clients_cache_for_read
distributed_cache_use_clients_cache_for_write
distributed_cache_wait_connection_from_pool_milliseconds
distributed_cache_write_request_max_tries
distributed_connections_pool_size
distributed_ddl_entry_format_version
6.
distributed_ddl_output_mode
throw— クエリが完了したすべてのホストについて、クエリの実行ステータスを含む結果セットを返します。一部のホストでクエリが失敗した場合は、最初の例外を再送出します。一部のホストでまだクエリが完了しておらず、distributed_ddl_task_timeout を超過した場合は、TIMEOUT_EXCEEDED例外を送出します。none—throwと似ていますが、分散 DDL クエリは結果セットを返しません。null_status_on_timeout— 対応するホストでクエリがまだ完了していない場合、TIMEOUT_EXCEEDEDを送出する代わりに、結果セットの一部の行で実行ステータスとしてNULLを返します。never_throw— 一部のホストでクエリが失敗していても、TIMEOUT_EXCEEDEDを送出せず、例外の再送出も行いません。none_only_active-noneと似ていますが、Replicatedデータベースの非アクティブなレプリカは待機しません。注: このモードでは、一部のレプリカでクエリが実行されなかったことや、そのクエリがバックグラウンドで実行されることを判別できません。null_status_on_timeout_only_active—null_status_on_timeoutと似ていますが、Replicatedデータベースの非アクティブなレプリカは待機しませんthrow_only_active—throwと似ていますが、Replicatedデータベースの非アクティブなレプリカは待機しません
none_only_active.
distributed_ddl_task_timeout
- 正の整数。
- 0 — 非同期モード。
- 負の整数 — タイムアウトなし。
distributed_foreground_insert
insert_distributed_sync
Distributed テーブルへのデータの同期挿入を有効または無効にします。
デフォルトでは、Distributed テーブルにデータを挿入すると、ClickHouse サーバーはバックグラウンドモードでクラスターのノードにデータを送信します。distributed_foreground_insert=1 の場合、データは同期的に処理され、すべての分片にすべてのデータが保存されて初めて INSERT 操作は成功します (internal_replication が true の場合は、各分片で少なくとも 1 つのレプリカ) 。
設定可能な値:
0— データはバックグラウンドモードで挿入されます。1— データは同期モードで挿入されます。
1。
関連項目
distributed_group_by_no_merge
0— 無効 (最終的なクエリ処理はイニシエーター ノードで行われます) 。1- 分散クエリ処理で、異なるサーバーからの集約状態をマージしません (クエリは分片上で完全に処理され、イニシエーターはデータをプロキシするだけです) 。異なる分片に異なるキーがあることが確実な場合に使用できます。2-1と同じですが、ORDER BYとLIMITはイニシエーターで適用します (distributed_group_by_no_merge=1のように、クエリがリモート ノード上で完全に処理される場合は適用できません) (ORDER BYやLIMITを含むクエリで使用できます) 。
distributed_index_analysis
- distributed_index_analysis_for_non_shared_merge_tree
- distributed_index_analysis_min_parts_to_activate
- distributed_index_analysis_min_indexes_bytes_to_activate
distributed_index_analysis_only_on_coordinator
IN (SELECT ...)) が含まれる場合に、O(N^2) のクエリ生成が発生するのを防げます。
そうしないと、各フォロワーレプリカがそれぞれ独自に分散索引解析をトリガーしてしまうためです。
ただし、サブクエリで大きなテーブルを使用する場合は、分散索引解析の効率が低下します。
distributed_insert_skip_read_only_replicas
- 0 — INSERT は通常どおり実行され、読み取り専用レプリカに送信されると失敗します
- 1 — イニシエーターは、データを分片に送信する前に読み取り専用レプリカをスキップします。
distributed_plan_default_reader_bucket_count
distributed_plan_default_shuffle_join_bucket_count
distributed_plan_execute_locally
distributed_plan_force_exchange_kind
- ” - どの種類の Exchange 演算子も強制せず、オプティマイザに選択させます。
- ‘Persisted’ - オブジェクトストレージ上の一時ファイルを使用します。
- ‘Streaming’ - Exchange データをネットワーク経由でストリーミングします。
distributed_plan_force_shuffle_aggregation
distributed_plan_max_rows_to_broadcast
distributed_plan_optimize_exchanges
distributed_plan_prefer_replicas_over_workers
distributed_product_mode
- IN および JOIN のサブクエリにのみ適用されます。
- FROM 句で、複数の分片を含む分散テーブルが使用されている場合にのみ適用されます。
- サブクエリの対象が、複数の分片を含む分散テーブルである場合にのみ適用されます。
- テーブル値remote関数には適用されません。
deny— デフォルト値。これらの種類のサブクエリの使用を禁止します (“Double-distributed in/JOIN subqueries is denied” 例外を返します) 。local— サブクエリ内の database と table を、通常のIN/JOINはそのままに、宛先 server (分片) 上のローカルなものに置き換えます。global—IN/JOINクエリをGLOBAL IN/GLOBAL JOINに置き換えます。allow— これらの種類のサブクエリの使用を許可します。
distributed_push_down_limit
- 余分な行をネットワーク越しに送信すること。
- イニシエーターで LIMIT を超える行を処理すること。
distributed_push_down_limit がクエリ実行を変更するのは、少なくとも次の条件のいずれかを満たす場合に限られるためです。
- distributed_group_by_no_merge > 0。
- クエリに
GROUP BY/DISTINCT/LIMIT BYがなく、ORDER BY/LIMITがある 場合。 - クエリに
GROUP BY/DISTINCT/LIMIT BYとORDER BY/LIMITがあり、かつ次の条件を満たす場合:
- 0 — 無効。
- 1 — 有効。
- distributed_group_by_no_merge
- optimize_skip_unused_shards
- optimize_distributed_group_by_sharding_key
distributed_replica_error_cap
- 型: unsigned int
- デフォルト値: 1000
- load_balancing
- テーブルエンジン Distributed
- distributed_replica_error_half_life
- distributed_replica_max_ignored_errors
distributed_replica_error_half_life
- Type: Seconds
- デフォルト値: 60 Seconds
- load_balancing
- Table engine Distributed
- distributed_replica_error_cap
- distributed_replica_max_ignored_errors
distributed_replica_max_ignored_errors
- 型: unsigned int
- デフォルト値: 0
load_balancing アルゴリズムに従って) 無視されるエラーの数です。
関連項目:
- load_balancing
- Table engine Distributed
- distributed_replica_error_cap
- distributed_replica_error_half_life
do_not_merge_across_partitions_select_final
dynamic_disk_allow_from_env
disk() 関数の引数) で from_env 置換を使用できるようにします。
テーブルストレージの定義時にユーザーが任意の環境変数を読み取れないよう、デフォルトでは無効になっています。
dynamic_disk_allow_from_zk
disk() 関数の引数) で from_zk 置換を使用できるようにします。
デフォルトでは無効です。
dynamic_disk_allow_include
disk() 関数の引数) で include を使用できるようにします。
デフォルトでは無効です。
dynamic_throw_on_type_mismatch
true(デフォルト) — 例外をスローします。false— 代わりに、それらの行ではNULLを返します。
empty_result_for_aggregation_by_constant_keys_on_empty_set
empty_result_for_aggregation_by_empty_set
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_blob_storage_log
enable_blob_storage_log_for_read_operations
system.blob_storage_log テーブルに書き込みます。
これを有効にするには、enable_blob_storage_log も有効になっている必要があります。
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_extended_results_for_datetime_functions = 0 | enable_extended_results_for_datetime_functions = 1 |
|---|---|---|
toStartOfYear | Date または DateTime を返す | 入力が Date/DateTime の場合は Date/DateTime を返します入力が Date32/DateTime64 の場合は Date32/DateTime64 を返します |
toStartOfISOYear | Date または DateTime を返す | Date/DateTime型の入力にはDate/DateTimeを返しますDate32/DateTime64型の入力にはDate32/DateTime64を返します |
toStartOfQuarter | Date または DateTime を返す | Date/DateTime 型の入力に対しては Date/DateTime を返しますDate32/DateTime64 型の入力に対しては Date32/DateTime64 を返します |
toStartOfMonth | Date または DateTime を返す | Date/DateTime 型の入力に対しては Date/DateTime を返しますDate32/DateTime64 型の入力に対しては Date32/DateTime64 を返します |
toStartOfWeek | Date または DateTime を返す | Date/DateTime 型の入力に対しては Date/DateTime を返しますDate32/DateTime64 型の入力に対しては Date32/DateTime64 を返します |
toLastDayOfWeek | Date または DateTime を返す | Date/DateTime の入力に対しては Date/DateTime を返しますDate32/DateTime64 の入力に対しては Date32/DateTime64 を返します |
toLastDayOfMonth | Date または DateTime を返します | Date/DateTime 型の入力には Date/DateTime を返しますDate32/DateTime64 型の入力には Date32/DateTime64 を返します |
toMonday | Date または DateTime を返します | Date/DateTime 型の入力には Date/DateTime を返しますDate32/DateTime64 型の入力には Date32/DateTime64 を返します |
toStartOfDay | DateTime を返します注: 1970~2149 の範囲外の値では正しい結果が得られません | Date/DateTime 型の入力に対しては DateTime を返しますDate32/DateTime64 型の入力に対しては DateTime64 を返します |
toStartOfHour | DateTime を返します注: 1970~2149 の範囲外の値では正しい結果が得られません | Date/DateTime 型の入力に対しては DateTime を返しますDate32/DateTime64 型の入力に対しては DateTime64 を返します |
toStartOfFifteenMinutes | DateTime を返します注: 1970~2149 の範囲外の値では正しい結果が得られません | Date/DateTime 型の入力に対しては DateTime を返しますDate32/DateTime64 型の入力に対しては DateTime64 を返します |
toStartOfTenMinutes | DateTime を返します注: 1970~2149 の範囲外の値では、正しい結果が得られません | Date/DateTime 入力の場合は DateTime を返しますDate32/DateTime64 入力の場合は DateTime64 を返します |
toStartOfFiveMinutes | DateTime を返します注: 1970~2149 の範囲外の値では誤った結果が返されます | Date/DateTime 型の入力に対しては DateTime を返しますDate32/DateTime64 型の入力に対しては DateTime64 を返します |
toStartOfMinute | DateTime を返します注: 1970~2149 の範囲外の値では誤った結果になる可能性があります | Date/DateTime 型の入力では DateTime を返しますDate32/DateTime64 型の入力では DateTime64 を返します |
timeSlot | DateTime を返します注: 1970~2149 の範囲外の値では誤った結果を返す場合があります | Date/DateTime 型の入力では DateTime を返しますDate32/DateTime64 型の入力では DateTime64 を返します |
enable_filesystem_cache
enable_filesystem_cache_log
enable_filesystem_cache_on_write_operations
write-through cache を有効または無効にします。false に設定すると、書き込み操作では write-through cache が無効になります。true に設定すると、server config の cache disk configuration セクションで cache_on_write_operations が有効になっている場合に限り、write-through cache も有効になります。
詳細については、“Using local cache” を参照してください。
Cloud でのデフォルト値: 1.
enable_filesystem_read_prefetches_log
enable_full_text_index
allow_experimental_full_text_index
true に設定すると、テキスト索引の使用が許可されます。
enable_global_with_statement
enable_hdfs_pread
hdfsPread が使用されます。無効にすると、HDFS ファイルの読み取りには hdfsRead と hdfsSeek が使用されます。
enable_http_compression
- 0 — 無効。
- 1 — 有効。
enable_identifier_resolve_cache
enable_job_stack_trace
enable_join_fixed_hash_table_conversion
enable_join_runtime_filters
enable_join_transitive_predicates
A.x = B.x と B.x = C.x がある場合、A.x = C.x という述語も
追加されるため、JOIN 順序オプティマイザは直接 (A JOIN C) のプランを検討できます。
enable_lazy_columns_replication
enable_lightweight_delete
allow_experimental_lightweight_delete
MergeTree テーブルに対する論理削除 DELETE ミューテーションを有効にします。
enable_lightweight_update
allow_experimental_lightweight_update
論理更新の使用を有効にします。
enable_materialized_cte
enable_memory_bound_merging_of_aggregation_results
enable_multiple_prewhere_read_steps
enable_named_columns_in_function_tuple
enable_optimize_predicate_expression
SELECT クエリでプレディケートプッシュダウンを有効にします。
プレディケートプッシュダウンにより、分散クエリのネットワークトラフィックを大幅に削減できる場合があります。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
SELECT count() FROM test_table WHERE date = '2018-10-10'SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'
enable_optimize_predicate_expression = 1 の場合、ClickHouse は処理時に WHERE をサブクエリへ適用するため、これらのクエリの実行時間は同じになります。
enable_optimize_predicate_expression = 0 の場合、2 番目のクエリの実行時間はかなり長くなります。これは、サブクエリの完了後に WHERE 句がすべてのデータに適用されるためです。
enable_optimize_predicate_expression_to_final_subquery
enable_order_by_all
ORDER BY ALL 構文でのソートを有効または無効にします。詳しくは ORDER BY を参照してください。
設定可能な値:
- 0 — ORDER BY ALL を無効にします。
- 1 — ORDER BY ALL を有効にします。
enable_parallel_blocks_marshalling
enable_parsing_to_custom_serialization
enable_positional_arguments
- 0 — 位置引数はサポートされません。
- 1 — 位置引数がサポートされます。カラム名の代わりにカラム番号を使用できます。
enable_positional_arguments_for_projections
これは上級者向けの設定です。ClickHouse を使い始めたばかりであれば、変更しないでください。
- 0 — 位置引数はサポートされません。
- 1 — 位置引数がサポートされます。カラム名の代わりにカラム番号を使用できます。
enable_producing_buckets_out_of_order_in_aggregation
distributed_aggregation_memory_efficient を参照) で、バケットを順不同で生成できるようにします。
これにより、集約バケットのサイズに偏りがある場合、レプリカは小さい id の重いバケットをまだ処理している間でも、より大きい id のバケットをイニシエーターに送信できるため、パフォーマンスが向上する可能性があります。
欠点として、メモリ使用量が増える可能性があります。
enable_reads_from_query_cache
SELECT クエリの結果は query cache から取得されます。
設定可能な値:
- 0 - 無効
- 1 - 有効
enable_s3_requests_logging
enable_scalar_subquery_optimization
enable_scopes_for_with_statement
enable_sharding_aggregator
GROUP BY 最適化を有効にします。
これは、データが均等に分散した高カーディナリティのキーに対しては効率的ですが、キー分布の偏りが大きい場合や、異なるキーがごく少ないクエリでは性能が低下することがあります。
設定可能な値:
- 0 — 分片化された集約の最適化は無効です。
- 1 — 分片化された集約の最適化は有効です。
この設定を有効にすると、プランニング段階の完了後にスナップショットから不要なデータパーツを取り除く最適化が無効になります。
その結果、長時間実行されるクエリでは、廃止されたパーツがクエリの実行中ずっと保持される可能性があり、パーツのクリーンアップが遅れ、ストレージへの負荷が増大します。現在、この設定が適用されるのは MergeTree family のテーブルのみです。
- 0 - 無効
- 1 - 有効
enable_sharing_sets_for_mutations
enable_software_prefetch_in_aggregation
enable_software_prefetch_in_join
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 クエリの結果が query cache に保存されます。
設定可能な値:
- 0 - 無効
- 1 - 有効
enforce_strict_identifier_format
engine_file_allow_create_multiple_files
JSON、ORC、Parquet など) がある場合、Fileエンジンのテーブルで insert のたびに新しいファイルを作成するかどうかを有効または無効にします。有効にすると、insert のたびに次のパターンに従った名前で新しいファイルが作成されます。
data.Parquet -> data.1.Parquet -> data.2.Parquet, etc.
設定可能な値:
- 0 —
INSERTクエリは新しいデータをファイルの末尾に追加します。 - 1 —
INSERTクエリは新しいファイルを作成します。
engine_file_empty_if_not_exists
- 0 —
SELECTは例外をスローします。 - 1 —
SELECTは空の結果を返します。
engine_file_skip_empty_files
- 0 — 空のファイルが要求されたフォーマットと互換性がない場合、
SELECTは例外を返します。 - 1 — 空のファイルに対して
SELECTは空の結果を返します。
engine_file_truncate_on_insert
- 0 —
INSERTクエリは新しいデータをファイルの末尾に追記します。 - 1 —
INSERTクエリはファイルの既存の内容を新しいデータで置き換えます。
engine_url_skip_empty_files
- 0 — 空のファイルが要求されたフォーマットに対応していない場合、
SELECTは例外をスローします。 - 1 — 空のファイルに対して、
SELECTは空の結果を返します。
exact_rows_before_limit
rows_before_limit_at_least 統計について正確な値を返しますが、その代わり、limit に達するまでのデータをすべて読み取る必要があります
except_default_mode
exclude_materialize_skip_indexes_on_insert
execute_exists_as_scalar_subquery
0.
external_storage_connect_timeout_sec
external_storage_max_read_bytes
external_storage_max_read_rows
external_storage_rw_timeout_sec
external_table_functions_use_nulls
- 0 — テーブル関数は Nullable カラムを明示的に使用します。
- 1 — テーブル関数は Nullable カラムを暗黙的に使用します。
0 にすると、テーブル関数は Nullable カラムを作成せず、NULL の代わりにデフォルト値を挿入します。これは Array 内の NULL 値にも適用されます。
external_table_strict_query
extract_key_value_pairs_max_pairs_per_row
extract_kvp_max_pairs_per_row
extractKeyValuePairs 関数で生成できるペアの最大数。メモリの過剰消費を防ぐための保護措置として使用されます。
extremes
fallback_to_stale_replicas_for_distributed_queries
SELECT を実行する際に使用されます。
デフォルト値は 1 (enabled) です。
file_like_engine_default_partition_strategy
filesystem_cache_allow_background_download
filesystem_cache_boundary_alignment
filesystem_cache_enable_background_download_during_fetch
filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage
filesystem_cache_max_download_size
filesystem_cache_name
filesystem_cache_prefer_bigger_buffer_size
filesystem_cache_reserve_space_wait_lock_timeout_milliseconds
filesystem_cache_segments_batch_size
filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit
skip_download_if_exceeds_query_cache
クエリ cache のサイズを超える場合、リモートファイルシステムからのダウンロードをスキップします
filesystem_prefetch_max_memory_usage
filesystem_prefetch_step_bytes
auto を意味します。おおよそ最適な prefetch step が自動的に推定されますが、必ずしも 100% 最適になるとは限りません。実際の値は、設定 filesystem_prefetch_min_bytes_for_single_read_task によって異なる場合があります。
filesystem_prefetch_step_marks
auto を意味し、ほぼ最適な先読みステップが自動的に推定されますが、必ずしも 100% 最適になるとは限りません。実際の値は、設定 filesystem_prefetch_min_bytes_for_single_read_task によって異なる場合があります
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage を使用することを推奨します
final
- 0 - 無効
- 1 - 有効
finalize_projection_parts_synchronously
flatten_nested
- 1 — Nested カラムは個別の配列にフラット化されます。
- 0 — Nested カラムはタプルの単一の配列のままになります。
0 にすると、任意のネストレベルを使用できます。
例
クエリ:
force_aggregate_partitions_independently
force_aggregation_in_order
force_data_skipping_indices
force_grouping_standard_compatibility
force_index_by_date
force_index_by_date=1 の場合、ClickHouse はクエリに、データ範囲の絞り込みに使用できる日付キー条件があるかどうかを確認します。適切な条件がない場合は、例外をスローします。ただし、その条件によって読み取るデータ量が実際に減るかどうかまでは確認しません。たとえば、条件 Date != ' 2000-01-01 ' は、テーブル内のすべてのデータに一致する場合でも有効です (つまり、クエリの実行には全件スキャンが必要です) 。MergeTree テーブルにおけるデータ範囲の詳細については、MergeTree を参照してください。
force_optimize_projection
SELECT クエリで プロジェクション を必ず使用するかどうかを有効または無効にします。
設定可能な値:
- 0 — プロジェクションの最適化は必須ではありません。
- 1 — プロジェクションの最適化は必須です。
force_optimize_projection_name
- string: クエリで使用されるプロジェクション名
force_optimize_skip_unused_shards
- 0 — 無効。ClickHouse は例外をスローしません。
- 1 — 有効。テーブルに分片キーがある場合にのみ、クエリ実行が無効になります。
- 2 — 有効。テーブルに分片キーが定義されているかどうかにかかわらず、クエリ実行が無効になります。
force_optimize_skip_unused_shards_nesting
force_optimize_skip_unused_shards の適用範囲を制御します (この設定を有効にするには、force_optimize_skip_unused_shards も有効である必要があります) 。これは、ある Distributed テーブルが別の Distributed テーブルを参照する場合に該当します。
設定可能な値:
- 0 - 無効。
force_optimize_skip_unused_shardsは常に動作します。 - 1 —
force_optimize_skip_unused_shardsを第1レベルでのみ有効にします。 - 2 —
force_optimize_skip_unused_shardsを第2レベルまで有効にします。
force_primary_key
force_primary_key=1 の場合、ClickHouse はクエリに、データ範囲の絞り込みに使用できる主キー条件があるかどうかを確認します。適切な条件がない場合は、例外をスローします。ただし、その条件によって読み取るデータ量が減るかどうかまでは確認しません。MergeTree テーブルにおけるデータ範囲の詳細については、MergeTree を参照してください。
force_remove_data_recursively_on_drop
formatdatetime_e_with_space_padding
formatDateTime のフォーマッタ ‘%e’ は、1 桁の日を先頭にスペースを付けて出力します。たとえば、‘2’ ではなく ’ 2’ と出力されます。
formatdatetime_f_prints_scale_number_of_digits
formatdatetime_f_prints_single_zero
formatdatetime_format_without_leading_zeros
formatDateTime のフォーマッタ %c、%l、%k は、月と時を先頭のゼロなしで出力します。
formatdatetime_parsedatetime_m_is_month_name
formatDateTime および parseDateTime におけるフォーマッタ %M は、分ではなく月名を出力・解析します。
fsync_metadata
.sql ファイルの書き込み時に fsync を有効または無効にします。デフォルトでは有効です。
server に数百万もの小さな table があり、それらが絶えず作成・削除されている場合は、これを無効にするのが適切です。
function_base58_max_input_size
base58Encode、base58Decode、tryBase58Decode に対する、単一の入力値の最大サイズ (バイト単位) です。汎用的な base58 変換は入力長に対して二次時間であるため、1 つの大きな値だけでも非常に長時間実行されることがあります。base58 は短いデータ (キー、ハッシュ、アドレス) 向けであり、既定値の 10 KB は十分に余裕のある安全しきい値です。base58Encode と base58Decode は、これを超える入力に対して TOO_LARGE_STRING_SIZE を送出し、tryBase58Decode は空文字列を返します。値 0 を指定すると制限は無効になります (この設定が導入される前の動作になります) 。線形の base32 関数と base64 関数には影響しません。
function_date_trunc_return_type_behavior
dateTrunc 関数の戻り値の型の動作を変更できます。
設定可能な値:
- 0 - 2 番目の引数が
DateTime64/Date32の場合、戻り値の型は最初の引数の時間単位にかかわらずDateTime64/Date32になります。 - 1 -
Date32の場合、結果は常にDateになります。DateTime64の場合、時間単位がsecond以上であれば結果はDateTimeになります。
function_implementation
function_json_value_return_type_allow_complex
- true — 許可します。
- false — 許可しません。
function_json_value_return_type_allow_nullable
NULL を返すことを許可するかどうかを制御します。
- true — 許可します。
- false — 許可しません。
function_locate_has_mysql_compatible_argument_order
- 0 — 関数
locateは引数(haystack, needle[, start_pos])を受け付けます。 - 1 — 関数
locateは引数(needle, haystack, [, start_pos])を受け付けます (MySQL 互換の動作)
function_range_max_elements_in_block
- 正の整数。
function_sleep_max_microseconds_per_block
sleep が各 block ごとにスリープできる最大マイクロ秒数です。これを超える値を指定して呼び出すと、例外がスローされます。これは安全しきい値です。
function_visible_width_behavior
visibleWidth の動作バージョンです。0 - コードポイント数のみをカウントします。1 - ゼロ幅文字および結合文字を正しくカウントし、全角文字は 2 文字分としてカウントし、タブ幅を推定し、DEL 文字をカウントします。
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance、greatCircleDistance、greatCircleAngle 関数の4つの引数がすべて Float64 の場合、Float64 を返し、内部計算には倍精度を使用します。以前の ClickHouse バージョンでは、これらの関数は常に Float32 を返していました。
geotoh3_argument_order
geoToH3 は、lon_lat に設定すると (lon, lat) を受け取り、lat_lon に設定すると (lat, lon) を受け取ります。
glob_expansion_max_elements
grace_hash_join_initial_buckets
grace_hash_join_max_buckets
group_by_overflow_mode
throw: 例外をスローするbreak: クエリの実行を停止し、部分的な結果を返すany: 集合に入ったキーについては集約を継続しますが、新しいキーは集合に追加しません。
any 値を使用すると、GROUP BY の近似結果を得られます。この近似の精度は、
データの統計的な性質に依存します。
group_by_two_level_threshold
group_by_two_level_threshold_bytes
group_by_use_nulls
ROLLUP、CUBE、GROUPING SETS 指定子を使用すると、一部の結果行の生成時に使用されない集約キーが生じることがあります。
これらのキーに対応するカラムは、この設定に応じて、該当する行でデフォルト値または NULL で埋められます。
設定可能な値:
- 0 — 欠けている値を表すために、集約キーの型のデフォルト値を使用します。
- 1 — ClickHouse は SQL 標準に従って
GROUP BYを実行します。集約キーの型は Nullable に変換されます。対応する集約キーのカラムは、そのキーが使用されなかった行では NULL で埋められます。
h3togeo_lon_lat_result_order
h3ToGeo は、true の場合は (lon, lat) を、そうでない場合は (lat, lon) を返します。
handshake_timeout_ms
hdfs_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz, etc.
設定可能な値:
- 0 —
INSERTクエリは新しいデータをファイルの末尾に追記します。 - 1 —
INSERTクエリは新しいファイルを作成します。
hdfs_ignore_file_doesnt_exist
- 1 —
SELECTは空の結果を返します。 - 0 —
SELECTは例外をスローします。
hdfs_replication
hdfs_skip_empty_files
- 0 — 空のファイルが指定されたフォーマットと互換性がない場合、
SELECTは例外をスローします。 - 1 — 空のファイルに対して
SELECTは空の結果を返します。
hdfs_throw_on_zero_files_match
- 1 —
SELECTは例外をスローします。 - 0 —
SELECTは空の結果を返します。
hdfs_truncate_on_insert
- 0 —
INSERTクエリは新しいデータをファイルの末尾に追記します。 - 1 —
INSERTクエリはファイルの既存の内容を新しいデータで置き換えます。
hedged_connection_timeout_ms
highlight_max_matches_per_row
- 正の整数。
hnsw_candidate_list_size_for_search
ef_search とも呼ばれます。
hsts_max_age
http_connection_timeout
- 任意の正の整数。
- 0 - 無効 (無期限) 。
http_headers_progress_interval_ms
X-ClickHouse-Progress は、指定した各間隔より短い頻度では送信されません。
http_headers_read_timeout
http_make_head_request
http_make_head_request 設定では、HTTP からデータを読み取る際に HEAD リクエストを実行し、サイズなど、読み取る対象のファイルに関する情報を取得できます。既定で有効になっているため、サーバーが HEAD リクエストをサポートしていない場合は、この設定を無効にすることを検討してください。
http_max_field_name_size
http_max_field_value_size
http_max_fields
http_max_multipart_form_data_size
http_max_request_header_size
http_max_request_param_data_size
http_max_tries
http_max_uri_size
- 正の整数。
http_native_compression_disable_checksumming_on_decompress
gzip や deflate では使用されません) 。
詳細については、HTTP インターフェイスの説明を参照してください。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
http_receive_timeout
- 任意の正の整数。
- 0 - 無効 (無期限) 。
http_response_buffer_size
http_response_headers
SET http_response_headers = '{"Content-Type": "image/png"}'
http_retry_initial_backoff_ms
http_retry_max_backoff_ms
http_send_timeout
- 任意の正の整数。
- 0 - 無効 (タイムアウトなし) 。
これはデフォルトプロファイルにのみ適用されます。変更を有効にするにはサーバーの再起動が必要です。
http_skip_not_found_url_for_globs
http_wait_end_of_query
http_write_exception_in_output_format
http_zlib_compression_level
iceberg_compaction_data_cleanup
iceberg_compaction_delay_bias
iceberg_data_file_size_lower_threshold_compaction
iceberg_data_file_size_upper_threshold_compaction
iceberg_delete_data_on_drop
iceberg_expire_default_max_ref_age_ms
history.expire.max-ref-age-ms が存在しない場合に、expire_snapshots で使用されるデフォルト値。
iceberg_expire_default_max_snapshot_age_ms
expire_snapshots が使用する、Iceberg テーブルのプロパティ history.expire.max-snapshot-age-ms のデフォルト値です。
iceberg_expire_default_min_snapshots_to_keep
expire_snapshots で使用される、Iceberg テーブルのプロパティ history.expire.min-snapshots-to-keep のデフォルト値です。
iceberg_insert_max_bytes_in_data_file
iceberg_insert_max_partitions
iceberg_insert_max_rows_in_data_file
iceberg_max_number_datafiles_to_compact
iceberg_metadata_compression_method
.metadata.json ファイルの圧縮方法です。
iceberg_metadata_log_level
- none - メタデータログを出力しません。
- metadata - ルートの metadata.json ファイル。
- manifest_list_metadata - 上記すべて + snapshot に対応する avro マニフェストリストのメタデータ。
- manifest_list_entry - 上記すべて + avro マニフェストリストのエントリ。
- manifest_file_metadata - 上記すべて + 走査した avro マニフェストファイルのメタデータ。
- manifest_file_entry - 上記すべて + 走査した avro マニフェストファイルのエントリ。
iceberg_metadata_staleness_ms
iceberg_orphan_files_older_than_seconds
remove_orphan_files() プロシージャ呼び出しで older_than 引数が省略された場合に使用されます。デフォルトは 259200 (3日) です。
iceberg_snapshot_id
iceberg_timestamp_ms
idle_connection_timeout
- 正の整数 (0 の場合は 0 秒後にただちに閉じる) 。
ignore_cold_parts_seconds
ignore_data_skipping_indices
xy_idx 索引を無視する場合:
ignore_drop_queries_probability
ignore_format_null_for_explain
EXPLAIN クエリでは FORMAT Null は無視され、代わりにデフォルトの出力フォーマットが使用されます。
無効な場合、FORMAT Null を指定した EXPLAIN クエリでは何も出力されません (後方互換性のある動作) 。
ignore_materialized_views_with_dropped_target_table
ignore_on_cluster_for_replicated_access_entities_queries
ignore_on_cluster_for_replicated_database
ignore_on_cluster_for_replicated_named_collections_queries
ignore_on_cluster_for_replicated_udf_queries
implicit_select
SELECT キーワードを書かなくても単純な SELECT クエリを記述できるようにします。これにより、電卓のような使い方がしやすくなり、たとえば 1 + 2 を有効なクエリとして実行できます。
clickhouse-local ではデフォルトで有効になっており、明示的に無効化することもできます。
implicit_table_at_top_level
implicit_transaction
inject_random_order_for_select_without_order_by
insert_allow_materialized_columns
insert_deduplicate
INSERT のブロック重複排除 (Replicated* テーブル用) を有効または無効にします。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
INSERT ステートメントによってレプリケートテーブルに挿入されたブロックは重複排除されます (Data Replication を参照) 。
レプリケートテーブルでは、デフォルトで各パーティションにつき直近 100 個のブロックのみが重複排除されます (replicated_deduplication_window、replicated_deduplication_window_seconds を参照) 。
レプリケーションされないテーブルについては、non_replicated_deduplication_window を参照してください。
insert_deduplication_token
- 任意の文字列
insert_deduplication_token は、空でない場合にのみ deduplication に使用されます。
レプリケートテーブルでは、デフォルトで各パーティションごとに直近 100 件の insert のみが deduplication の対象になります (replicated_deduplication_window、replicated_deduplication_window_seconds を参照) 。
非レプリケートテーブルについては、non_replicated_deduplication_window を参照してください。
insert_deduplication_token はパーティション単位で機能します (insert_deduplication checksum と同じです) 。複数のパーティションで同じ insert_deduplication_token を使用できます。insert_keeper_fault_injection_probability
insert_keeper_fault_injection_seed
insert_keeper_max_retries
- 正の整数。
- 0 — 再試行は無効
20。
Keeper リクエストの再試行は、一定のタイムアウト後に実行されます。このタイムアウトは、次の設定で制御されます: insert_keeper_retry_initial_backoff_ms、insert_keeper_retry_max_backoff_ms。
最初の再試行は insert_keeper_retry_initial_backoff_ms のタイムアウト後に行われます。以降のタイムアウトは、次のように計算されます:
insert_keeper_retry_initial_backoff_ms=100、insert_keeper_retry_max_backoff_ms=10000、insert_keeper_max_retries=8 の場合、タイムアウトは 100, 200, 400, 800, 1600, 3200, 6400, 10000 となります。
耐障害性に加え、これらの再試行にはユーザー体験を向上させる目的もあります。たとえば、アップグレードなどの理由で Keeper が再起動した場合でも、INSERT 実行中にエラーを返さずに済みます。
insert_keeper_retry_initial_backoff_ms
- 正の整数。
- 0 — タイムアウトなし
insert_keeper_retry_max_backoff_ms
- 正の整数。
- 0 — 最大タイムアウトは無制限
insert_null_as_default
NULL を挿入すると例外が発生します。カラムの型が Nullable の場合は、この設定に関係なく、NULL 値はそのまま挿入されます。
この設定は、INSERT … SELECT クエリに適用されます。SELECT サブクエリは UNION ALL 句で連結できる点に注意してください。
設定可能な値:
- 0 — Nullable ではないカラムに
NULLを挿入すると例外が発生します。 - 1 —
NULLの代わりにカラムのデフォルト値が挿入されます。
insert_quorum
この設定は SharedMergeTree には適用されません。詳細は SharedMergeTree consistency を参照してください。
insert_quorum < 2の場合、クォーラム書き込みは無効です。insert_quorum >= 2の場合、クォーラム書き込みは有効です。insert_quorum = 'auto'の場合、クォーラム数には過半数 (number_of_replicas / 2 + 1) が使用されます。
INSERT は、ClickHouse が insert_quorum_timeout の間に insert_quorum 個のレプリカへのデータ書き込みを正常に完了できた場合にのみ成功します。何らかの理由で書き込みに成功したレプリカ数が insert_quorum に達しない場合、その書き込みは失敗とみなされ、ClickHouse はすでにデータが書き込まれているすべてのレプリカから挿入されたブロックを削除します。
insert_quorum_parallel が無効な場合、クォーラム内のすべてのレプリカは整合した状態になります。つまり、以前のすべての INSERT クエリによるデータが含まれます (INSERT の順序は線形化されます) 。insert_quorum を使って書き込まれたデータを読み取る際、insert_quorum_parallel が無効であれば、select_sequential_consistency を使用して SELECT クエリで逐次整合性を有効にできます。
ClickHouse は次の場合に例外を生成します。
- クエリ実行時点で利用可能なレプリカ数が
insert_quorum未満の場合。 insert_quorum_parallelが無効で、前のブロックがまだinsert_quorum個のレプリカに挿入されていない状態でデータを書き込もうとした場合。この状況は、ユーザーがinsert_quorumを指定した前回のINSERTが完了する前に、同じテーブルに対して別のINSERTクエリを実行しようとすると発生する可能性があります。
insert_quorum_parallel
この設定は SharedMergeTree には適用されません。詳細については SharedMergeTree consistency を参照してください。
INSERT クエリの並列度を有効または無効にします。有効な場合、前のクエリがまだ完了していなくても追加の INSERT クエリを送信できます。無効な場合、同じテーブルへの追加の書き込みは拒否されます。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
insert_quorum_timeout
insert_shard_id
0 以外の場合、データを同期的に挿入する Distributed テーブルの分片を指定します。
insert_shard_id の値が正しくない場合、サーバーは例外をスローします。
requested_cluster の分片数を取得するには、サーバーの設定を確認するか、次のクエリを使用します。
- 0 — 無効。
- 対応する Distributed テーブルの
1からshards_numまでの任意の数値。
interactive_delay
intersect_default_mode
jemalloc_collect_profile_samples_in_trace_log
jemalloc_enable_profiler
jemalloc_profile_text_collapsed_use_count
collapsed 出力フォーマットを使用する場合、バイト数ではなく割り当て回数で集計します。false (デフォルト) の場合、各スタックは使用中のバイト数で重み付けされます。true の場合は、使用中の割り当て数で重み付けされます。
jemalloc_profile_text_output_format
jemalloc_profile_text_symbolize_with_inline
join_algorithm
- grace_hash
grace_hash_join_initial_buckets です) 。これは、各バケットを独立して処理できるようにするためです。最初のバケットの行はインメモリの hash table に追加され、それ以外はディスクに保存されます。hash table がメモリ制限 (たとえば max_bytes_in_join で設定) を超えるまで大きくなると、バケット数が増やされ、各行の割り当て先バケットが変更されます。現在のバケットに属さない行はフラッシュされ、再割り当てされます。
INNER/LEFT/RIGHT/FULL ALL/ANY JOIN をサポートします。
- hash
JOIN ON セクションで OR と組み合わせた複数の結合キーをサポートします。
hash アルゴリズムを使用する場合、JOIN の右側は RAM に読み込まれます。
- parallel_hash
hash join の一種で、データをバケットに分割し、1 つではなく複数のハッシュテーブルを同時実行で構築することで、この処理を高速化します。
parallel_hash アルゴリズムを使用する場合、JOIN の右側は RAM に読み込まれます。
- partial_merge
RIGHT JOIN と FULL JOIN は ALL strictness でのみサポートされます (SEMI、ANTI、ANY、ASOF はサポートされません) 。
partial_merge アルゴリズムを使用する場合、ClickHouse はデータをソートしてディスクに書き出します。ClickHouse の partial_merge アルゴリズムは、従来の実装とは少し異なります。まず、ClickHouse は右側のテーブルを結合キーで block 単位にソートし、ソート済みの block に対して min-max 索引 を作成します。次に、左側のテーブルの一部を join key でソートして、右側のテーブルと結合します。不要な右側テーブルの block をスキップするために、min-max 索引 も使用されます。
- direct
direct (nested loop とも呼ばれます) アルゴリズムは、左側のテーブルの行をキーとして使用し、右側のテーブルに対してルックアップを行います。
Dictionary、EmbeddedRocksDB、MergeTree テーブルなどの特別なストレージでサポートされています。
MergeTree テーブルでは、このアルゴリズムは結合キーのフィルターをストレージ層に直接プッシュダウンします。キーのルックアップにテーブルの主キー索引を使える場合はより効率的ですが、そうでない場合は左側テーブルの各 block ごとに右側テーブルをフルスキャンします。
INNER と LEFT JOIN のみをサポートし、他の条件を含まない単一カラムの等価結合キーにのみ対応します。
- auto
auto に設定すると、まず hash join を試し、メモリ制限を超えた場合は実行中に別のアルゴリズムへ切り替えます。
- full_sorting_merge
- prefer_partial_merge
partial_merge join を使用し、そうでない場合は hash を使用します。非推奨 で、partial_merge,hash と同じです。
- default (deprecated)
direct,hash と同じです。つまり、direct join と hash join をこの順に試します。
join_any_take_last_row
ANY strictness を持つ JOIN 演算の動作を変更します。
この設定は、Join エンジンのテーブルを使用する
JOIN 演算にのみ適用されます。- 0 — 右側テーブルに一致する行が複数ある場合、見つかった最初の 1 行のみが結合に使用されます。
- 1 — 右側テーブルに一致する行が複数ある場合、見つかった最後の 1 行のみが結合に使用されます。
join_default_strictness
ALL— 右側のテーブルに一致する行が複数ある場合、ClickHouse は一致した行から 直積 を作成します。これは標準 SQL における通常のJOINの動作です。ANY— 右側のテーブルに一致する行が複数ある場合、最初に見つかった 1 行だけが結合されます。右側のテーブルに一致する行が 1 行しかない場合、ANYとALLの結果は同じです。ASOF— 対応が不確かな数列を結合するために使用します。空文字列— クエリでALLまたはANYが指定されていない場合、ClickHouse は例外をスローします。
join_on_disk_max_files_to_merge
- 2 以上の任意の正の整数。
join_output_by_rowlist_perkey_rows_threshold
join_overflow_mode
join_algorithm の値が hash または parallel_hash の場合のみです。その他のアルゴリズム (たとえば partial_merge、grace_hash、auto) では、これらの制限は別の方法で処理されます。たとえば、ディスクへのスピル、再パーティション化、または戦略の切り替えです。詳細は join_algorithm を参照してください。
設定可能な値:
THROW— ClickHouse は例外をスローしてクエリを停止します。BREAK— ClickHouse はクエリを停止し、例外はスローしません。
THROW。
関連項目
join_runtime_bloom_filter_bytes
enable_join_runtime_filters 設定を参照) 。
join_runtime_bloom_filter_hash_functions
join_runtime_bloom_filter_max_ratio_of_set_bits
join_runtime_filter_blocks_to_skip_before_reenabling
join_runtime_filter_exact_values_limit
join_runtime_filter_from_fixed_hash_table
enable_join_fixed_hash_table_conversion を参照)、そのハッシュマップをランタイムフィルタとして直接利用します。
join_runtime_filter_pass_ratio_threshold_for_disabling
join_runtime_filter_blocks_to_skip_before_reenabling ブロックの間は無効化されます。
join_to_sort_maximum_table_rows
join_to_sort_minimum_perkey_rows
join_use_nulls
- 0 — 空のセルは、対応するフィールド型のデフォルト値で補完されます。
- 1 —
JOINは標準 SQL と同じように動作します。対応するフィールドの型は Nullable に変換され、空のセルは NULL で補完されます。
joined_block_split_single_row
max_joined_block_size_rows != 0 が必須であることに注意してください。
この設定を max_joined_block_size_bytes と組み合わせると、右テーブルで一致する行が多い大きな行が一部にある偏ったデータにおいて、過剰なメモリ使用量を避けるのに役立ちます。
joined_subquery_requires_alias
kafka_disable_num_consumers_limit
kafka_max_wait_ms
- 正の整数。
- 0 — 無制限のタイムアウト。
keeper_map_strict_mode
keeper_max_retries
keeper_retry_initial_backoff_ms
keeper_retry_max_backoff_ms
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
lightweight_delete_mode
alter_update- ヘビーウェイトな mutation を作成するALTER UPDATEクエリを実行します。lightweight_update- 可能であれば論理更新を実行し、そうでなければALTER UPDATEを実行します。lightweight_update_force- 可能であれば論理更新を実行し、そうでなければ例外を発生させます。
lightweight_deletes_sync
mutations_sync と同じですが、論理削除の実行のみを制御します。
設定可能な値:
| 値 | 説明 |
|---|---|
0 | ミューテーションは非同期で実行されます。 |
1 | クエリは、現在のサーバー上で論理削除が完了するまで待機します。 |
2 | クエリは、すべてのレプリカ (存在する場合) で論理削除が完了するまで待機します。 |
3 | クエリはアクティブなレプリカでの完了のみを待機します。SharedMergeTree でのみサポートされます。ReplicatedMergeTree では、mutations_sync = 2 と同じように動作します。 |
1.
limit
- 0 — 行数は制限されません。
- 正の整数。
load_balancing
ランダム (デフォルト)
Nearest hostname
ホスト名のレーベンシュタイン距離
nearest_hostname と同様ですが、レーベンシュタイン距離 に基づいてホスト名を比較します。たとえば:
ホスト名の最長共通プレフィックス
nearest_hostname と同様ですが、ローカルの hostname と最長の共通プレフィックスを持つ hostname のレプリカが優先されます (共通プレフィックスが長いほど優先度が高くなります) 。文字ごとの差異を位置ごとに数える nearest_hostname とは異なり、この戦略は、数値セグメントの長さが異なる hostname があっても誤判定しません。たとえば、ローカルの hostname が sfe301 の場合:
sfe10101 は sfe301 と最も長い共通プレフィックス (sfe、長さ 3) を持つため、優先されます。
共通プレフィックスの長さが同じレプリカは、ランダムに選択されます。特に、ローカルの hostname とプレフィックスを共有するレプリカが 1 つもない場合 (すべての共通プレフィックス長が 0 の場合) 、この戦略の動作は random とまったく同じです。
ホスト名の最長共通接尾辞
hostname_longest_common_prefix と同様ですが、プレフィックスではなく、最長の共通 接尾辞 を比較します。これは、データセンターの識別情報が hostname の接尾辞としてエンコードされている場合に便利です。たとえば、ローカル hostname が et46gtghn.qc.localdomain の場合:
ab999.qc.localdomain は et46gtghn.qc.localdomain と最も長い共通接尾辞 (.qc.localdomain、長さ 15) を持つため、優先されます。
共通接尾辞の長さが同じレプリカは、ランダムに選択されます。特に、ローカル hostname と接尾辞を共有するレプリカが 1 つもない場合 (すべての共通接尾辞の長さが 0 の場合) 、この戦略は random とまったく同じように動作します。
In Order
First or Random
first_or_random アルゴリズムは、in_order アルゴリズムの問題を解決します。in_order では、1 つのレプリカがダウンすると、次のレプリカに負荷が 2 倍かかる一方で、残りのレプリカは通常どおりのトラフィック量を処理します。first_or_random アルゴリズムを使用すると、利用可能なレプリカ間で負荷が均等に分散されます。
設定 load_balancing_first_offset を使用すると、どのレプリカを最初のレプリカとするかを明示的に指定できます。これにより、レプリカ間でクエリのワークロードを再分散する際の制御性が高まります。
ラウンドロビン
round_robin ポリシーのクエリのみです) 。
load_balancing_first_offset
load_marks_asynchronously
1.
local_filesystem_read_method
local_filesystem_read_prefetch
lock_acquire_timeout
DEADLOCK_AVOIDED とともに、例外 “Locking attempt timed out! Possible deadlock avoided. Client should retry.” をスローします。
設定可能な値:
- 正の整数 (秒単位) 。
- 0 — ロックのタイムアウトなし。
log_comment
log_comment フィールドの値と、サーバーログに出力するコメントテキストを指定します。
サーバーログの可読性を高めるために使用できます。さらに、clickhouse-test の実行後に、system.query_log からテストに関連するクエリを抽出する際にも役立ちます。
設定可能な値:
- max_query_size 以下の任意の文字列。max_query_size を超えると、サーバーは例外を発生させます。
log_formatted_queries
formatted_query カラムに格納されます) 。
設定可能な値:
- 0 — 整形済みのクエリはシステムテーブルに記録されません。
- 1 — 整形済みのクエリはシステムテーブルに記録されます。
log_processors_profiles
system.processors_profile_log テーブルに書き込みます。
関連項目:
log_profile_events
log_queries
log_queries_cut_to_length
log_queries_min_query_duration_ms
long_query_time に相当すると考えられます) 。つまり、これらのクエリは次のテーブルには記録されません。
system.query_logsystem.query_thread_log
-
QUERY_FINISH -
EXCEPTION_WHILE_PROCESSING - 型: ミリ秒
- デフォルト値: 0 (すべてのクエリ)
log_queries_min_type
query_log の最小種別です。
設定可能な値:
QUERY_START(=1)QUERY_FINISH(=2)EXCEPTION_BEFORE_START(=3)EXCEPTION_WHILE_PROCESSING(=4)
query_log に記録される項目を制限するために使用できます。たとえば、エラーのみに関心がある場合は、EXCEPTION_WHILE_PROCESSING を使用できます:
log_queries_probability
- 0 — クエリはシステムテーブルに記録されません。
- [0..1] の範囲の正の浮動小数点数。たとえば、設定値が
0.5の場合、クエリのおよそ半分がシステムテーブルに記録されます。 - 1 — すべてのクエリがシステムテーブルに記録されます。
log_query_settings
log_query_threads
- 0 — 無効。
- 1 — 有効。
log_query_views
low_cardinality_allow_in_native_format
LowCardinality の使用が制限されている場合、ClickHouseサーバーは SELECT クエリでは LowCardinality カラムを通常のカラムに変換し、INSERT クエリでは通常のカラムを LowCardinality カラムに変換します。
この設定は主に、LowCardinality データ型をサポートしていないサードパーティ製クライアント向けに必要です。
設定可能な値:
- 1 —
LowCardinalityの使用は制限されません。 - 0 —
LowCardinalityの使用は制限されます。
low_cardinality_max_dictionary_size
- 任意の正の整数。
low_cardinality_use_single_dictionary_for_part
low_cardinality_use_single_dictionary_for_part = 1 を設定します。
設定可能な値:
- 1 — data part に対して複数の Dictionary を作成することを禁止します。
- 0 — data part に対して複数の Dictionary を作成することを禁止しません。
low_priority_query_wait_time_ms
priority を参照) 、低優先度のクエリは高優先度のクエリの完了を待機します。この設定では、その待機時間を指定します。
make_distributed_plan
materialize_skip_indexes_on_insert
materialize_statistics_on_insert
materialize_ttl_after_modify
materialized_views_ignore_errors
SELECT 内、または内部テーブルのシンク内) に投げられた例外は警告としてログに記録され、INSERT ステートメントは成功します。無効 (デフォルト) の場合、そのような例外は伝播し、INSERT ステートメントは失敗します。
この設定が制御するのはエラー報告だけです。ソーステーブルへの書き込みはロールバックされず、依存ビューのパイプラインでエラーが発生した時点で、元の block がすでにソーステーブルに commit 済みかどうかも保証されません。無効 (デフォルト) の場合、ビューエラーによって INSERT は失敗します。ソーステーブルとすべての依存ビューに exactly-once 配信を実現するには、挿入の重複排除 (insert_deduplicate, deduplicate_blocks_in_dependent_materialized_views) を指定して再試行してください。有効にすると、失敗したビューとその下流の chain への配信が部分的であっても、INSERT は成功として報告されます。これは、ソーステーブルへの書き込みをビュー側の問題でブロックしてはならない場合 (たとえば system.*_log テーブル) にのみ使用してください。完全なセマンティクスについては、CREATE VIEW のドキュメントを参照してください。
materialized_views_squash_parallel_inserts
parallel_view_processing が有効な場合、INSERT クエリは max_insert_thread ごとに宛先テーブルにパーツを生成します。
max_analyze_depth
max_ast_depth
現時点では、これはパース中にはチェックされず、クエリのパース後にのみチェックされます。
つまり、パース中に深すぎる構文木が作成される可能性はありますが、
そのクエリは失敗します。
max_ast_elements
現時点では、これはパース中にはチェックされず、クエリのパース完了後にのみチェックされます。
つまり、パース中に深さが大きすぎる構文木が生成される可能性はありますが、
そのクエリは失敗します。
max_autoincrement_series
generateSerialID 関数で作成されるシリーズ数の上限です。
各シリーズは Keeper 内のノードを表すため、その数は多くても数百万個程度に抑えることを推奨します。
max_backup_bandwidth
max_block_size
max_block_size 設定は、テーブルからデータを読み込む際に、1 つの block に含める行数の推奨最大値を示します。ただし、常に max_block_size サイズの block がテーブルから読み込まれるわけではありません。ClickHouse が、取得するデータ量はそれより少なくてよいと判断した場合は、より小さい block が処理されます。
各 block の処理コストが目立たないようにするため、block サイズは小さすぎてはいけません。また、LIMIT 句を含むクエリが最初の block の処理後すぐに実行できるようにするため、大きすぎてもいけません。max_block_size を設定する際は、複数のスレッドで多数のカラムを抽出するときにメモリを過剰に消費しないこと、そして少なくともある程度の cache 局所性を保つことを目標にしてください。
max_bytes_before_external_group_by
GROUP BY 句を外部メモリで実行する機能を有効または無効にします。
(外部メモリでの GROUP BY を参照)
設定可能な値:
- 1 回の GROUP BY 操作で使用できる RAM の最大量 (バイト単位) 。
0— 外部メモリでのGROUP BYは無効です。
GROUP BY 操作中のメモリ使用量がこのしきい値 (バイト単位) を超えると、
「external aggregation」モードが有効になり、中間データがディスクに書き出されます。推奨値は、使用可能なシステムメモリの半分です。
max_bytes_before_external_join
join_algorithm が hash、parallel_hash、default、または auto の場合、右側のデータがこのバイト数を超えると、ディスクへのスピルを可能にするため、ハッシュ結合は自動的に Grace Hash Join に変換されます。0 (デフォルト) に設定すると、この絶対バイトしきい値は無効になりますが、max_bytes_ratio_before_external_join (デフォルトは 0.5) により自動スピルが発生する可能性はあります。自動スピルを完全に無効にするには、両方を 0 に設定してください。これにより、JOIN 最適化による read in order は行われなくなります。
max_bytes_before_external_sort
ORDER BY 句を外部メモリで実行するかどうかを制御します。詳細は ORDER BY Implementation Details を参照してください。
ORDER BY の処理中にメモリ使用量がこのしきい値 (バイト単位) を超えると、「外部ソート」モード (データをディスクに書き出す) が有効になります。
設定可能な値:
- 1 回の ORDER BY 操作で使用できる RAM の最大量 (バイト単位) 。 推奨値は、利用可能なシステムメモリの半分です
0— 外部メモリでのORDER BYは無効です。
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm に依存します。アルゴリズムごとの動作 (スピル、再パーティション、切り替え、または
join_overflow_mode に従った throw/break) については、その設定を参照してください。
設定可能な値:
- 正の整数。
- 0 — メモリ制御は無効です。
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY に使用できる、利用可能メモリの割合です。しきい値に達すると、
外部メモリを使用した集約に切り替わります。
たとえば 0.6 に設定すると、GROUP BY は実行開始時に利用可能メモリ
(server/user/merges に対する) の 60% まで使用できます。それ以降は、
外部集約を使用し始めます。
max_bytes_ratio_before_external_join
JOIN に使用できる利用可能メモリの比率です。この値に達すると、ハッシュ結合は Grace Hash Join に変換され、右側のデータをディスクにスピルします。
たとえば 0.6 に設定すると、JOIN は実行開始時に、利用可能なメモリ (server/user/merges 用) の 60% を右側のハッシュテーブルに使用できます。それ以降はディスクへのスピルを開始します。
max_bytes_before_external_join と max_bytes_ratio_before_external_join の両方が設定されている場合は、しきい値として小さい方が使用されます。比率が 0 の場合は、絶対値の設定のみが適用されます。
join_algorithm が hash、parallel_hash、default、または auto であり、一時データのパスが設定されている場合にのみ有効です。
max_bytes_ratio_before_external_sort
ORDER BY に使用できる、利用可能メモリの割合です。この値に達すると、外部ソートが使用されます。
たとえば 0.6 に設定すると、ORDER BY は実行開始時に利用可能メモリ (server/user/merges に対する) の 60% まで使用できます。その後は外部ソートの使用を開始します。
なお、max_bytes_before_external_sort は引き続き適用されるため、ディスクへのスピルが行われるのは、ソートブロックが max_bytes_before_external_sort を超える場合のみです。
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150 を指定すると、合計で
200 バイトになるため失敗します。max_bytes_to_read_leaf=150 を指定したクエリは、
リーフノードが最大でも 100 バイトしか読み取らないため成功します。
この制限は、処理される各 chunk のデータに対してチェックされます。
この設定は
prefer_localhost_replica=1 では安定しません。max_bytes_to_sort
sort_overflow_mode によって
決まります。デフォルト値は throw です。
max_bytes_to_transfer
max_columns_to_read
0 は無制限を意味します。
max_compress_block_size
これは上級者向けの設定です。ClickHouse を使い始めたばかりであれば、変更しないでください。
max_concurrent_queries_for_all_users
max_concurrent_queries_for_all_users はすべてのユーザーに対して 99 に設定でき、データベース管理者は、server が過負荷状態でも調査用のクエリを実行できるよう、自身については 100 に設定できます。
1 つのクエリまたはユーザーに対してこの設定を変更しても、他のクエリには影響しません。
設定可能な値:
- 正の整数。
- 0 — 制限なし。
1000。
max_concurrent_queries_for_user
- 正の整数。
- 0 — 制限なし。
max_consume_snapshots
max_distributed_connections
max_distributed_depth
- 正の整数。
- 0 — 深さは無制限。
max_download_buffer_size
max_download_threads
max_estimated_execution_time
timeout_before_checking_execution_speed
が経過するたびにチェックされます。
max_execution_speed
timeout_before_checking_execution_speed
が経過するとチェックされます。実行速度が高すぎる場合は、実行速度が抑制されます。
max_execution_speed_bytes
timeout_before_checking_execution_speed
の期限が切れるたびにチェックされます。実行速度が高すぎる場合は、実行速度が抑制されます。
max_execution_time
max_execution_time パラメータは、少し理解しにくい場合があります。
これは、現在のクエリ実行速度に対する補間に基づいて動作します
(この動作は timeout_before_checking_execution_speed で制御されます) 。
ClickHouse は、予測される実行時間が指定された
max_execution_time を超える場合、クエリを中断します。デフォルトでは、timeout_before_checking_execution_speed
は 10 秒に設定されています。つまり、クエリの実行開始から 10 秒後に、ClickHouse は
合計実行時間の推定を開始します。たとえば、max_execution_time
が 3600 秒 (1 時間) に設定されている場合、推定される実行時間がこの 3600 秒の上限を超えると、ClickHouse は
クエリを終了します。timeout_before_checking_execution_speed
を 0 に設定すると、ClickHouse は max_execution_time の基準として実際の経過時間を使用します。
クエリの実行時間が指定された秒数を超えた場合の動作は、
デフォルトで throw に設定されている timeout_overflow_mode によって決まります。
タイムアウトがチェックされ、クエリを停止できるのは、データ処理中の決められた箇所だけです。
現時点では、集約状態のマージ中やクエリ解析中には停止できないため、
実際の実行時間はこの設定値を上回ります。
max_execution_time_leaf
max_execution_time に似ていますが、分散クエリまたはリモートクエリのリーフノードにのみ
適用されます。
たとえば、初期ノードには制限を設けず、リーフノードでの実行時間だけを 10s に制限したい場合は、
ネストされたサブクエリの設定で max_execution_time を指定する代わりに、
max_execution_time_leaf を使用できます。
max_expanded_ast_elements
max_fetch_partition_retries_count
max_final_threads
SELECT クエリのデータ読み取りフェーズで使用される、並列スレッドの最大数を設定します。
設定可能な値:
- 正の整数。
- 0 または 1 — 無効。
SELECTクエリは単一スレッドで実行されます。
max_http_get_redirects
10.
max_hyperscan_regexp_length
- 正の整数。
- 0 - 長さは制限されません。
max_hyperscan_regexp_total_length
- 正の整数。
- 0 - 長さは制限されません。
max_insert_block_size
max_insert_block_size_rows
テーブルに挿入するために形成されるブロックの最大サイズ (行数) です。
この設定は、次の 2 つの文脈でのブロック形成を制御します。
-
フォーマットのパース: サーバーが任意のインターフェイス (HTTP、インラインデータを伴う clickhouse-client、gRPC、PostgreSQL ワイヤプロトコル) から行ベースの入力フォーマット (CSV、TSV、JSONEachRow など) をパースする場合、ブロックは次の条件で生成されます:
- min_insert_block_size_rows と min_insert_block_size_bytes の両方に達した場合、または
- max_insert_block_size_rows または max_insert_block_size_bytes のいずれかに達した場合
-
INSERT 操作: INSERT クエリの実行中、およびデータが materialized view を通過する際のこの設定の動作は、
use_strict_insert_block_limitsによって決まります:-
有効な場合: ブロックは次の条件で生成されます:
- 最小しきい値 (AND): min_insert_block_size_rows と min_insert_block_size_bytes の両方に達した場合
- 最大しきい値 (OR): max_insert_block_size_rows または max_insert_block_size_bytes のいずれかに達した場合
- 無効な場合: ブロックは min_insert_block_size_rows または min_insert_block_size_bytes のいずれかに達した時点で生成されます。max_insert_block_size の設定は適用されません。
-
有効な場合: ブロックは次の条件で生成されます:
- 正の整数。
max_insert_block_size_bytes
- 正の整数。
- 0 — この設定はブロック形成に関与しません。
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT クエリの実行に使用するスレッドの最大数です。
設定可能な値:
- 0 (または 1) —
INSERT SELECTは並列実行されません。 - 正の整数。1 より大きい値。
- メモリ 8 GiB のノードでは
1 - メモリ 16 GiB のノードでは
2 - より大きなノードでは
4
INSERT SELECT が有効になるのは、SELECT 部分も並列に実行される場合のみです。max_threads 設定を参照してください。
値を大きくすると、メモリ使用量も増加します。
max_insert_threads_min_free_memory_per_thread
max_threads ではなく max_insert_threads に適用される点を除き、max_threads_min_free_memory_per_thread と同じです。デフォルト値が高く設定されているのは、挿入パイプラインでは通常、読み取りパイプラインよりもスレッドごとに大きなバッファ (MergeTree パーツ、圧縮ブロック) を保持するためです。
空きメモリ量が max_insert_threads にこの値を掛けた値を下回る場合、max_insert_threads は収まるように最小 1 まで減らされます。
この制限を無効にするには、0 に設定します。
max_joined_block_size_bytes
max_joined_block_size_rows
max_limit_for_vector_search_queries
max_local_read_bandwidth
max_local_write_bandwidth
max_memory_usage
0 は無制限を意味します。
この設定では、利用可能なメモリ容量やマシン全体のメモリ総量は考慮されません。この制限は、単一サーバー内の単一のクエリに適用されます。
SHOW PROCESSLIST を使用すると、各クエリの現在のメモリ消費量を確認できます。
各クエリのピークメモリ消費量は追跡され、ログに書き込まれます。
次の集約関数の String および Array 引数の状態については、
メモリ使用量は完全には追跡されません。
minmaxanyanyLastargMinargMax
max_memory_usage_for_user
および max_server_memory_usage
のパラメータによっても制限されます。
max_memory_usage_for_user
max_memory_usage_for_user = 0) 。
max_memory_usage の説明もあわせて参照してください。
たとえば、clickhouse_read という名前のユーザーについて max_memory_usage_for_user を 1000 バイトに設定する場合は、次のステートメントを使用できます
getSetting 関数を使用すると、正しく動作したことを確認できます。
max_network_bandwidth
- 正の整数。
- 0 — 帯域幅の制御は無効です。
max_network_bandwidth_for_all_users
- 正の整数。
- 0 — データ転送速度の制御は無効です。
max_network_bandwidth_for_user
- 正の整数。
- 0 — データ転送速度の制御は無効です。
max_network_bytes
- 正の整数。
- 0 — データ量の制限は無効です。
max_number_of_partitions_for_independent_aggregation
max_os_cpu_wait_time_ratio_to_throw
max_parallel_replicas
- 正の整数。
SAMPLE キーを使用した並列処理
- パーティション化キー内でのサンプリングキーの位置によっては、効率的な範囲スキャンを行えない。
- テーブルにサンプリングキーを追加すると、他のカラムでのフィルタリング効率が低下する。
- サンプリングキーが、計算コストの高い式である。
- クラスターのレイテンシ分布にロングテールがある場合、より多くのサーバーにクエリを送ると、クエリ全体のレイテンシが増加する。
parallel_replicas_custom_key を使用した並列処理
max_parser_backtracks
max_parser_depth
- 正の整数。
- 0 — 再帰深度は無制限です。
max_parsing_threads
max_partition_size_to_drop
0 は、制限なくパーティションを削除できることを意味します。
Cloud でのデフォルト値: 1 TB。
このクエリ設定は、対応するサーバー設定を上書きします。詳しくは max_partition_size_to_drop を参照してください
max_partitions_per_insert_block
- 正の整数。
0— パーティション数は無制限。
max_partitions_per_insert_block を超えると、
ClickHouse は throw_on_max_partitions_per_insert_block の設定に応じて警告をログに記録するか、
例外をスローします。例外メッセージは次のとおりです。
“単一の INSERT ブロックに対するパーティション数が多すぎます (partitions_count 個のパーティション、上限は ” + toString(max_partitions) + ”) 。
上限は ‘max_partitions_per_insert_block’ 設定によって制御されます。
大量のパーティションを使用するのは、よくある誤解です。これは深刻な
パフォーマンス低下を引き起こし、server の起動の遅延、INSERT クエリの低速化、
および SELECT クエリの低速化につながります。table に推奨されるパーティション総数は
1000..10000 未満です。なお、パーティション化は
SELECT クエリを高速化することを目的としたものではありません (範囲クエリを高速化するには ORDER BY key で十分です) 。
パーティションはデータ操作 (DROP PARTITION など) のためのものです。”
多数のパーティションを使用するのはよくある誤解であるため、この設定は安全しきい値として機能します。
max_partitions_to_read
- 正の整数
-1- 無制限 (デフォルト)
この MergeTree 設定
max_partitions_to_read は、テーブル設定でも指定できます。max_parts_to_move
max_projection_rows_to_use_projection_index
max_query_size
ClickHouse はクエリを解析するためのバッファを確保する必要があり、そのバッファサイズは
max_query_size 設定によって決まります。そのため、max_query_size は SQL クエリ内 (例: SELECT now() SETTINGS max_query_size=10000) では設定できません。この設定はクエリの実行前に構成しておく必要があります。max_rand_distribution_parameter
randChiSquared、randStudentT、randFisherF などの random distribution functions における、分布の shape parameter の最大値です。これにより、極端な parameter 値によって計算時間が極端に長くなるのを防ぎます。
max_rand_distribution_trials
randBinomial や randNegativeBinomial などの random distribution functions で許可される試行回数の最大値です。これにより、試行回数が大きい場合でも計算時間が極端に長くなるのを防ぎます。
max_read_buffer_size
max_read_buffer_size_local_fs
max_read_buffer_size_remote_fs
max_recursive_cte_evaluation_depth
max_remote_read_network_bandwidth
max_remote_write_network_bandwidth
max_replica_delay_for_distributed_queries
- 正の整数。
- 0 — レプリカの遅延はチェックされません。
SELECT を実行する際に使用されます。
max_result_bytes
max_result_rows
0。
結果の行数を制限します。サブクエリに対してもチェックされ、分散クエリの一部を実行する際はリモートサーバー上でもチェックされます。
値が 0 の場合、制限は適用されません。
しきい値に達すると、クエリはデータの block の処理が終わった時点で停止しますが、
結果の最後の block は切り詰められないため、結果サイズが
しきい値を上回ることがあります。
max_reverse_dictionary_lookup_cache_size_bytes
dictGetKeys が使用するクエリ単位の逆引き Dictionary ルックアップ cache の最大サイズ (バイト単位) 。この cache には、同一クエリ内で Dictionary を再スキャンしないよう、属性値ごとにシリアライズされたキー Tuple が保存されます。上限に達すると、エントリは LRU に従って追い出されます。0 に設定すると cache は無効になります。
max_rows_for_lazy_final
max_rows_in_distinct
max_rows_in_join
join_algorithm に依存します。アルゴリズムごとの動作 (spill、再パーティション、
切り替え、または join_overflow_mode に従った
throw/break) については、その設定を参照してください。
設定可能な値:
- 正の整数。
0— 行数は無制限です。
max_rows_in_set
max_rows_in_set_to_optimize_join
- 0 — 無効化します。
- 任意の正の整数。
max_rows_to_group_by
throw ですが、
近似 GROUP BY モードに切り替えることもできます。
max_rows_to_read
max_rows_to_read_leaf
max_rows_to_read=150 を設定すると失敗します。合計で 200 行になるためです。max_rows_to_read_leaf=150 を指定したクエリは成功します。各リーフノードで読み取るのは最大でも 100 行だからです。
この制限は、処理されるデータの各 chunk ごとに確認されます。
この設定は
prefer_localhost_replica=1 と併用すると不安定です。max_rows_to_sort
sort_overflow_mode によって決まり、デフォルトでは throw に設定されています。
max_rows_to_transfer
max_sessions_for_user
- 正の整数
0- 同時セッション数は無制限 (デフォルト)
max_size_to_preallocate_for_aggregation
max_size_to_preallocate_for_joins
skip_unavailable_shards が有効な場合、エラーを出さずにスキップできる分片の最大数を制限します。
利用できない分片の数がこの値を超えると、エラーを出さずにスキップする代わりに例外がスローされます。
値が 0 の場合は制限なしを意味します (既定の動作では、利用できないすべての分片をスキップできます) 。
skip_unavailable_shards が有効な場合、暗黙的にスキップできる分片の最大比率 (0~1) を制限します。
使用不可の分片の総分片数に対する比率がこの値を超えると、暗黙的にスキップする代わりに例外がスローされます。
値が 0 の場合は制限がないことを意味します (デフォルトの動作では、使用不可の分片をすべてスキップできます) 。
max_streams_for_files_processing_in_cluster_functions
max_streams_for_merge_tree_reading
max_streams_for_union_step
UNION ステップで同時にアクティブになるデータストリーム数を制限します (UNION DISTINCT は UNION ALL ステップの後に DISTINCT ステップを続ける形で実装されているため、UNION ALL と UNION DISTINCT の両方に適用されます) 。UNION クエリに多数のサブクエリがある場合、それらはすべて同時に読み取りバッファを開くため、メモリ使用量はサブクエリ数に比例して増加します。この設定では Concat プロセッサを挿入してパイプラインの幅を絞り、同時にアクティブなストリーム数を最大でこの値までに抑えることで、ピークメモリを大幅に削減します。実際の上限は、この値と max_threads * max_streams_for_union_step_to_max_threads_ratio の小さい方です (いずれかが 0 の場合は無視されます) 。両方が 0 の場合、パイプラインの絞り込みは適用されません。また、クエリプランで UNION の各出力ストリームをそれぞれ個別にソート済みの状態に保つ必要がある場合 (たとえば、read-in-order 最適化が UNION 全体に適用される場合) にも、この上限は適用されません。その場合は順序の正しさが優先されるため、絞り込みはスキップされます。
max_streams_for_union_step_to_max_threads_ratio
max_threads を掛けた値によって、UNION ステップで同時にアクティブにできるストリーム数の上限が決まります (UNION ALL と UNION DISTINCT の両方に適用されます) 。実際の上限は、この計算値と max_streams_for_union_step のうち小さい方です (どちらか一方が 0 の場合は無視されます) 。たとえば、max_threads = 8 でこの比率を 1 に設定すると、アクティブになるストリームは最大 8 個です。この比率ベースの上限を無効にするには、0 に設定します。max_streams_for_union_step と同様に、クエリプランで UNION の各出力ストリームをそれぞれソート済みの状態に保つ必要がある場合、この上限は適用されません。
max_streams_multiplier_for_merge_tables
max_streams_to_max_threads_ratio
max_subquery_depth
max_table_size_to_drop
0 は、制限なくすべてのテーブルを削除できることを意味します。
Cloud でのデフォルト値: 1 TB。
このクエリ設定は、対応するサーバー設定を上書きします。詳しくは max_table_size_to_drop を参照してください
max_temporary_columns
0 は無制限を意味します。
max_temporary_data_on_disk_size_for_query
- 正の整数。
0— 無制限 (デフォルト)
max_temporary_data_on_disk_size_for_user
- 正の整数。
0— 無制限 (デフォルト)
max_temporary_non_const_columns
max_temporary_columns と同様に、クエリ実行時に定数カラムを除いて、同時に RAM に保持する必要がある一時カラムの最大数を指定します。
定数カラムはクエリ実行時にかなり頻繁に生成されますが、必要な計算リソースはほぼゼロです。
max_threads
WHERE によるフィルタリング、GROUP BY の事前集約を並列に実行できる場合は、‘max_threads’ が使用されます。
LIMIT によってすぐに完了するクエリでは、‘max_threads’ をより小さく設定できます。
たとえば、必要な数のエントリがすべてのブロックに存在し、max_threads = 8 の場合、実際には 1 ブロックだけ読めば十分であっても、8 ブロックが取得されます。
max_threads の値が小さいほど、消費メモリは少なくなります。
max_threads 設定のデフォルト値は、ClickHouse で利用可能なハードウェアスレッド数 (CPU コア数) に一致します。
特別なケースとして、32 CPU コア未満で SMT (例: Intel HyperThreading) を備えた x86 プロセッサでは、ClickHouse はデフォルトで論理コア数 (= 物理コア数 x 2) を使用します。
SMT (例: Intel HyperThreading) がない場合、これは CPU コア数に対応します。
ClickHouse Cloud ユーザーの場合、デフォルト値は auto(N) と表示され、N はサービスの vCPU サイズ (たとえば 2vCPU/8GiB、4vCPU/16GiB など) に一致します。
すべてのサービスサイズの一覧は、Cloud Console の Settings タブを参照してください。
max_threads_for_indexes
max_threads_min_free_memory_per_thread
max_threads を引き下げ、メモリ制限に達する可能性が高い高並列のクエリが開始されるのを防ぎます。
空きメモリは、サーバーの max_server_memory_usage から、グローバルメモリトラッカーによって現在追跡されているメモリ使用量を差し引いて算出されます。この空きメモリが max_threads にこの値を掛けた値より少ない場合、N * value <= free_memory を満たす最大の N になるように max_threads が減らされます。最小値は 1 です。
この制限を無効にするには、0 に設定します。
たとえば、デフォルト値の 1 GiB で空きメモリが 32 GiB の場合、max_threads の上限は 32 になります。空きメモリが 1 GiB の場合は 1 まで下がります。
この設定は、読み取り側の並列度 (SELECT、UNION、INTERSECT/EXCEPT、および INSERT ... SELECT の SELECT 側) に適用されます。書き込み側については、max_insert_threads_min_free_memory_per_thread を参照してください。
max_untracked_memory
max_wkb_geometry_elements
readWKB および関連関数でのパース時に、1 つの WKB geometry 要素内で許可される point、ring、または Polygon の最大数です。これにより、不正な WKB データによる過剰なメモリ割り当てを防ぎます。ハードコードされた上限 (1 億) を使用するには、0 に設定します。
memory_overcommit_ratio_denominator
memory_overcommit_ratio_denominator_for_user
memory_profiler_sample_max_allocation_size
memory_profiler_sample_probability と同じ確率で収集します。0 は無効を意味します。このしきい値が想定どおりに機能するよう、‘max_untracked_memory’ を 0 に設定するとよい場合があります。
memory_profiler_sample_min_allocation_size
memory_profiler_sample_probability で指定した確率でランダムに収集します。0 は無効です。このしきい値が想定どおりに機能するように、max_untracked_memory を 0 に設定することをおすすめします。
memory_profiler_sample_probability
memory_profiler_sample_min_allocation_size と memory_profiler_sample_max_allocation_size で変更できます) 。サンプリングは、未追跡メモリ量が ‘max_untracked_memory’ を超えた場合にのみ行われる点に注意してください。より細かい粒度でサンプリングしたい場合は、‘max_untracked_memory’ を 0 に設定するとよいでしょう。
memory_profiler_step
- 正の整数 (バイト数) 。
- メモリプロファイラを無効にする場合は 0。
memory_tracker_fault_probability
exception safety をテストするための設定です。指定した確率で、メモリを割り当てるたびに例外をスローします。
memory_usage_overcommit_max_wait_microseconds
merge_table_max_tables_to_look_for_schema_inference
Mergeテーブルを作成する場合、またはmergeテーブル関数を使用する場合、スキーマは一致するテーブルのうち、指定した数を超えない範囲でユニオンとして推論されます。
テーブル数がそれを超える場合、スキーマは先頭から指定した数のテーブルに基づいて推論されます。
merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity 個の部分範囲に分割し、それらの中から必要なキーを再帰的に検索します。
設定可能な値:
- 任意の正の偶数整数。
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache バイトを超えるデータを読み取る必要がある場合、非圧縮ブロックのキャッシュは使用されません。
非圧縮ブロックのキャッシュには、クエリ用に抽出されたデータが格納されます。ClickHouse は、このキャッシュを使用して、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが不要に消費されるのを防ぎます。uncompressed_cache_size サーバー設定で、非圧縮ブロックのキャッシュのサイズを定義します。
設定可能な値:
- 任意の正の整数。
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache 行を超えて読み取る場合、非圧縮ブロックのキャッシュは使用されません。
非圧縮ブロックのキャッシュには、クエリのために取り出されたデータが保存されます。ClickHouse はこのキャッシュを使って、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが使い潰されるのを防ぎます。uncompressed_cache_size サーバー設定で、非圧縮ブロックのキャッシュのサイズを定義します。
設定可能な値:
- 任意の正の整数。
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read を超える場合、ClickHouse はそのファイルを複数のスレッドで同時に読み取ろうとします。
指定可能な値:
- 正の整数。
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- 正の整数。
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek バイト未満の場合、ClickHouse は余分な seek を避けるため、両方のブロックを含むファイル範囲を連続して読み取ります。
設定可能な値:
- 任意の正の整数。
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
タスクごとに読み取る最小バイト数。
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read を超えると、ClickHouse はこのファイルを複数のスレッドで同時に読み取ろうとします。
設定可能な値:
- 正の整数。
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- 正の整数。
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek 行より小さい場合、ClickHouse はファイル内でシークせず、データを順次読み取ります。
設定可能な値:
- 任意の正の整数。
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter のテストのため、指定した確率で、MergeTree から読み取るたびに読み取り範囲を交差するものと交差しないものに分割します。
merge_tree_storage_snapshot_sleep_ms
- 0 - 遅延なし (デフォルト)
- N - ミリ秒単位の遅延
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size で制御されます。
merge_tree_use_v1_object_and_dynamic_serialization
metrics_perf_events_enabled
metrics_perf_events_list
min_bytes_to_use_direct_io
min_bytes_to_use_direct_io バイトを超える場合、ClickHouse は O_DIRECT オプションを使用してストレージディスクからデータを読み取ります。
設定可能な値:
- 0 — ダイレクト I/O は無効です。
- 正の整数。
min_bytes_to_use_mmap_io
- 正の整数。
- 0 — 大きなファイルも、カーネルからユーザー空間へデータをコピーする方式でのみ読み込まれます。
min_chunk_bytes_for_parallel_parsing
- 型: unsigned int
- デフォルト値: 1 MiB
min_compress_block_size
min_compress_block_size 以上の block は、次の mark の書き込み時に圧縮されます。デフォルト値は 65,536 です。
非圧縮データが max_compress_block_size 未満の場合、実際の block サイズはこの値以上であり、かつ 1 つの mark 分のデータ量を下回ることはありません。
例を見てみましょう。テーブル作成時に index_granularity が 8192 に設定されていたとします。
UInt32 型のカラム (値あたり 4 バイト) を書き込むとします。8192 行を書き込むと、合計で 32 KB のデータになります。min_compress_block_size = 65,536 なので、圧縮 block は 2 つの mark ごとに形成されます。
String 型の URL カラム (値あたり平均 60 バイト) を書き込むとします。8192 行を書き込むと、平均で 500 KB 弱のデータになります。これは 65,536 を超えるため、圧縮 block は mark ごとに形成されます。この場合、ディスクから 1 つの mark の範囲のデータを読み取る際に、余分なデータが展開されることはありません。
これは上級者向けの設定です。ClickHouse を使い始めたばかりであれば、変更しないでください。
min_count_to_compile_aggregate_expression
- 正の整数。
- 0 — 同一の集約式は常に JIT コンパイルされます。
min_count_to_compile_expression
min_count_to_compile_sort_description
min_execution_speed
timeout_before_checking_execution_speed
が経過した時点でチェックされます。実行速度がこれを下回る場合、例外が発生します。
min_execution_speed_bytes
timeout_before_checking_execution_speed
の期限が切れると、各データブロックごとにチェックされます。実行速度がこれを下回る場合は、例外がスローされます。
min_external_table_block_size_bytes
min_external_table_block_size_rows
min_filtered_ratio_for_lazy_final
0 を指定すると、このチェックは無効になります。
min_free_disk_bytes_to_perform_insert
insert を実行するための最小空きディスク容量比率
min_free_disk_space_for_temporary_data
min_hit_rate_to_use_consecutive_keys_optimization
min_insert_block_size_bytes
- 正の整数。
- 0 — この設定はブロック形成に使用されません。
min_insert_block_size_bytes_for_materialized_views
INSERTクエリでテーブルに挿入できるブロックの最小バイト数を設定します。これより小さいブロックは、より大きなブロックにまとめられます。この設定は、materialized view に挿入されるブロックにのみ適用されます。この設定を調整することで、materialized view への書き込み時のブロックのまとめ方を制御し、過剰なメモリ使用量を回避できます。
設定可能な値:
- 任意の正の整数。
- 0 — まとめる処理は無効です。
min_insert_block_size_rows
-
フォーマットのパース: サーバーが任意のインターフェイス (HTTP、インラインデータを使用する clickhouse-client、gRPC、PostgreSQL ワイヤプロトコル) から行ベースの入力フォーマット (CSV、TSV、JSONEachRow など) をパースする際、ブロックは次の場合に出力されます。
- min_insert_block_size_rows と min_insert_block_size_bytes の両方に達した場合、または
- max_insert_block_size_rows または max_insert_block_size_bytes のいずれかに達した場合
-
INSERT 操作: INSERT クエリの実行時、およびデータが materialized view を通過する際、この設定の動作は
use_strict_insert_block_limitsに依存します。-
有効な場合: ブロックは次の場合に出力されます。
- 最小しきい値 (AND) : min_insert_block_size_rows と min_insert_block_size_bytes の両方に達したとき
- 最大しきい値 (OR) : max_insert_block_size_rows または max_insert_block_size_bytes のいずれかに達したとき
- 無効 (デフォルト) の場合: min_insert_block_size_rows または min_insert_block_size_bytes に達するとブロックが出力されます。max_insert_block_size の設定は適用されません。
-
有効な場合: ブロックは次の場合に出力されます。
- 正の整数。
- 0 — この設定はブロック形成に関与しません。
min_insert_block_size_rows_for_materialized_views
INSERT クエリでテーブルに挿入できるブロックの最小行数を設定します。これより小さいブロックは、より大きなブロックにまとめられます。この設定は、materialized view に挿入されるブロックにのみ適用されます。この設定を調整することで、materialized view への書き込み時のブロックのまとめ方を制御し、過剰なメモリ使用量を回避できます。
設定可能な値:
- 任意の正の整数。
- 0 — まとめる処理を無効にします。
min_joined_block_size_bytes
min_joined_block_size_rows
min_os_cpu_wait_time_ratio_to_throw
OSCPUWaitMicroseconds メトリクス) とビジー時間 (OSCPUVirtualTimeMicroseconds メトリクス) の最小比率です。確率の計算には最小比率と最大比率の間で線形補間が使用され、この時点での確率は 0 です。
min_outstreams_per_resize_after_split
Resize または StrictResize プロセッサの出力ストリーム数の最小値を指定します。結果のストリーム数がこの値未満の場合、分割操作は実行されません。
Resize ノードとは
Resize ノードは、クエリパイプライン内を流れるデータストリームの数を調整するプロセッサです。複数のスレッドやプロセッサにワークロードを均等に配分できるよう、ストリーム数を増やしたり減らしたりできます。たとえば、クエリでより高い並列度が必要な場合、Resize ノードは 1 つのストリームを複数のストリームに分割できます。逆に、複数のストリームを少数のストリームにマージして、データ処理を集約することもできます。
Resize ノードは、データブロックの構造を維持したまま、データが各ストリームに均等に分散されるようにします。これにより、リソース利用を最適化し、クエリパフォーマンスを向上させることができます。
Resize ノードを分割する必要がある理由
Resize ノードの ExecutingGraph::Node::status_mutex では、特にコア数の多い環境で深刻な競合が発生し、この競合によって次のような問題が生じます。
- ExecutingGraph::updateNode のレイテンシが増加し、クエリパフォーマンスに直接影響します。
- スピンロック競合 (native_queued_spin_lock_slowpath) によって CPU サイクルが過剰に浪費され、効率が低下します。
- CPU 使用率が低下し、並列度とスループットが制限されます。
Resize ノードがどのように分割されるか
- 分割を実行できることを確認するため、出力ストリーム数をチェックします。各分割 processor の出力ストリーム数が、
min_outstreams_per_resize_after_splitのしきい値以上である必要があります。 Resizeノードは、入力ストリームと出力ストリームの一部をそれぞれ処理する、同数のポートを持つ小さなResizeノードに分割されます。- 各グループは独立して処理されるため、ロック競合が軽減されます。
任意の入出力を持つ Resize ノードの分割
Resize ノード数で割り切れない場合には、一部の入力が NullSource に接続され、一部の出力が NullSink に接続されることがあります。これにより、データフロー全体に影響を与えることなく分割を行えます。
設定の目的
min_outstreams_per_resize_after_split 設定は、Resize ノードの分割が意味のあるものになるようにし、ストリーム数が少なすぎることで並列処理が非効率になるのを防ぎます。出力ストリーム数の最小値を設けることで、この設定は並列度とオーバーヘッドのバランスを保ち、ストリームの分割やマージを伴うシナリオでクエリ実行を最適化するのに役立ちます。
設定を無効にする
Resize ノードの分割を無効にするには、この設定を 0 にします。これにより、パイプラインの生成時に Resize ノードが分割されなくなり、より小さなノードに分けられることなく、元の構造を維持できます。
min_table_rows_to_use_projection_index
mongodb_throw_on_unsupported_query
move_all_conditions_to_prewhere
move_primary_key_columns_to_end_of_prewhere
multiple_joins_try_to_keep_original_names
mutations_execute_nondeterministic_on_initiator
true の場合、定数の非決定論的関数 (例: now() 関数) はイニシエーター上で実行され、UPDATE および DELETE クエリ内でリテラルに置き換えられます。これにより、定数の非決定論的関数を含む mutation の実行時に、レプリカ間でデータの同期を保つことができます。デフォルト値: false。
mutations_execute_subqueries_on_initiator
true の場合、スカラーサブクエリはイニシエーターで実行され、UPDATE および DELETE クエリではリテラルに置き換えられます。デフォルト値: false。
mutations_max_literal_size_to_replace
UPDATE および DELETE クエリで置換するシリアライズ済みリテラルの最大サイズ (バイト単位) 。上記 2 つの設定のうち少なくとも 1 つが有効な場合にのみ適用されます。デフォルト値: 16384 (16 KiB) 。
mutations_sync
ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS クエリ (mutations) を同期的に実行できるようにします。
設定可能な値:
| 値 | 説明 |
|---|---|
0 | ミューテーションは非同期で実行されます。 |
1 | クエリは、現在のサーバー上ですべてのミューテーションが完了するまで待機します。 |
2 | クエリは、すべてのレプリカ (存在する場合) でのミューテーションが完了するまで待機します。 |
3 | クエリはアクティブなレプリカのみを待機します。SharedMergeTree でのみサポートされます。ReplicatedMergeTree では mutations_sync = 2 と同じ動作になります。 |
mysql_datatypes_support_level
decimal、datetime64、date2Date32、date2String を任意に組み合わせたカンマ区切りのリストで指定します。最新のマッピング (decimal、datetime64、date2Date32) はデフォルトで有効です。
decimal: 精度の範囲内であれば、NUMERIC型とDECIMAL型をDecimalに変換します。datetime64: 精度が0でない場合、DATETIME型とTIMESTAMP型をDateTimeではなくDateTime64に変換します。date2Date32:DATEをDateではなくDate32に変換します。date2Stringより優先されます。date2String:DATEをDateではなくStringに変換します。datetime64が優先されます。
mysql_map_fixed_string_to_text_in_show_columns
TEXT として表示されます。
MySQL wire protocol 経由で接続した場合にのみ効果があります。
- 0 -
BLOBを使用します。 - 1 -
TEXTを使用します。
mysql_map_string_to_text_in_show_columns
TEXT として表示されます。
この設定は、MySQL wire protocol 経由で接続した場合にのみ有効です。
- 0 -
BLOBを使用します。 - 1 -
TEXTを使用します。
mysql_max_rows_to_insert
network_compression_method
NONE— 圧縮しません。LZ4— LZ4 コーデックを使用します。LZ4HC— LZ4HC コーデックを使用します。ZSTD— ZSTD コーデックを使用します。
network_zstd_compression_level
ZSTD に設定されている場合にのみ使用されます。
設定可能な値:
- 1 から 15 までの正の整数。
normalize_function_names
number_of_mutations_to_delay
number_of_mutations_to_throw
odbc_bridge_connection_pool_size
odbc_bridge_use_connection_pooling
offset
- 0 — 行はスキップされません。
- 正の整数。
opentelemetry_start_keeper_trace_probability
- ‘auto’ - opentelemetry_start_trace_probability 設定と同じ
- 0 — トレースは無効
- 0 から 1 — 確率 (例: 1.0 = 常に有効)
opentelemetry_start_trace_probability
- 0 — すべての実行クエリのトレースが無効になります (親のトレースコンテキストが渡されない場合) 。
- 範囲 [0..1] の正の浮動小数点数。たとえば、設定値が
0,5の場合、ClickHouse は平均してクエリの半分でトレースを開始できます。 - 1 — すべての実行クエリのトレースが有効になります。
opentelemetry_trace_cpu_scheduling
opentelemetry_trace_processors
optimize_aggregation_in_order
- 0 —
GROUP BY最適化は無効です。 - 1 —
GROUP BY最適化は有効です。
optimize_aggregators_of_group_by_keys
optimize_and_compare_chain
<、<=、>、>=、= の各演算子と、その組み合わせをサポートします。たとえば、(a < b) AND (b < c) AND (c < 5) は (a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5) に展開されます。
optimize_append_index
false です。
設定可能な値:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- 正の整数 - 名前の最大長、
- 0 — 常に、
- 負の整数 - 適用しない。
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage に適用されます。
設定可能な値:
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) を dictGet('dict', 'b', key) に書き換えます。位置指定アクセス (.1、.2、…) と名前付きアクセス (.b) をサポートしており、デフォルト引数が定数タプル、または定数のみからなる tuple(...) の場合は dictGetOrDefault にも適用されます。
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key クエリを最適化します (これにより、イニシエーターサーバーでの当該クエリのメモリ使用量も削減されます) 。
以下の種類のクエリがサポートされています (これらの任意の組み合わせを含む) :
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — 無効。
- 1 — 有効。
現時点では
optimize_skip_unused_shards が必要です。これは、将来的にこの設定がデフォルトで有効になる可能性がある一方で、データが Distributed テーブル経由で挿入されている場合、つまり sharding_key に従ってデータが分散されている場合にのみ正しく動作するためです。optimize_dry_run_check_part
OPTIMIZE ... DRY RUN は checkDataPart を使用して、結果として生成されるマージ済みパートを検証します。チェックに失敗した場合は、例外がスローされます。
optimize_empty_string_comparisons
col = '' や '' = col のような式は empty(col) に、col != '' や '' != col は notEmpty(col) に変換されます。
ただし、col が String または FixedString 型の場合に限ります。
optimize_extract_common_expressions
(A AND B) OR (A AND C) のような論理式は A AND (B OR C) に書き換えられるため、次の最適化に役立つ可能性があります。
- 単純なフィルタ式でのインデックスの活用
- CROSS JOIN から INNER JOIN への最適化
optimize_functions_to_subcolumns
- length を、size0 サブカラムを読み取る形に変換。
- empty を、size0 サブカラムを読み取る形に変換。
- notEmpty を、size0 サブカラムを読み取る形に変換。
- isNull を、null サブカラムを読み取る形に変換。
- isNotNull を、null サブカラムを読み取る形に変換。
- count を、null サブカラムを読み取る形に変換。
- mapKeys を、keys サブカラムを読み取る形に変換。
- mapValues を、values サブカラムを読み取る形に変換。
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_group_by_constant_keys
optimize_group_by_function_keys
optimize_if_chain_to_multiif
optimize_if_transform_strings_to_enum
optimize_injective_functions_in_group_by
optimize_injective_functions_in_limit_by
LIMIT 5 BY toString(x) は LIMIT 5 BY x になります。
optimize_injective_functions_inside_uniq
optimize_inverse_dictionary_lookup
optimize_limit_by_function_keys
LIMIT 5 BY x, f(x) は LIMIT 5 BY x になります。
optimize_limit_by_in_order
<cols> が (順不同で) テーブルのソートキーのプレフィックスを構成する場合、または WHERE col = const によって先頭のカラムが固定されてそうなる場合に、SELECT ... LIMIT N BY <cols> クエリを最適化します。これを有効にすると、データはプライマリキー順に読み取られるため、BY カラムの値が等しい行は各ストリーム内で隣接して到着します。データが単一のソート済みストリームで到着する場合、LIMIT BY はストリーミングモードでこれをフィルタリングするため、メモリ使用量は O(1) で済み、BY カラムの異なる組み合わせごとにハッシュテーブルを構築する必要がありません。ソート済みデータが複数のストリームで到着し、同じ BY の値が複数のストリームに現れる可能性がある場合は、まず各ストリームをストリーミングモードでグループごとに最大 LIMIT + OFFSET 行まで事前フィルタリングし、その後ストリームを結合して、最後にハッシュベースの LIMIT BY で複数ストリームにまたがるグループを重複排除します。この最後の処理では、依然として BY カラムの異なる組み合わせごとにエントリを保持しますが、処理するのは事前フィルタリング済みの行だけです。
optimize_min_equality_disjunction_chain_length
expr = x1 OR ... expr = xN を最適化するために必要な最小長
optimize_min_inequality_conjunction_chain_length
expr <> x1 AND ... expr <> xN を最適化するための最小長
optimize_move_to_prewhere
- 0 —
PREWHEREの自動最適化は無効です。 - 1 —
PREWHEREの自動最適化は有効です。
optimize_move_to_prewhere_if_final
- 0 —
FINAL修飾子を使用するSELECTクエリでの自動PREWHERE最適化は無効です。 - 1 —
FINAL修飾子を使用するSELECTクエリでの自動PREWHERE最適化は有効です。
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — 無効。
- 1 — 有効。
optimize_or_like_chain
multiMatchAny に最適化します。この最適化は、場合によっては索引解析を妨げるため、デフォルトで有効にすべきではありません。
optimize_prewhere_after_pushdown
MergeTree 読み取りステップの上に追加のフィルター
(たとえば JOIN を介した述語プッシュダウンやプロジェクションの書き換え) が
追加されることがあるため、その後に 2 回目の PREWHERE 昇格パスを実行します。既存の
PREWHERE がすでにある場合、新しいフィルターは別個のフィルターステップのままにはならず、
AND でマージされます。
optimize_qbit_distance_function_reads
QBit データ型に対する距離関数を、計算に必要なカラムだけをストレージから読み取る等価な関数に置き換えます。
optimize_read_in_order
- 0 —
ORDER BYの最適化は無効です。 - 1 —
ORDER BYの最適化は有効です。
optimize_redundant_functions_in_order_by
optimize_respect_aliases
optimize_rewrite_aggregate_function_with_if
if 式を含む集約関数を、論理的に等価な場合は書き換えます。
たとえば、avg(if(cond, col, null)) は avgOrNullIf(cond, col) に書き換えられます。これにより、パフォーマンスが向上する可能性があります。
アナライザ (
enable_analyzer = 1) が有効な場合にのみサポートされます。optimize_rewrite_array_exists_to_has
optimize_rewrite_has_to_in
has 関数を IN に書き換えます。たとえば、has([1, 2, 3], x) は、定数配列ではパフォーマンス向上のため x IN [1, 2, 3] に書き換えることができます
optimize_rewrite_like_perfect_affix
col LIKE 'ClickHouse%') を、startsWith または endsWith 関数 (例: startsWith(col, 'ClickHouse')) に書き換えます。
optimize_rewrite_regexp_functions
optimize_rewrite_sum_if_to_count_if
optimize_skip_merged_partitions
OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1
OPTIMIZE TABLE ... FINAL クエリは、パートが 1 つしかない場合でもそのパートを再書き込みします。
設定可能な値:
- 1 - 最適化を有効にします。
- 0 - 最適化を無効にします。
optimize_skip_unused_shards
WHERE/PREWHERE に分片キー条件を含む SELECT クエリについて、未使用の分片のスキップを有効または無効にします。また、分散クエリに関連する最適化 (例: 分片キーによる集約) も有効にします。
データが分片キーに従って分散されていることを前提としています。そうでない場合、クエリは不正確な結果を返します。
- 0 — 無効。
- 1 — 有効。
optimize_skip_unused_shards_limit
optimize_skip_unused_shards は無効になります。
値が多すぎると処理にかなりのコストがかかる可能性がある一方で、その効果は疑わしい場合があります。IN (...) に非常に多くの値が含まれていると、結局のところクエリはすべての分片に送信される可能性が高いためです。
optimize_skip_unused_shards_nesting
optimize_skip_unused_shards の動作を制御します (この設定を有効にするには、optimize_skip_unused_shards も有効である必要があります) 。これは、ある Distributed table が別の Distributed table を参照する場合に該当します。
設定可能な値:
- 0 — 無効。
optimize_skip_unused_shardsは常に動作します。 - 1 —
optimize_skip_unused_shardsを最初のレベルでのみ有効にします。 - 2 —
optimize_skip_unused_shardsを第 2 レベルまで有効にします。
optimize_skip_unused_shards_rewrite_in
optimize_skip_unused_shards が必要です) 。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
falseです。
設定可能な値:
- true, false
optimize_syntax_fuse_functions
- 0 — 同一の引数を持つ関数は統合されません。
- 1 — 同一の引数を持つ関数は統合されます。
optimize_throw_if_noop
OPTIMIZE は何も実行しなかった場合でも正常に成功を返します。この設定を使うと、こうした状況を区別し、その理由を例外メッセージで確認できます。
設定可能な値:
- 1 — 例外のスローが有効です。
- 0 — 例外のスローは無効です。
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_trivial_approximate_count_query
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_trivial_count_query
SELECT count() FROM table を最適化する機能を有効または無効にします。行レベルセキュリティを使用する必要がある場合は、この設定を無効にしてください。
設定可能な値:
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_trivial_group_by_limit_query
max_rows_to_group_by = n + offset および group_by_overflow_mode = 'any' を設定することで、単純なクエリ SELECT key_expr FROM table GROUP BY key_expr LIMIT n の最適化を有効または無効にします (SELECT リストに集約関数がなく、HAVING/ORDER BY/LIMIT BY/ウィンドウ句がなく、GROUP BY 修飾子もない場合) 。n + offset 個の異なるキーが生成された時点で、集約は停止します。
この最適化は、ユーザーが group_by_overflow_mode を明示的に any 以外の値に設定している場合 (明示した throw/break の動作を維持するため) 、およびユーザーがすでにより厳しい max_rows_to_group_by を設定している場合 (この最適化では何も変わらないため) には適用されません。
設定可能な値:
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_trivial_insert_select
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
optimize_use_implicit_projections
optimize_use_projection_filtering
optimize_use_projections
allow_experimental_projection_optimization
SELECT クエリの処理時に、プロジェクション最適化を有効または無効にします。
設定可能な値:
- 0 — プロジェクション最適化は無効です。
- 1 — プロジェクション最適化は有効です。
optimize_using_constraints
falseです。
設定可能な値:
- true, false
os_threads_nice_value_materialized_view
os_threads_nice_value_query
os_thread_priority
クエリ処理スレッドの Linux の nice 値です。値が小さいほど、CPU の優先度は高くなります。
CAP_SYS_NICE capability が必要です。ない場合は no-op になります。
設定可能な値: -20 から 19。
page_cache_block_size
page_cache_inject_eviction
page_cache_lookahead_blocks
page_cache_max_coalesced_bytes
readBigAt がユーザー空間ページキャッシュを拡充する際、連続する cache ミスは基盤ストレージからの単一の読み取りにまとめられます。この設定は、その1回の結合読み取りのサイズをバイト単位で制限します。ミスの連続区間がこれより長い場合は、複数の読み取りに分割されます。これにより、並列なコールドリード時に一時バッファの一時的なメモリ使用量を抑えられます。
値を大きくすると、オブジェクトストレージに対するコールドスキャン時の HTTP リクエスト数が減少し、値を小さくすると、一時的なメモリ使用量のピークが低減されます。
paimon_target_snapshot_id
parallel_distributed_insert_select
INSERT ... SELECT クエリを有効にします。
INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b クエリを実行し、両方のテーブルが同じクラスターを使用していて、かつ両方のテーブルが レプリケーション対応 または非レプリケートである場合、このクエリは各分片でローカルに処理されます。
設定可能な値:
0— 無効。1—SELECTは、Distributed エンジンの基になるテーブルから各分片で実行されます。2—SELECTは Distributed エンジンの基になるテーブルから、INSERTはその基になるテーブルへ、各分片で実行されます。
ReplicatedMergeTree または SharedMergeTree をソースとする INSERT ... SELECT も、レプリカ間で並列化できるようになりました。有効にするには:
parallel_distributed_insert_select = 2enable_parallel_replicas = 1
parallel_hash_join_threshold
hash と parallel_hash のどちらを使用するかを判断するのに役立ちます (右側のテーブルサイズを見積もれる場合のみ) 。
前者は、右側のテーブルサイズがこのしきい値を下回ることがわかっている場合に使用されます。
parallel_non_joined_rows_processing
parallel_hash ハッシュ結合アルゴリズムを使用する場合、これにより非結合フェーズを高速化できることがあります。
無効にすると、非結合行は単一のスレッドで処理されます。
parallel_replica_offset
parallel_replicas_allow_in_with_subquery
parallel_replicas_allow_materialized_views
parallel_replicas_allow_view_over_mergetree
MergeTree テーブル上にある場合、並列レプリカでビューの内側のクエリではなく外側のクエリを実行できるようにし、ノード間の並列化を向上させます。これは、すべての分岐がそれぞれ異なる MergeTree テーブルを読み取る UNION ALL ビューにも適用されます。
parallel_replicas_connect_timeout_ms
parallel_replicas_count
parallel_replicas_custom_key
SAMPLE キーと同様に動作し、各分片の複数のレプリカを使用します。
parallel_replicas_custom_key_range_lower
range が、カスタム範囲 [parallel_replicas_custom_key_range_lower, INT_MAX] に基づいて処理をレプリカ間で均等に分割できるようにします。
parallel_replicas_custom_key_range_upper と組み合わせて使用すると、範囲 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] に対して、フィルターが処理をレプリカ間で均等に分割できるようになります。
注: この設定によってクエリ処理中に追加のデータがフィルタリングされることはありません。代わりに、並列処理のために範囲フィルターが [0, INT_MAX] を分割する位置が変更されます。
parallel_replicas_custom_key_range_upper
range が、カスタム範囲 [0, parallel_replicas_custom_key_range_upper] に基づいて、レプリカ間で処理を均等に分割できるようにします。値を 0 にすると上限は無効になり、カスタムキー式の最大値が設定されます。
parallel_replicas_custom_key_range_lower と組み合わせて使用すると、範囲 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] に対して、フィルターがレプリカ間で処理を均等に分割できるようになります。
注: この設定によってクエリ処理中に追加のデータがフィルターされることはありません。代わりに、並列処理のために range フィルターが範囲 [0, INT_MAX] を分割する位置が変更されます
parallel_replicas_filter_pushdown
parallel_replicas_for_cluster_engines
parallel_replicas_for_non_replicated_merge_tree
parallel_replicas_index_analysis_only_on_coordinator
parallel_replicas_insert_select_local_pipeline
parallel_replicas_local_plan
parallel_replicas_mark_segment_size
parallel_replicas_min_number_of_rows_per_replica
max_parallel_replicas によって制限されます
parallel_replicas_mode
parallel_replicas_only_with_analyzer
parallel_replicas_prefer_local_join
parallel_replicas_prefer_local_replica
max_parallel_replicas = 1 を指定したクエリを別のホストに振り向けることができ、多数の短いクエリがクラスター全体に分散される場合の cache の局所性を向上できます。
parallel_replicas_support_projection
parallel_view_processing
parallelize_output_from_storages
parsedatetime_e_requires_space_padding
parseDateTime のフォーマッタ %e は、1 桁の日付は空白で埋められていることを想定しています。たとえば、' 2' は受け付けられますが、'2' はエラーになります。
parsedatetime_parse_without_leading_zeros
partial_merge_join_left_table_buffer_bytes
partial_merge_join_rows_in_right_blocks
- 右側の結合データを、指定した行数以下のブロックに分割します。
- 各ブロックに最小値と最大値に基づく索引を作成します。
- 可能であれば、準備したブロックをディスクにアンロードします。
- 任意の正の整数。推奨値の範囲: [1000, 100000]。
partial_result_on_first_cancel
parts_to_delay_insert
parts_to_throw_insert
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_connection_attempt_timeout
connect_timeout パラメータとして渡されます。
postgresql_connection_pool_auto_close_connection
postgresql_connection_pool_retries
postgresql_connection_pool_size
postgresql_connection_pool_wait_timeout
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log に収集します。N > 0 に設定すると、クエリ ID に基づいてクエリのおよそ 1/N がサンプリングされます。0 は無効を意味します。
prefer_column_name_to_alias
- 0 — カラム名は別名に置き換えられます。
- 1 — カラム名は別名に置き換えられません。
prefer_external_sort_block_bytes
prefer_global_in_and_join
IN/JOIN 演算子を GLOBAL IN/GLOBAL JOIN に置き換えるようにします。
設定可能な値:
- 0 — 無効。
IN/JOIN演算子はGLOBAL IN/GLOBAL JOINに置き換えられません。 - 1 — 有効。
IN/JOIN演算子はGLOBAL IN/GLOBAL JOINに置き換えられます。
SET distributed_product_mode=global を使用すると、分散テーブルに対するクエリの動作は変更できますが、ローカルテーブルや外部リソース上のテーブルには適していません。そこで prefer_global_in_and_join 設定が役立ちます。
たとえば、ローカルテーブルを持つクエリ処理ノードがあり、これらは分散には適していないとします。その場合、分散処理時に GLOBAL キーワード、つまり GLOBAL IN/GLOBAL JOIN を使って、それらのデータをその場で分散させる必要があります。
prefer_global_in_and_join のもう 1 つのユースケースは、外部エンジンで作成されたテーブルにアクセスする場合です。この設定を使うと、そのようなテーブルを JOIN するときの外部ソースへの呼び出し回数を削減できます。クエリごとに 1 回だけで済みます。
関連項目:
GLOBAL IN/GLOBAL JOINの使い方について詳しくは、Distributed subqueries を参照してください
prefer_localhost_replica
- 1 — localhost のレプリカが存在する場合、ClickHouse は常にそのレプリカにクエリを送信します。
- 0 — ClickHouse は、load_balancing 設定で指定された負荷分散戦略を使用します。
parallel_replicas_custom_key を使用せずに max_parallel_replicas を使う場合は、この設定を無効にしてください。
parallel_replicas_custom_key が設定されている場合は、複数の分片それぞれに複数のレプリカがあるクラスターで使用しているときにのみ、この設定を無効にしてください。
単一の分片に複数のレプリカがあるクラスターで使用している場合、この設定を無効にすると悪影響が生じます。
prefer_warmed_unmerged_parts_seconds
preferred_block_size_bytes
max_block_size 設定をさらに細かく調整するためのものです。カラムのサイズが大きく、max_block_size 行ではブロックサイズが指定したバイト数を超える可能性が高い場合、CPU cache の局所性を高めるためにブロックサイズが小さくされます。
preferred_max_column_in_block_size_bytes
preferred_optimize_projection_name
- string: 優先するプロジェクションの名前
prefetch_buffer_size
print_pretty_type_names
DESCRIBE クエリおよび toTypeName() 関数で、深くネストされた型名をインデント付きで見やすく表示できるようにします。
例:
優先度
promql_database
promql_evaluation_time
evaluation_time
promql dialect で使用する評価時刻を指定します。auto は現在時刻を表します。
promql_table
push_external_roles_in_interserver_queries
query_cache_compress_entries
- 0 - 無効
- 1 - 有効
query_cache_for_subqueries
use_query_cache がすべてのサブクエリに伝播されます。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_cache_max_entries
- 0 以上の整数。
query_cache_max_size_in_bytes
- 0 以上の整数。
query_cache_min_query_duration
- 0 以上の整数。
query_cache_min_query_runs
SELECTクエリを実行する必要がある最小回数です。
設定可能な値:
- 0 以上の整数。
query_cache_nondeterministic_function_handling
rand() や now() のような非決定論的関数を含む SELECT クエリを、クエリキャッシュ がどのように扱うかを制御します。
設定可能な値:
'throw'- 例外をスローし、クエリ結果をキャッシュしません。'save'- クエリ結果をキャッシュします。'ignore'- クエリ結果をキャッシュせず、例外もスローしません。
SELECT クエリの結果を、他のユーザーも読み取れるようになります。
セキュリティ上の理由から、この設定を有効にすることは推奨されません。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_cache_squash_partial_results
- 0 - 無効
- 1 - 有効
query_cache_system_table_handling
system.* および information_schema.* 内のテーブルに対する SELECT クエリをどのように扱うかを制御します。
設定可能な値:
'throw'- 例外をスローし、クエリ結果をキャッシュしません。'save'- クエリ結果をキャッシュします。'ignore'- クエリ結果をキャッシュせず、例外もスローしません。
query_cache_tag
- 任意の文字列
query_cache_ttl
- 0 以上の整数。
query_metric_log_interval
collect_interval_milliseconds の値が使用され、設定されていない場合はデフォルトで 1000 になります。
個別のクエリの収集を無効にするには、query_metric_log_interval を 0 に設定します。
デフォルト値: -1
query_plan_aggregation_in_order
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_convert_any_join_to_semi_or_anti_join
query_plan_convert_join_to_in
JOIN を IN を使用するサブクエリに変換することを許可します。非 ANY JOIN (たとえば、デフォルトの ALL JOIN) では、誤った結果になる可能性があります。
query_plan_convert_outer_join_to_inner_join
JOIN 後のフィルター条件によって常にデフォルト値が除外される場合、OUTER JOIN を INNER JOIN に変換できるようにします
query_plan_direct_read_from_text_index
query_plan_display_internal_aliases
query_plan_enable_multithreading_after_window_functions
query_plan_enable_optimizations
これは上級者向けの設定であり、開発者によるデバッグ用途でのみ使用してください。将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - クエリプランレベルのすべての最適化を無効にする
- 1 - クエリプランレベルの最適化を有効にする (ただし、個々の最適化はそれぞれの設定で無効にできる場合があります)
query_plan_execute_functions_after_sorting
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_filter_push_down
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_join_shard_by_pk_ranges
query_plan_join_swap_table
JOIN ON 句を使用する strictness が ALL の JOIN でのみサポートされます。設定可能な値は次のとおりです。
- ‘auto’: planner がどの table を build table として使用するかを決定します。
- ‘false’: table を入れ替えません (右側の table が build table になります) 。
- ‘true’: 常に table を入れ替えます (左側の table が build table になります) 。
query_plan_lift_up_array_join
これは上級者向けの設定であり、開発者がデバッグのためにのみ使用すべきです。この設定は、将来後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_lift_up_union
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用するべきものです。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_max_limit_for_join_lazy_indexing
query_plan_max_limit_for_lazy_materialization
query_plan_max_limit_for_top_k_optimization
query_plan_max_optimizations_to_apply
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきものです。今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
query_plan_max_set_size_for_projection_match
IN 句の Set の最大要素数です。これを超える Set は非一致として扱われ、projection はスキップされます。ゼロを指定すると内容ハッシュの比較は完全に無効になり、IN 句の Set を含むノードでは projection の一致は決して成功しません。
これは aggregate projection matcher (および IN 句の Set を比較する必要がある将来の projection matcher) で使用されます。内容ハッシュの計算量は Set の要素数に対して O(N log N) です。この設定は、クエリまたは projection に多数の IN 句が現れる場合に、プラン時に発生するコストを抑えるためのものです。
query_plan_max_step_description_length
query_plan_merge_expressions
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_merge_filter_into_join_condition
JOIN 条件へのフィルターのマージを有効にし、CROSS JOIN を INNER に変換します。
query_plan_merge_filters
query_plan_min_columns_for_join_lazy_indexing
query_plan_optimize_join_order_algorithm
greedy- 基本的な貪欲アルゴリズムです。高速に動作しますが、最適な JOIN 順序にならない場合がありますdpsize- 現在は INNER JOIN に対してのみ DPsize アルゴリズムを実装しています。可能なすべての JOIN 順序を考慮して最適なものを見つけますが、多数のテーブルや JOIN 述語を含むクエリでは遅くなる可能性がありますdphyp- 現在は INNER JOIN に対してのみ DPhyp (Hypergraph Partitioning による動的計画法) アルゴリズムを実装しています。dpsizeと同じ探索空間を探索しますが、接続された部分グラフのペアだけを列挙するため、クロス積を考慮しない代わりに、スパースな JOIN グラフでは中間 JOIN の生成が少なくなります 複数のアルゴリズムは、たとえばdphyp,greedyのようにカンマ区切りのリストとして指定できます。これらは順番に試行され、あるアルゴリズムでクエリを処理できない場合 (たとえば OUTER JOIN や非連結のコンポーネントが原因の場合) は、代替として次のものが使用されます。
query_plan_optimize_join_order_limit
query_plan_optimize_join_order_max_searched_plans
query_plan_optimize_join_order_algorithm で指定された次のアルゴリズムにフォールバックするまでに、JOIN 順序オプティマイザが列挙できる部分プランの最大数です。
これにより、クリークやスターのような密な join グラフで探索空間が指数関数的に増大する場合でも、最適化時間を決定論的に (実時間とは無関係に) 制限できます。
制限を無効にするには 0 に設定します。デフォルトの query_plan_optimize_join_order_limit には影響しません。この場合、探索は常にこの上限を大きく下回るためです。
query_plan_optimize_join_order_randomize
query_plan_optimize_lazy_final
query_plan_optimize_lazy_materialization
query_plan_optimize_prewhere
query_plan_push_down_limit
これは上級者向けの設定であり、開発者がデバッグのためにのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_push_limit_by_into_sort
ORDER BY ... LIMIT BY クエリに対するクエリプランレベルの最適化を切り替えます。LIMIT BY のカラムが ORDER BY 句のプレフィックスである場合、並列にソートされた各ストリームは、ストリームが 1 つにマージされる前に LIMIT BY を適用するため、最終マージおよび後続のパイプライン段階で処理される行数が減ります。LIMIT BY によって大量の行が除外されるクエリを高速化します。
この設定は、query_plan_enable_optimizations が 1 の場合にのみ有効です。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_plan_read_in_order
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は、将来後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_read_in_order_through_join
query_plan_remove_redundant_distinct
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用してください。将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_remove_redundant_sorting
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_remove_unused_columns
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。将来的に後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_reuse_storage_ordering_for_window_functions
optimize_read_in_window_order
ウィンドウ関数のソート時にストレージの並び順を利用する、クエリプランレベルの最適化の有効/無効を切り替えます。
設定 query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_split_filter
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_text_index_add_hint
query_plan_top_k_through_join
ORDER BY ... LIMIT n を join の下にプッシュダウンするクエリプランレベルの最適化を切り替えます。これにより、join 前に保持側の入力が生成する必要のある行数が制限されます。
この設定は、query_plan_enable_optimizations が 1 の場合にのみ有効です。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_plan_try_use_vector_search
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_profiler_cpu_time_period_ns
-
正の整数のナノ秒数。
推奨値:
- 単一クエリでは 10000000 (1 秒あたり 100 回) ナノ秒以上。
- クラスター全体のプロファイリングでは 1000000000 (1 秒に 1 回) 。
- タイマーを無効にする場合は 0。
- システムテーブル trace_log
query_profiler_real_time_period_ns
-
ナノ秒単位の正の整数。
推奨値:
- 単一のクエリでは 10000000 (1 秒あたり 100 回) ナノ秒以下。
- クラスター全体のプロファイリングでは 1000000000 (1 秒に 1 回) 。
- タイマーを無効にする場合は 0。
- システムテーブル trace_log
3000000000.
queue_max_wait_ms
rabbitmq_max_wait_ms
read_backoff_max_throughput
read_backoff_min_concurrency
read_backoff_min_events
read_backoff_min_interval_between_events_ms
read_backoff_min_latency_ms
read_from_distributed_cache_if_exists_otherwise_bypass_cache
read_from_filesystem_cache_if_exists_otherwise_bypass_cache
read_from_page_cache_if_exists_otherwise_bypass_cache
read_in_order_two_level_merge_threshold
read_in_order_use_buffering
read_in_order_use_virtual_row
read_in_order_use_virtual_row_per_block
read_in_order_use_virtual_row とあわせて有効にすると、各 block の読み取り後に仮想行を出力します (各パーツの先頭時のみではありません) 。
これにより、MergingSortedTransform はソースの優先順位をより頻繁に付け替えられるようになり、下流の filter によって多くの行が破棄され、データがパーツ間で偏って分散している場合に有効です。
なお、これを有効にすると、読み取り時の read_in_order_use_buffering の最適化と preliminary merge (read_in_order_two_level_merge_threshold) は無効になります。
read_overflow_mode
read_overflow_mode_leaf
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、途中までの結果を返します。
read_priority
threadpool method の場合にのみサポートされます。
read_through_distributed_cache
readonly
receive_data_timeout_ms
receive_timeout
send_timeout が設定されます。
recursive_cte_max_steps_in_type_inference
getLeastSupertype を繰り返し適用し、収束するまで求められます。0 に設定すると型の拡張が無効になり、非再帰部分の型のみが使用されます。
regexp_dict_allow_hyperscan
regexp_dict_flag_case_insensitive
regexp_dict_flag_dotall
regexp_max_matches_per_row
- 正の整数。
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_filesystem_read_method
remote_filesystem_read_prefetch
remote_fs_read_backoff_max_tries
remote_fs_read_max_backoff_ms
remote_read_min_bytes_for_seek
rename_files_after_processing
- Type: String
- デフォルト値: 空文字列
file テーブル関数で処理したファイルのリネームパターンを指定できます。このオプションを設定すると、file テーブル関数で読み取られたすべてのファイルは、処理が正常に完了した場合に限り、指定したプレースホルダーを含むパターンに従ってリネームされます。
プレースホルダー
%a— 元のファイル名全体 (例: “sample.csv”) 。%f— 拡張子を除いた元のファイル名 (例: “sample”) 。%e— ドットを含む元の拡張子 (例: “.csv”) 。%t— タイムスタンプ (マイクロ秒単位) 。%%— パーセント記号 (”%”) 。
例
-
オプション:
--rename_files_after_processing="processed_%f_%t%e" -
クエリ:
SELECT * FROM file('sample.csv')
sample.csv の読み取りに成功すると、ファイルは processed_sample_1683473210851438.csv にリネームされます
replace_running_query
query_id パラメータを渡せます。これは、クエリ識別子として機能する任意の文字列です。
この時点で、同じユーザーによる同じ query_id のクエリがすでに存在する場合の動作は、replace_running_query パラメータによって決まります。
0 (デフォルト) – 例外をスローします (同じ query_id のクエリがすでに実行中の場合、新しいクエリの実行は許可されません) 。
1 – 古いクエリをキャンセルし、新しいクエリの実行を開始します。
セグメンテーション条件のサジェストを実装する場合は、このパラメータを 1 に設定してください。次の文字が入力された時点で古いクエリがまだ終了していなければ、そのクエリをキャンセルする必要があります。
replace_running_query_max_wait_ms
query_id を持つ実行中のクエリが終了するまでの待機時間です。
設定可能な値:
- 正の整数。
- 0 — サーバーがすでに同じ
query_idを持つクエリを実行している場合、新しいクエリの実行を許可せず、例外を発生させます。
replication_wait_for_inactive_replica_timeout
ALTER、OPTIMIZE、または TRUNCATE クエリを実行するまで待機する時間 (秒単位) を指定します。
設定可能な値:
0— 待機しません。- 負の整数 — 無制限に待機します。
- 正の整数 — 待機する秒数です。
restore_replace_external_dictionary_source_to_null
restore_replace_external_engines_to_null
restore_replace_external_table_functions_to_null
1.
result_overflow_mode
throw
結果のサイズがいずれかの制限を超えた場合の動作を設定します。
設定可能な値:
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、あたかも ソースデータが尽きたかのように部分的な結果を返します。
break の使用は LIMIT の使用に似ています。break は
ブロックレベルでのみ実行を中断します。つまり、返される行数は
max_result_rows より多くなり、max_block_size
の倍数となり、max_threads に依存します。
例
Query
Result
rewrite_count_distinct_if_with_count_distinct_implementation
countDistcintIf を count_distinct_implementation 設定を使って書き換えることを許可します。
設定可能な値:
- true — 許可します。
- false — 許可しません。
rewrite_in_to_join
rows_before_aggregation
s3_allow_multipart_copy
s3_allow_parallel_part_upload
s3_check_objects_after_upload
s3_connect_timeout_ms
s3_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz, etc.
設定可能な値:
- 0 —
INSERTクエリは新しいファイルを作成します。ファイルがすでに存在し、s3_truncate_on_insert が設定されていない場合は失敗します。 - 1 — s3_truncate_on_insert が設定されていない場合、
INSERTクエリは各挿入時に接尾辞を使って新しいファイルを作成します (2 回目以降) 。
s3_disable_checksum
s3_ignore_file_doesnt_exist
- 1 —
SELECTは空の結果を返します。 - 0 —
SELECTは例外を発生させます。
s3_list_object_keys_size
s3_max_connections
s3_max_get_burst
s3_max_get_rps と同じです
s3_max_get_rps
s3_max_inflight_parts_for_one_file
s3_max_part_number
s3_max_put_burst
s3_max_put_rps と同じです
s3_max_put_rps
s3_max_single_operation_copy_size
s3_max_single_part_upload_size
s3_max_single_read_retries
s3_max_unexpected_write_error_retries
s3_max_upload_part_size
s3_min_upload_part_size
s3_path_filter_limit
_path 値の最大数です。
0 は無効を意味します。
s3_request_timeout_ms
s3_skip_empty_files
- 0 — 空のファイルが要求されたフォーマットと互換性がない場合、
SELECTは例外をスローします。 - 1 —
SELECTは空のファイルに対して空の結果を返します。
s3_slow_all_threads_after_network_error
true に設定すると、同じバックアップエンドポイントに対して S3 リクエストを実行しているすべてのスレッドは、
いずれか 1 つの S3 リクエストで、ソケットタイムアウトなどの再試行可能なネットワークエラーが発生すると、
その後は処理速度が抑制されます。
false に設定すると、各スレッドは他のスレッドとは独立して S3 リクエストのバックオフを処理します。
s3_strict_upload_part_size
s3_throw_on_zero_files_match
s3_truncate_on_insert
- 0 —
INSERTクエリは新しいファイルを作成します。ファイルがすでに存在し、s3_create_new_file_on_insert が設定されていない場合は失敗します。 - 1 —
INSERTクエリは、ファイルの既存の内容を新しいデータで置き換えます。
s3_upload_part_size_multiply_factor
s3_multiply_parts_count_threshold 個のパーツがアップロードされるたびに、s3_min_upload_part_size にこの係数を掛けます。
s3_upload_part_size_multiply_parts_count_threshold
s3_uri_style
s3_use_adaptive_timeouts
true に設定すると、すべての S3 リクエストで、最初の 2 回の試行は短めの送受信タイムアウトで実行されます。
false に設定すると、すべての試行が同じタイムアウトで実行されます。
s3_validate_request_settings
- 1 — 設定を検証します。
- 0 — 設定を検証しません。
s3queue_default_zookeeper_path
s3queue_enable_logging_to_s3queue_log
s3queue_keeper_fault_injection_probability
s3queue_migrate_old_metadata_to_buckets
schema_inference_cache_require_modification_time_for_url
schema_inference_use_cache_for_azure
schema_inference_use_cache_for_file
schema_inference_use_cache_for_hdfs
schema_inference_use_cache_for_s3
schema_inference_use_cache_for_url
secondary_indices_enable_bulk_filtering
select_sequential_consistency
この設定は SharedMergeTree と ReplicatedMergeTree で動作が異なります。SharedMergeTree における
select_sequential_consistency の動作の詳細については、SharedMergeTree consistency を参照してください。SELECT クエリに対する逐次整合性を有効または無効にします。使用するには、insert_quorum_parallel を無効にする必要があります (デフォルトでは有効です) 。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
insert_quorum を使用して以前に実行されたすべての INSERT クエリのデータを含むレプリカに対してのみ、クライアントによる SELECT クエリの実行を許可します。クライアントが不完全なレプリカを参照すると、ClickHouse は例外を生成します。SELECT クエリには、まだレプリカのクォーラムに書き込まれていないデータは含まれません。
insert_quorum_parallel が有効な場合 (デフォルト) 、select_sequential_consistency は機能しません。これは、並列の INSERT クエリが異なるクォーラムレプリカの集合に書き込まれる可能性があるため、1 つのレプリカがすべての書き込みを受け取っている保証がないからです。
関連項目:
send_logs_level
send_logs_source_regexp
send_profile_events
- 0 — 無効。
- 1 — 有効。
send_progress_in_http_headers
clickhouse-server のレスポンスで、X-ClickHouse-Progress HTTP レスポンスヘッダーの有効/無効を切り替えます。
詳細については、HTTP インターフェイスの説明を参照してください。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
send_table_structure_on_insert_with_inline_data
send_timeout
receive_timeout もサーバー側の対応する接続先に設定されます。
serialize_query_plan
serialize_string_in_memory_with_zero_byte
session_timezone
DateTime/DateTime64 型の値に適用されるタイムゾーンです。
この設定は、グローバルに設定された (server レベルの) 暗黙のタイムゾーンよりも優先されます。
値 '' (空文字列) は、現在の session またはクエリの暗黙のタイムゾーンが server time zone と同じであることを意味します。
関数 timeZone() と serverTimeZone() を使用すると、session のタイムゾーンと server のタイムゾーンを取得できます。
設定可能な値:
system.time_zonesに含まれる任意のタイムゾーン名 (例:Europe/Berlin、UTC、Zulu)
- 最初の
SELECTクエリで、タイムゾーンを明示的に指定せずに使用したtoDateTime()は、設定session_timezoneとグローバルタイムゾーンに従います。 - 2 つ目のクエリでは、DateTime は String からパースされ、既存のカラム
dの型とタイムゾーンを引き継ぎます。そのため、設定session_timezoneとグローバルタイムゾーンは反映されません。
set_overflow_mode
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、ソースデータが尽きた場合と同様に、 部分的な結果を返します。
SharedMergeTree で select_sequential_consistency を使用する場合の、パーツ更新時の初期バックオフ (ミリ秒) 。ClickHouse Cloud でのみ利用できます。
SharedMergeTree で select_sequential_consistency を使用する場合の、パーツ更新における最大バックオフ時間 (ミリ秒) 。ClickHouse Cloud でのみ利用できます。
SharedMergeTree で select_sequential_consistency を使用する際のパーツ更新の最大再試行回数。ClickHouse Cloud でのみ利用できます。
SMT テーブルで MOVE|REPLACE|ATTACH パーティション操作を行った後、データパーツ群を自動的に同期します。Cloud のみ
short_circuit_function_evaluation
enable— 短絡関数評価に適した関数 (例外をスローする可能性がある、または計算負荷が高い関数) で有効にします。force_enable— すべての関数で短絡関数評価を有効にします。disable— 短絡関数評価を無効にします。
short_circuit_function_evaluation_for_nulls
short_circuit_function_evaluation_for_nulls_threshold
show_processlist_include_internal
SHOW PROCESSLIST クエリの出力に内部の補助プロセスを表示します。
内部プロセスには、Dictionary の再読み込み、リフレッシャブルmaterialized view の再読み込み、SHOW ... クエリで実行される補助的な SELECT、破損したテーブルに対処するために内部で実行される補助的な CREATE DATABASE ... クエリなどが含まれます。
show_remote_databases_in_system_tables
show_data_lake_catalogs_in_system_tables
システムテーブルにリモートデータベース (データレイクカタログ、MySQL、PostgreSQL) を表示するかどうかを制御します。
show_table_uuid_in_table_create_query_if_not_nil
SHOW TABLE クエリの表示方法を設定します。
設定可能な値:
- 0 — クエリはテーブル UUID なしで表示されます。
- 1 — クエリはテーブル UUID 付きで表示されます。
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — UDF では別名がスキップされます (置換されます) 。
- 0 — UDF では別名はスキップされません (置換されません) 。
- ClickHouse が何らかの理由でレプリカに接続できない場合。 ClickHouse はレプリカへの接続時に複数回試行します。これらの試行がすべて失敗すると、そのレプリカは利用不可と見なされます。
-
レプリカの名前を DNS で解決できない場合。
レプリカのホスト名を DNS で解決できない場合は、次のような状況が考えられます。
- レプリカのホストに DNS レコードがありません。これは、たとえば Kubernetes のような動的 DNS を使用するシステムで発生することがあり、ダウンタイム中はノードの名前解決ができなくても、エラーではありません。
- 設定エラー。ClickHouse の設定ファイルに誤ったホスト名が含まれています。
- 1 — スキップが有効です。 分片が利用できない場合、ClickHouse は一部のデータに基づく結果を返し、ノードの可用性の問題は報告しません。
- 0 — スキップが無効です。 分片が利用できない場合、ClickHouse は例外をスローします。
sleep_after_receiving_query_ms
sleep_in_send_data_ms
sleep_in_send_tables_status_ms
sort_overflow_mode
throw: 例外を発生させます。break: クエリの実行を停止し、部分的な結果を返します。
split_intersecting_parts_ranges_into_layers_final
split_parts_ranges_into_intersecting_and_non_intersecting_final
splitby_max_substrings_includes_remaining_string
max_substrings > 0 を指定した splitBy*() 関数が、結果配列の最後の要素に残りの文字列を含めるかどうかを制御します。
設定可能な値:
0- 残りの文字列は結果配列の最後の要素に含まれません。1- 残りの文字列は結果配列の最後の要素に含まれます。これは Spark のsplit()関数および Python の ‘string.split()’ メソッドと同じ動作です。
stop_refreshable_materialized_views_on_startup
SYSTEM START VIEWS または SYSTEM START VIEW <name> で手動で開始できます。新しく作成されたビューにも適用されます。リフレッシュ可能でない materialized view には影響しません。
storage_file_read_method
read、pread、mmap のいずれかです。mmap メソッドは clickhouse-server には適用されません (clickhouse-local 向けです) 。
storage_system_stack_trace_pipe_read_timeout_ms
system.stack_trace テーブルをクエリする際に、スレッドから情報を受け取るためにパイプから読み取る最大時間です。この設定はテスト目的で使用されるもので、ユーザーが変更することは想定されていません。
stream_flush_interval_ms
stream_like_engine_allow_direct_select
stream_like_engine_insert_queue
stream_poll_timeout_ms
system_events_show_zero_values
system.events から、値が 0 のイベントも選択できるようにします。
一部の監視システムでは、メトリクスの値が 0 の場合でも、各チェックポイントでそれらにすべてのメトリクス値を渡す必要があります。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
system_metric_log_show_zero_values_in_histograms
system.metric_log のネストされた histograms カラムに書き込むかどうかを制御します。
デフォルトでは、観測の合計 count がゼロのヒストグラムはスキップされ、出力される各ヒストグラム内でも、観測のない bucket エントリは histogram map から省略されます。これを有効にすると、count に関係なくすべてのヒストグラムとすべての bucket が書き込まれます。これは、各チェックポイントですべての Metric が必ず現れる必要がある監視システムで役立ちます。
設定可能な値:
- 0 — 無効。
count = 0のヒストグラムは出力されません。出力されるヒストグラムには、少なくとも 1 回観測された bucket のみが含まれます。 - 1 — 有効。すべてのヒストグラムが書き込まれ、すべての bucket 境界が
histogramに現れます。
table_engine_read_through_distributed_cache
table_function_remote_max_addresses
- 正の整数。
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
temporary_files_buffer_size
temporary_files_codec
- LZ4 — LZ4 圧縮が適用されます。
- NONE — 圧縮は適用されません。
text_index_density_threshold
text_index_hint_max_selectivity
text_index_like_max_postings_to_read
use_text_index_like_evaluation_by_dictionary_scan を有効にする必要があります。
text_index_like_min_pattern_length
use_text_index_like_evaluation_by_dictionary_scan を有効にする必要があります。
text_index_posting_list_apply_mode
throw_if_no_data_to_insert
clickhouse-client を使用する INSERT、または gRPC インターフェイス を使用する INSERT にのみ適用されます。
throw_on_error_from_cache_on_write_operations
throw_on_max_partitions_per_insert_block
max_partitions_per_insert_block に達したときの動作を制御します。
設定可能な値:
true- 挿入ブロックがmax_partitions_per_insert_blockに達すると、例外をスローします。false-max_partitions_per_insert_blockに達すると、警告をログに記録します。
throw_on_unsupported_query_inside_transaction
timeout_before_checking_execution_speed
min_execution_speedを下回らないこと) を確認します。
timeout_overflow_mode
max_execution_time を超えた場合、または
推定実行時間が max_estimated_execution_time を超えた場合の動作を設定します。
設定可能な値:
throw: 例外を発生させます (デフォルト) 。break: クエリの実行を停止し、データが尽きたかのように 部分的な結果を返します。
timeout_overflow_mode_leaf
max_execution_time_leaf を超えた場合の動作を設定します。
設定可能な値:
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、ソースデータが尽きた場合と同様に、部分的な結果を返します。
totals_auto_threshold
totals_mode = 'auto' で使用する閾値です。
「WITH TOTALS 修飾子」のセクションを参照してください。
totals_mode
trace_profile_events
- 1 — profile events のトレーシングを有効にします。
- 0 — profile events のトレーシングを無効にします。
trace_profile_events_list
trace_profile_events が有効な場合、トレースするイベントを、カンマ区切りで指定した名前のリストに限定します。
trace_profile_events_list が空文字列 (デフォルト) の場合は、すべての profile events をトレースします。
例の値: ‘DiskS3ReadMicroseconds,DiskS3ReadRequestsCount,SelectQueryTimeMicroseconds,ReadBufferFromS3Bytes’
この設定を使用すると、多数のクエリに対するデータをより正確に収集できます。これを使用しないと、大量のイベントによって内部システムログキューがオーバーフローし、一部のイベントが破棄される可能性があるためです。
transfer_overflow_mode
throw: 例外をスローします (既定値) 。break: クエリの実行を停止し、ソースデータが尽きた場合と同じように、 部分的な結果を返します。
transform_null_in
NULL は未定義の値を意味するため、NULL 値は比較できません。したがって、expr = NULL という比較は常に false を返す必要があります。この設定を有効にすると、IN 演算子では NULL = NULL が true を返します。
設定可能な値:
- 0 —
IN演算子におけるNULL値の比較はfalseを返します。 - 1 —
IN演算子におけるNULL値の比較はtrueを返します。
null_in テーブルについて考えます:
traverse_shadow_remote_data_paths
union_default_mode
SELECT クエリの結果を結合するモードを設定します。この設定は、UNION ALL または UNION DISTINCT を明示的に指定せずに UNION を使用した場合にのみ適用されます。
設定可能な値:
'DISTINCT'— ClickHouse は、重複する行を削除してクエリを結合した結果を出力します。'ALL'— ClickHouse は、重複する行を含む、クエリ結合結果のすべての行を出力します。''—UNIONとともに使用すると、ClickHouse は例外を生成します。
unique_key_max_encoded_size
UNIQUE KEY 行の順序保持バイナリエンコーディングの最大サイズ (バイト単位) 。
unknown_packet_in_send_data
update_parallel_mode
sync- すべてのUPDATEクエリを順番に実行します。auto- あるクエリで更新されるカラムと別のクエリの式で使用されるカラムの間に依存関係があるUPDATEクエリのみを、順番に実行します。async-UPDATEクエリを同期しません。
update_sequential_consistency
url_base
- パス相対 URL (例:
data.csv) : RFC 3986 に従って base URL の path と結合されます。base path 内の最後の/より後ろはすべて相対 URL で置き換えられるため、末尾のスラッシュの有無が重要です。つまり、https://example.com/dir/+data.csv=https://example.com/dir/data.csvですが、https://example.com/dir+data.csv=https://example.com/data.csvになります。base に path がない場合 (例:https://example.com) は、/が挿入されてhttps://example.com/data.csvになります。相対 URL 内のドットセグメント (./および../) は正規化されます:https://example.com/dir/+../a.csv=https://example.com/a.csv。 - ホスト相対 URL (例:
/test/data.csv) : base URL の scheme と host を基準に解決されます。 - scheme 相対 URL (例:
//other.com/test/data.csv) : base URL の scheme を使って解決されます。 - クエリのみの参照 (例:
?x=1) : base URL の path に追加されます (既存の query/fragment は置き換えられます) 。 - フラグメントのみの参照 (例:
#frag) : 既存の query string は保持したまま base URL に追加されます (既存の fragment は置き換えられます) 。 - 空の参照: fragment を除いた base URL を返します。
url_base が https://example.com/def/ の場合:
data.csvはhttps://example.com/def/data.csvに解決されます/test/data.csvはhttps://example.com/test/data.csvに解決されます//other.com/test/data.csvはhttps://other.com/test/data.csvに解決されます
use_async_executor_for_materialized_views
use_cache_for_count_from_files
file/s3/url/hdfs/azureBlobStorage で、ファイルから count を行う際の行数のキャッシュを有効にします。
デフォルトで有効です。
use_client_time_zone
use_compact_format_in_distributed_parts_names
Distributed エンジンのテーブルへのバックグラウンド (distributed_foreground_insert) INSERT で、ブロックの保存に compact フォーマットを使用します。
設定可能な値:
- 0 —
user[:password]@host:port#default_databaseのディレクトリフォーマットを使用します。 - 1 —
[shard{shard_index}[_replica{replica_index}]]のディレクトリフォーマットを使用します。
use_compact_format_in_distributed_parts_names=0の場合、クラスター定義の変更はバックグラウンド INSERT に適用されません。use_compact_format_in_distributed_parts_names=1の場合、クラスター定義内のノードの順序を変更するとshard_index/replica_indexも変わるため、注意してください。
use_concurrency_control
concurrent_threads_soft_limit_num および concurrent_threads_soft_limit_ratio_to_cores を参照) に従います。無効にすると、サーバーが過負荷の状態でも、より多くのスレッドを使用できるようになります (通常の用途では推奨されず、主にテストで必要です) 。
Cloud でのデフォルト値: 0.
use_hash_table_stats_for_join_reordering
use_hedged_requests
hedged_connection_timeout 以内に確立されなかった場合、
または receive_data_timeout 以内にデータを受信できなかった場合は、新しい接続が有効になります。クエリは、空でない Progress パケット (allow_changing_replica_until_first_data_packet の場合は Data パケット) を最初に送信した接続を使用し、
それ以外の接続はキャンセルされます。max_parallel_replicas > 1 のクエリもサポートされます。
デフォルトで有効です。
Cloud でのデフォルト値: 0。
use_hive_partitioning
/name=value/) 内にある Hive スタイルのパーティション化を検出し、クエリでパーティションカラムを仮想カラムとして使用できるようにします。これらの仮想カラムの名前はパーティション化されたパス内の名前と同じですが、先頭に _ が付きます。
use_iceberg_metadata_files_cache
- 0 - 無効
- 1 - 有効
use_iceberg_partition_pruning
use_index_for_in_with_subqueries
use_index_for_in_with_subqueries_max_values
IN 演算子の右辺にある Set の最大サイズです。大規模なクエリで追加のデータ構造を準備することによる性能低下やメモリ使用量の増加を防ぐことができます。0 は制限なしを意味します。
use_join_disjunctions_push_down
use_legacy_to_time
use_lightweight_primary_key_index_analysis
MergeTree テーブルの主キー索引解析を最適化します。
有効にすると、索引解析の実行時間は主キーの長さではなく、主にクエリのフィルタ条件の複雑さ (実際に使用されるキーカラム) に依存します。そのため、数個のカラムだけをフィルタするクエリでは、ソートキーを拡張しても索引解析に対する追加のオーバーヘッドはごくわずかです。
設定可能な値:
- 0 — 無効。索引解析ではすべての主キーカラムが処理されます。
- 1 — 有効。
use_page_cache_for_disks_without_file_cache
use_page_cache_for_local_disks
local_filesystem_read_method = 'pread' または 'read' が必要です。OS page cache は無効になりません。これを無効にするには min_bytes_to_use_direct_io を使用できます。影響するのは通常のテーブルのみで、file() テーブル関数や File() テーブルエンジンには影響しません。
use_page_cache_for_object_storage
use_page_cache_with_distributed_cache
use_paimon_partition_pruning
use_parquet_metadata_cache
- 0 - 無効
- 1 - 有効
use_partition_pruning
use_partition_key
MergeTree テーブルのクエリ実行時に、パーティションキーを使用して不要なパーティションを除外します。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
use_primary_key
- 0 — 無効。
- 1 — 有効。
use_query_cache
SELECT クエリで query cache を利用できます。パラメーター enable_reads_from_query_cache
および enable_writes_to_query_cache によって、cache の使用方法をより細かく制御できます。
設定可能な値:
- 0 - 無効
- 1 - 有効
use_query_condition_cache
WHERE 句の条件を満たさないデータパーツ内のグラニュールの範囲を保存し、
後続のクエリでこの情報を一時的な索引として再利用します。
設定可能な値:
- 0 - 無効
- 1 - 有効
use_reader_executor
ReaderExecutor を通して読み取りを行います。ReaderExecutor がまだサポートしていない構成では、従来のパスにフォールバックします。
use_roaring_bitmap_iceberg_positional_deletes
use_skip_indexes
- 0 — 無効。
- 1 — 有効。
use_skip_indexes_for_disjunctions
- 0 — 無効。
- 1 — 有効。
use_skip_indexes_for_top_k
ORDER BY <column> LIMIT n クエリのカラムに minmax スキップ索引が存在する場合、オプティマイザは minmax 索引を使用して、最終結果に関係のないグラニュールをスキップしようとします。これにより、クエリのレイテンシを低減できます。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
use_skip_indexes_if_final
- 0 — 無効。
- 1 — 有効。
use_skip_indexes_if_final_exact_mode
- 0 — 無効。
- 1 — 有効。
use_skip_indexes_on_data_read
- 0 — 無効。
- 1 — 有効。
use_statistics
use_statistics_cache
use_statistics_for_part_pruning
- 0 — 無効。
- 1 — 有効。
use_strict_insert_block_limits
- 最小しきい値 (AND) : min_insert_block_size_rows と min_insert_block_size_bytes の両方に達した場合。
- 最大しきい値 (OR) : max_insert_block_size_rows または max_insert_block_size_bytes のいずれかに達した場合。
- 最小しきい値 (OR) : min_insert_block_size_rows または min_insert_block_size_bytes のいずれかに達した場合。
use_structure_from_insertion_table_in_table_functions
use_text_index_header_cache
use_text_index_like_evaluation_by_dictionary_scan
use_text_index_postings_cache
use_text_index_tokens_cache
use_top_k_dynamic_filtering
ORDER BY <column> LIMIT n クエリの実行時に、動的フィルタリング最適化を有効にします。
有効にすると、クエリ実行エンジンは、結果セットの最終的な top N 行に含まれないグラニュールや行をスキップしようとします。この最適化は動的な性質を持つため、レイテンシの改善度はデータ分布や、クエリ内の他の述語条件の有無に依存します。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
use_top_k_dynamic_filtering_for_variable_length_types
String、Array、Map、可変長要素を含む Tuple) である場合に、use_top_k_dynamic_filtering を適用できるようにします。
このような型では、動的フィルターによる行ごとのしきい値比較のコストが、カラムの辞書順最小値が支配的で (たとえば空文字列が大半を占める場合) 、スキップできるグラニュールが少ないときには、得られる削減効果を上回ることがあります。この場合、動的フィルターはクエリのレイテンシを改善するどころか、かえって悪化させます。
この設定が 0 の場合、動的フィルタリングは、値がメモリ上で固定の最大サイズを持つカラム (数値、Date、DateTime、FixedString、Enum、それらの型の Nullable、それらの型の Tuple) に制限されます。1 に設定すると、動的フィルタリングは可変長型にも適用されます。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
use_uncompressed_cache
use_uncompressed_cache は常に 1 に設定しておけます。
use_variant_as_common_type
Variant 型を使用できるようにします。
例:
use_variant_default_implementation_for_comparisons
use_with_fill_by_sorting_prefix
validate_enum_literals_in_operators
IN、NOT IN、==、!= などの演算子内の enum リテラルを enum 型に対して検証し、そのリテラルが有効な enum 値でない場合は例外を発生させます。
validate_mutation_query
validate_polygons
- 0 — 例外のスローは無効です。
pointInPolygonは無効なポリゴンを受け入れ、それに対して誤った結果を返す可能性があります。 - 1 — 例外のスローは有効です。
variant_throw_on_type_mismatch
true(デフォルト) — 例外をスローします。false— 代わりに、それらの行ではNULLを返します。
vector_search_filter_strategy
- ‘auto’ - ポストフィルタリング (正確な動作は今後変更される可能性があります) 。
- ‘postfilter’ - ベクトル類似度索引を使用して最近傍を特定し、その後でほかのフィルターを適用します
- ‘prefilter’ - まずほかのフィルターを評価し、その後で総当たり検索を実行して近傍を特定します。
vector_search_index_fetch_multiplier
vector_search_postfilter_multiplier
ベクトル類似度索引から取得する最近傍の数を、この値倍にします。他の述語によるポストフィルタリング時、または設定 vector_search_with_rescoring = 1 の場合にのみ適用されます。
vector_search_with_rescoring
wait_changes_become_visible_after_commit_mode
wait_for_async_insert
wait_for_async_insert_timeout
wait_for_part_commit_in_dependent_materialized_views
JOIN を介してソースを再度読み込むカスケードで、その sink が書き込んだパーツを参照できます。
この保証は sink インスタンスごとに適用されます。同じ INSERT の他の sink スレッドによって書き込まれたパーツは、まだ見えない場合があります。この設定では、スレッド間のコミット順序は保証されません。
依存する materialized view がないテーブルへの INSERT には影響しません。
wait_for_window_view_fire_signal_timeout
webassembly_udf_max_fuel
webassembly_udf_max_fuel = 1 はおよそ 1024 fuel 単位に相当します。有限の上限を設けない場合は 0 に設定します。これは、関数ごとの設定 webassembly_udf_enable_fuel が true の関数にのみ適用されます。これが既定値です。
webassembly_udf_max_input_block_size
webassembly_udf_max_instances
webassembly_udf_max_memory
window_view_clean_interval
window_view_heartbeat_interval
workload
write_full_path_in_iceberg_metadata
s3:// を含む) を Iceberg メタデータファイルに書き込みます。