add_http_cors_header
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_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 — 従来の動作は有効です。
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
- ‘path’ — FlightDescriptor::Path を使用します (デフォルト。ほとんどの Arrow Flight サーバーで動作します)
- ‘command’ — SELECT クエリとともに FlightDescriptor::Command を使用します (Dremio では必須)
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.
checksum_on_read
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 に書き換えられていますが、結果セットはまったく同じで、ブール値の論理は変わっていません:
count_matches_stop_at_empty_match
countMatches 関数では、パターンが長さ 0 に一致した時点でカウントを停止します。
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — カラム定義のデータ型は、デフォルトで
Nullableに設定されます。 - 0 — カラム定義のデータ型は、デフォルトで
Nullableに設定されません。
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
- 0 — 無効。
- 1 — 有効。
defer_partition_pruning_after_final
FINAL クエリでは、パーティションプルーニングはスキップされます。これは
26.3 で導入された、正しさを優先した動作です。FINAL では、同じ主キーを共有しながら
異なるパーティションに存在する行を重複排除する必要が生じる場合があり、パーティションプルーニングを行うと、
そのような行が重複排除の対象から気づかれないまま除外される可能性があります。
無効な場合は、FINAL を使用していてもパーティションプルーニングが適用され、26.3 より前の
動作に戻ります。これは、パーティションカラムに対する WHERE 条件を含むクエリでは大幅に高速になる
可能性がありますが、同じ主キーを持つ行が異なるパーティションに存在しない場合にのみ正しい動作となります。
たとえば、パーティションカラムが insert 時に設定され、その後は変更されないイベントログテーブルなどです。
この設定が影響するのは、パーティションキーカラムがソートキーに含まれていない
パーティションテーブルだけです。その他のテーブルでは、パーティションプルーニングは常に適用されます。
設定可能な値:
- 0 —
FINALの前にパーティションプルーニングを適用します (26.3 より前の動作。高速ですが、一般的には安全ではありません) 。 - 1 —
FINALの後までパーティションプルーニングを遅らせます (デフォルト。正しさを優先) 。
describe_compact_output
dialect
discard_query_data
distinct_overflow_mode
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、データソースが尽きたかのように 部分的な結果を返します。
do_not_merge_across_partitions_select_final
dynamic_throw_on_type_mismatch
true(デフォルト) — 例外をスローします。false— 代わりに、それらの行ではNULLを返します。
enforce_strict_identifier_format
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.
explain_query_plan_default
EXPLAIN PLAN で使用されるデフォルトのフォーマットです。
設定可能な値:
pretty(26.7 以降のデフォルト) —actions、compact、prettyはデフォルトでtrueとなり、コンパクトで見やすく、actionsの注釈が付いたプランを生成します。legacy— 26.7 より前の出力。
EXPLAIN ステートメントで actions、compact、または pretty オプションを明示的に指定した場合 (たとえば EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...) 、常にこの設定よりも明示指定の方が優先されます。
json = 1 または distributed = 1 を指定した EXPLAIN PLAN では、actions、compact、または pretty が明示的に設定されていない限り、この設定に関係なく従来の (26.7 より前の) デフォルトが使われます。pretty 出力では JSON の結果や分片ごとの分散実行プランを表現できないため、これらのモードは legacy 形式でのみ正しくレンダリングされます。
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 (有効) です。
file_like_engine_default_partition_strategy
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage を使用することを推奨します
final
- 0 - 無効
- 1 - 有効
finalize_projection_parts_synchronously
flatten_nested
- 1 — Nested カラムは個別の配列にフラット化されます。
- 0 — Nested カラムは単一のタプル配列のまま保持されます。
0 にすると、任意のレベルのネストを使用できます。
例
クエリ:
fsync_metadata
.sql ファイルの書き込み時に fsync を有効または無効にします。デフォルトでは有効です。
server に、作成と削除が絶えず行われる非常に小さな table が数百万ある場合は、これを無効にするのが適切です。
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance、greatCircleDistance、greatCircleAngle 関数の4つの引数がすべて Float64 の場合、戻り値は Float64 となり、内部計算には倍精度が使用されます。以前の ClickHouse バージョンでは、これらの関数は常に Float32 を返していました。
geotoh3_argument_order
glob_expansion_max_elements
h3togeo_lon_lat_result_order
handshake_timeout_ms
hedged_connection_timeout_ms
highlight_max_matches_per_row
- 正の整数。
hnsw_candidate_list_size_for_search
ef_search とも呼ばれます。
hsts_max_age
idle_connection_timeout
- 正の整数 (0 の場合は 0 秒後、つまり即座に切断されます) 。
inject_random_order_for_select_without_order_by
interactive_delay
intersect_default_mode
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
limit
- 0 — 行数は制限されません。
- 正の整数。
load_marks_asynchronously
1.
lock_acquire_timeout
"Locking attempt timed out! Possible deadlock avoided. Client should retry." をスローし、エラーコード DEADLOCK_AVOIDED を返します。
設定可能な値:
- 正の整数 (秒単位) 。
- 0 — ロックタイムアウトなし。
low_priority_query_wait_time_ms
priority を参照) 、低優先度のクエリは高優先度のクエリが完了するまで待機します。この設定では、その待機時間を指定します。
make_distributed_plan
merge_table_max_tables_to_look_for_schema_inference
Merge テーブルを作成する場合、または merge テーブル関数を使用する場合、スキーマは指定した数以下の一致するテーブルのスキーマのユニオンとして推論されます。
テーブル数がそれを超える場合は、先頭から指定した数のテーブルに基づいてスキーマが推論されます。
mongodb_throw_on_unsupported_query
multiple_joins_try_to_keep_original_names
normalize_function_names
offset
- 0 — 行はスキップされません。
- 正の整数。
paimon_target_snapshot_id
parallelize_output_from_storages
partial_result_on_first_cancel
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log に収集します。N > 0 に設定すると、クエリ ID に基づいて、クエリのおよそ 1/N がサンプリングされます。0 は無効を意味します。
prefetch_buffer_size
print_pretty_type_names
DESCRIBE クエリおよび toTypeName() 関数で、深くネストされた型名をインデント付きで見やすく表示できるようにします。
例:
priority
push_external_roles_in_interserver_queries
query_metric_log_interval
collect_interval_milliseconds の値が使用され、存在しない場合はデフォルトで 1000 になります。
単一のクエリの収集を無効にするには、query_metric_log_interval を 0 に設定します。
デフォルト値: -1
queue_max_wait_ms
rabbitmq_max_wait_ms
readonly
recursive_cte_max_steps_in_type_inference
getLeastSupertype を繰り返し適用することで決定されます。0 に設定すると型の拡張が無効になり、非再帰部分の型のみが使用されます。
regexp_max_matches_per_row
- 正の整数。
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_read_min_bytes_for_seek
rename_files_after_processing
- 型: 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 に変更されます
replication_wait_for_inactive_replica_timeout
ALTER、OPTIMIZE、または TRUNCATE クエリを実行するまでの待機時間 (秒) を指定します。
設定可能な値:
0— 待機しません。- 負の整数 — 無制限に待機します。
- 正の整数 — 待機する秒数。
reserve_memory
workload クエリ設定の値を使用して、WORKLOAD 階層を通じて行われます。
ワークロードで使用可能なメモリが不足している場合、クエリは開始されず、予約を確保できるまで保留状態で待機します。
0 は予約を行わないことを意味します。
この設定は、MEMORY RESERVATION リソースが作成されている場合にのみ有効です。
RESTORE 時に、テーブルエンジンを ReplicatedMergeTree から SharedMergeTree に置き換えます。
Cloud でのデフォルト値: 1。
result_overflow_mode
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、ソースデータが尽きたかのように 部分的な結果を返します。
break は block レベルでのみ実行を中断します。つまり、返される行数は
max_result_rows を上回り、max_block_size
の倍数になり、max_threads に依存します。
例
Query
Result
rows_before_aggregation
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 クエリが異なるクォーラムレプリカのセットに書き込まれる可能性があるため、単一のレプリカがすべての書き込みを受け取っている保証がないためです。
関連項目:
session_timezone
'' (空文字列) は、現在のセッションまたはクエリの暗黙的なタイムゾーンが server time zone と同じであることを意味します。
関数 timeZone() と serverTimeZone() を使用すると、セッションのタイムゾーンとサーバーのタイムゾーンを取得できます。
設定可能な値:
system.time_zonesに含まれる任意のタイムゾーン名 (例:Europe/Berlin、UTC、Zulu)
- 最初の
SELECTクエリで、タイムゾーンを明示的に指定せずに使用されたtoDateTime()は、設定session_timezoneとグローバルタイムゾーンに従います。 - 2 つ目のクエリでは、DateTime は String からパースされ、既存のカラム
dの型とタイムゾーンを継承します。そのため、設定session_timezoneとグローバルタイムゾーンには従いません。
set_overflow_mode
throw: 例外を発生させます (デフォルト) 。break: クエリの実行を停止し、入力データが尽きたかのように 部分的な結果を返します。
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — UDF では別名がスキップされます (置換されます) 。
- 0 — UDF では別名はスキップされません (置換されます) 。
sleep_after_receiving_query_ms
snappy_mode
file や url などの汎用 file I/O パスで、snappy 圧縮に使用するワイヤ形式を制御します。HTTP Content-Encoding: snappy は常に framing フォーマットを使用し、この設定は無視されます。
単一の snappy::Compress 呼び出しで生成される生の snappy ブロックフォーマット (たとえば SnappyBasicReadBuffer が処理する Prometheus リモートプロトコルのペイロード) は、これとは別のプロトコル固有のワイヤ形式であり、この設定の制御対象ではない点に注意してください。
設定可能な値:
basic— Hadoop snappy ブロックフォーマット。Hadoop が読み書きするファイルと互換性があります。読み取りと書き込みの両方をサポートします。framed— Snappy framing フォーマット。Google が定義した標準的なストリーミングフォーマットです。読み取りと書き込みの両方をサポートします。
sort_overflow_mode
throw: 例外をスローします。break: クエリの実行を停止し、部分的な結果を返します。
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 には影響しません。
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
throw_if_no_data_to_insert
clickhouse-client を使用する INSERT、または gRPC インターフェイス を使用する INSERT にのみ適用されます。
timeout_before_checking_execution_speed
min_execution_speed を下回らないこと) を確認します。
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
variant_throw_on_type_mismatch
true(デフォルト) — 例外をスローします。false— 代わりにそれらの行にはNULLを返します。