62 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
60 | 設定 |
設定
distributed_product_mode
の動作を変更します。 分散サブクエリ.
ClickHouse applies this setting when the query contains the product of distributed tables, i.e. when the query for a distributed table contains a non-GLOBAL subquery for the distributed table.
制限:
- INおよびJOINサブクエリにのみ適用されます。
- FROMセクションが複数のシャードを含む分散テーブルを使用する場合のみ。
- サブクエリが複数のシャードを含む分散テーブルに関係する場合。
- テーブル値には使用されません リモート 機能。
可能な値:
deny
— Default value. Prohibits using these types of subqueries (returns the “Double-distributed in/JOIN subqueries is denied” 例外)。local
— Replaces the database and table in the subquery with local ones for the destination server (shard), leaving the normalIN
/JOIN.
global
— Replaces theIN
/JOIN
クエリとGLOBAL IN
/GLOBAL JOIN.
allow
— Allows the use of these types of subqueries.
enable_optimize_predicate_expression
述語プッシュダウンをオンにする SELECT
クエリ。
プレディケートプッシュダウ場合を大幅に削減ネットワーク通信のために配布します。
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値: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
その後、第二のクエリの実行時間がはるかに長いです。 WHERE
サブクエリが終了した後、すべてのデータに句が適用されます。
fallback_to_stale_replicas_for_distributed_queries
更新されたデータが利用できない場合、クエリを古いレプリカに強制的に適用します。 見る 複製.
ClickHouseは、テーブルの古いレプリカから最も関連性の高いものを選択します。
実行するときに使用 SELECT
レプリケートされたテーブルを指す分散テーブルから
デフォルトでは、1(有効)。
force_index_by_date
インデックスを日付で使用できない場合は、クエリの実行を無効にします。
MergeTreeファミリーのテーブルで動作します。
もし force_index_by_date=1
ClickHouseは、データ範囲の制限に使用できる日付キー条件がクエリにあるかどうかをチェックします。 適切な条件がない場合は、例外がスローされます。 ただし、読み取るデータの量が条件によって減少するかどうかはチェックされません。 たとえば、条件 Date != ' 2000-01-01 '
テーブル内のすべてのデータに一致する場合でも許容されます(つまり、クエリを実行するにはフルスキャンが必要です)。 MergeTreeテーブルのデータ範囲の詳細については、次を参照してください MergeTree.
force_primary_key
オクエリの実行が指数付けにより、主キーはできません。
MergeTreeファミリーのテーブルで動作します。
もし force_primary_key=1
ClickHouseは、データ範囲の制限に使用できる主キー条件がクエリにあるかどうかを確認します。 適切な条件がない場合は、例外がスローされます。 ただし、読み取るデータの量が条件によって減少するかどうかはチェックされません。 MergeTreeテーブルのデータ範囲の詳細については、 MergeTree.
format_schema
このパラメーターは、次のようなスキーマ定義を必要とする形式を使用する場合に便利です Cap'n Proto または Protobuf. 値は形式によって異なります。
fsync_metadata
有効または無効 fsync 書くとき .sql
ファイル 既定で有効になっています。
ことは、あってはならないことで無効にすることもできれば、サーバは、数百万の小さなテーブルが続々と生まれてくると破壊されました。
enable_http_compression
HTTP要求に対する応答のデータ圧縮を有効または無効にします。
詳細については、 HTTPインタフェースの説明.
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:0.
http_zlib_compression_level
HTTP要求に対する応答のデータ圧縮レベルを次の場合に設定します enable_http_compression=1.
可能な値:1から9までの数字。
デフォルト値:3.
http_native_compression_disable_checksumming_on_decompress
クライアントからのhttp postデータの解凍時にチェックサム検証を有効または無効にします。 にのみ使用clickhouseネイティブの圧縮フォーマット(使用されません gzip
または deflate
).
詳細については、 HTTPインタフェースの説明.
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:0.
send_progress_in_http_headers
有効または無効 X-ClickHouse-Progress
HTTP応答ヘッダー clickhouse-server
応答。
詳細については、 HTTPインタフェースの説明.
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:0.
max_http_get_redirects
HTTP GETリダイレクトホップの最大数を制限する URL-エンジンテーブル。 この設定は、両方のタイプのテーブルに適用されます。 CREATE TABLE クエリとによって url テーブル機能。
可能な値:
- 任意の正の整数のホップ数。
- 0 — No hops allowed.
デフォルト値:0.
input_format_allow_errors_num
テキスト形式(csv、tsvなど)から読み取るときに許容されるエラーの最大数を設定します。).
デフォルト値は0です。
常にペアそれと input_format_allow_errors_ratio
.
行の読み取り中にエラーが発生したが、エラーカウンタがまだ小さい場合 input_format_allow_errors_num
、ClickHouseは、行を無視して、次のいずれかに移動します。
両方の場合 input_format_allow_errors_num
と input_format_allow_errors_ratio
超過すると、ClickHouseは例外をスローします。
input_format_allow_errors_ratio
テキスト形式(csv、tsvなど)から読み取るときに許可されるエラーの最大パーセントを設定します。). エラーの割合は、0~1の間の浮動小数点数として設定されます。
デフォルト値は0です。
常にペアそれと input_format_allow_errors_num
.
行の読み取り中にエラーが発生したが、エラーカウンタがまだ小さい場合 input_format_allow_errors_ratio
、ClickHouseは、行を無視して、次のいずれかに移動します。
両方の場合 input_format_allow_errors_num
と input_format_allow_errors_ratio
超過すると、ClickHouseは例外をスローします。
input_format_values_interpret_expressions
を有効または無効にしのsqlのパーサの場合の高速ストリームのパーサで構文解析のデータです。 この設定は、 値 データ挿入時のフォーマット。 構文の解析の詳細については、以下を参照してください 構文 セクション。
可能な値:
-
0 — Disabled.
この場合、提供しなければなりません形式のデータです。 を見る 形式 セクション。
-
1 — Enabled.
この場合、sql式を値として使用できますが、データの挿入はこの方法ではるかに遅くなります。 書式設定されたデータのみを挿入する場合、clickhouseは設定値が0であるかのように動作します。
デフォルト値:1。
使用例
を挿入 DateTime 異なる設定で値を入力します。
SET input_format_values_interpret_expressions = 0;
INSERT INTO datetime_t VALUES (now())
Exception on client:
Code: 27. DB::Exception: Cannot parse input: expected ) before: now()): (at row 1)
SET input_format_values_interpret_expressions = 1;
INSERT INTO datetime_t VALUES (now())
Ok.
最後のクエリは次のクエリと同じです:
SET input_format_values_interpret_expressions = 0;
INSERT INTO datetime_t SELECT now()
Ok.
input_format_values_deduce_templates_of_expressions
Sql式のテンプレート控除を有効または無効にします。 値 フォーマット。 これにより、式の解析と解釈が可能になります。 Values
連続する行の式が同じ構造を持つ場合、はるかに高速です。 ClickHouseは、式のテンプレートを推測し、このテンプレートを使用して次の行を解析し、正常に解析された行のバッチで式を評価しようとします。 次のクエリの場合:
INSERT INTO test VALUES (lower('Hello')), (lower('world')), (lower('INSERT')), (upper('Values')), ...
- もし
input_format_values_interpret_expressions=1
とformat_values_deduce_templates_of_expressions=0
式は行ごとに別々に解釈されます(これは、多数の行では非常に遅いです) - もし
input_format_values_interpret_expressions=0
とformat_values_deduce_templates_of_expressions=1
最初、二番目、および三番目の行の式は、テンプレートを使用して解析されますlower(String)
一緒に解釈されると、式はforth行が別のテンプレートで解析されます (upper(String)
) - もし
input_format_values_interpret_expressions=1
とformat_values_deduce_templates_of_expressions=1
-前の場合と同じですが、テンプレートを推論することができない場合は、式を別々に解釈することもできます。
既定で有効になっています。
input_format_values_accurate_types_of_literals
この設定は次の場合にのみ使用されます input_format_values_deduce_templates_of_expressions = 1
. いくつかの列の式は同じ構造を持ちますが、異なる型の数値リテラルを含んでいます
(..., abs(0), ...), -- UInt64 literal
(..., abs(3.141592654), ...), -- Float64 literal
(..., abs(-1), ...), -- Int64 literal
この設定を有効にすると、clickhouseは実際のリテラルの型をチェックし、対応する型の式テンプレートを使用します。 場合によっては、式の評価が大幅に遅くなることがあります。 Values
.
When disabled, ClickHouse may use more general type for some literals (e.g. Float64
または Int64
代わりに UInt64
のために 42
が、その原因となりオーバーフローおよび精度の問題です。
既定で有効になっています。
input_format_defaults_for_omitted_fields
実行するとき INSERT
クエリでは、省略された入力列の値をそれぞれの列の既定値に置き換えます。 このオプションは JSONEachRow, CSV と タブ区切り フォーマット。
!!! note "メモ" このオプショ それはサーバーの付加的な計算資源を消費し、性能を減らすことができる。
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:1。
input_format_tsv_empty_as_default
有効にすると、tsvの空の入力フィールドを既定値に置き換えます。 複雑な既定の式の場合 input_format_defaults_for_omitted_fields
有効にする必要があります。
デフォルトでは無効です。
input_format_null_as_default
入力デー NULL
しかし、対応する列のデータ型は Nullable(T)
(テキスト入力形式の場合)。
input_format_skip_unknown_fields
追加データの挿入のスキップを有効または無効にします。
書き込みデータclickhouseが例外をスローした場合入力データを含むカラム特別な権限は必要ありません使用します。 スキップが有効になっている場合、clickhouseは余分なデータを挿入せず、例外もスローしません。
対応フォーマット:
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:0.
input_format_import_nested_json
を有効または無効にし、挿入のjsonデータをネストしたオブジェクト。
対応フォーマット:
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:0.
また見なさい:
- 入れ子構造の使用法 と
JSONEachRow
フォーマット。
input_format_with_names_use_header
データ挿入時に列の順序の確認を有効または無効にします。
挿入パフォーマンスを向上させるには、入力データの列の順序がターゲットテーブルと同じであることが確実な場合は、このチェックを無効にすることを
対応フォーマット:
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:1。
date_time_input_format
日付と時刻のテキスト表現のパーサーを選択できます。
この設定は、以下には適用されません 日付と時刻の関数.
可能な値:
-
'best_effort'
— Enables extended parsing.ClickHouseは基本を解析することができます
YYYY-MM-DD HH:MM:SS
形式とすべて ISO 8601 日付と時刻の形式。 例えば,'2018-06-08T01:02:03.000Z'
. -
'basic'
— Use basic parser.ClickHouseは基本のみを解析できます
YYYY-MM-DD HH:MM:SS
フォーマット。 例えば,'2019-08-20 10:18:56'
.
デフォルト値: 'basic'
.
また見なさい:
join_default_strictness
デフォルトの厳密さを 結合句.
可能な値:
ALL
— If the right table has several matching rows, ClickHouse creates a デカルト積 一致する行から。 これは正常ですJOIN
標準SQLからの動作。ANY
— If the right table has several matching rows, only the first one found is joined. If the right table has only one matching row, the results ofANY
とALL
同じです。ASOF
— For joining sequences with an uncertain match.Empty string
— IfALL
またはANY
クエリで指定されていない場合、ClickHouseは例外をスローします。
デフォルト値: ALL
.
join_any_take_last_row
Join操作の動作を次のもので変更する ANY
厳密さ
!!! warning "注意"
この設定は、 JOIN
との操作 参加 エンジンテーブル。
可能な値:
- 0 — If the right table has more than one matching row, only the first one found is joined.
- 1 — If the right table has more than one matching row, only the last one found is joined.
デフォルト値:0.
また見なさい:
join_use_nulls
のタイプを設定します。 JOIN 行動。 際融合のテーブル、空細胞が表示される場合があります。 ClickHouseは、この設定に基づいて異なる塗りつぶします。
可能な値:
- 0 — The empty cells are filled with the default value of the corresponding field type.
- 1 —
JOIN
標準SQLと同じように動作します。 対応するフィールドの型は次のように変換されます Nullable 空のセルは NULL.
デフォルト値:0.
max_block_size
ClickHouseでは、データはブロック(列部分のセット)によって処理されます。 単一のブロックの内部処理サイクルは十分に効率的ですが、各ブロックに顕著な支出があります。 その max_block_size
設定は、テーブルからロードするブロックのサイズ(行数)の推奨値です。 ブロックサイズが小さすぎないようにして、各ブロックの支出はまだ目立つが、最初のブロックが迅速に処理された後に完了する制限付きのクエ 目標は、複数のスレッドで多数の列を抽出するときに大量のメモリを消費しないようにし、少なくともいくつかのキャッシュの局所性を維持する
デフォルト値:65,536.
ブロックのサイズ max_block_size
ていないから読み込まれます。 少ないデータを取得する必要があることが明らかであれば、小さいブロックが処理されます。
preferred_block_size_bytes
同じ目的のために使用される max_block_size
しかし、ブロック内の行数に適応させることによって、推奨されるブロックサイズをバイト単位で設定します。
ただし、ブロックサイズは max_block_size
行。
デフォルト:1,000,000。 mergetreeエンジンから読み取る場合にのみ機能します。
merge_tree_min_rows_for_concurrent_read
Aのファイルから読み込まれる行の数 MergeTree テーブルを超え merge_tree_min_rows_for_concurrent_read
その後ClickHouseしようとして行な兼職の状況からの読み出しこのファイルに複数のスレッド)。
可能な値:
- 任意の正の整数。
デフォルト値:163840.
merge_tree_min_bytes_for_concurrent_read
ファイルから読み込むバイト数 MergeTree-エンジンテーブル超え merge_tree_min_bytes_for_concurrent_read
そのClickHouseを同時に読みこのファイルから複数のスレッド)。
可能な値:
- 任意の正の整数。
デフォルト値:251658240.
merge_tree_min_rows_for_seek
ファイル内で読み込まれる二つのデータブロック間の距離がより小さい場合 merge_tree_min_rows_for_seek
その後、ClickHouseはファイルをシークしませんが、データを順次読み取ります。
可能な値:
- 任意の正の整数。
デフォルト値:0.
merge_tree_min_bytes_for_seek
ファイル内で読み込まれる二つのデータブロック間の距離がより小さい場合 merge_tree_min_bytes_for_seek
その後、ClickHouseは両方のブロックを含むファイルの範囲を順次読み取り、余分なシークを避けます。
可能な値:
- 任意の正の整数。
デフォルト値:0.
merge_tree_coarse_index_granularitycomment
する場合のデータclickhouseチェックのデータにファイルです。 まclickhouseが必要なキーの一部の範囲、とりわけこの範囲を merge_tree_coarse_index_granularity
必要なキーを再帰的に検索します。
可能な値:
- 任意の正の偶数の整数。
デフォルト値:8.
merge_tree_max_rows_to_use_cache
ClickHouseはより多くを読むべきであれば merge_tree_max_rows_to_use_cache
あるクエリの行では、圧縮されていないブロックのキャッシュは使用されません。
のキャッシュされた、圧縮解除されたブロックの店舗データを抽出したためます。 clickhouseこのキャッシュの高速化対応小の繰り返します。 この設定は、大量のデータを読み取るクエリによってキャッシュが破棄されるのを防ぎます。 その uncompressed_cache_size サーバー設定は、非圧縮ブロックのキャッシュのサイズを定義します。
可能な値:
- 任意の正の整数。
Default value: 128 ✕ 8192.
merge_tree_max_bytes_to_use_cache
ClickHouseはより多くを読むべきであれば merge_tree_max_bytes_to_use_cache
バイトあるクエリでは、圧縮されていないブロックのキャッシュは使用されません。
のキャッシュされた、圧縮解除されたブロックの店舗データを抽出したためます。 clickhouseこのキャッシュの高速化対応小の繰り返します。 この設定は、大量のデータを読み取るクエリによってキャッシュが破棄されるのを防ぎます。 その uncompressed_cache_size サーバー設定は、非圧縮ブロックのキャッシュのサイズを定義します。
可能な値:
- 任意の正の整数。
デフォルト値:2013265920.
min_bytes_to_use_direct_io
記憶域ディスクへの直接i/oアクセスを使用するために必要な最小データ量。
ClickHouseこの設定からデータを読み込むときます。 読み取られるすべてのデータの合計ストレージボリュームが min_bytes_to_use_direct_io
ディスクからデータを読み取ります。 O_DIRECT
オプション。
可能な値:
- 0 — Direct I/O is disabled.
- 正の整数。
デフォルト値:0.
log_queries
クエリログの設定。
この設定でclickhouseに送信されたクエリは、次のルールに従ってログに記録されます。 クエリーログ サーバー構成パラメータ。
例えば:
log_queries=1
log_query_threads
クエリスレッドログの設定。
この設定でclickhouseによって実行されたクエリのスレッドは、以下のルールに従ってログに記録されます query_thread_log サーバー構成パラメータ。
例えば:
log_query_threads=1
max_insert_block_size
テーブルに挿入するために形成するブロックのサイズ。 この設定は、サーバーがブロックを形成する場合にのみ適用されます。 たとえば、httpインターフェイスを介した挿入の場合、サーバーはデータ形式を解析し、指定されたサイズのブロックを形成します。 しかし、clickhouse-clientを使用すると、クライアントはデータ自体を解析し、 ‘max_insert_block_size’ サーバー上の設定は、挿入されたブロックのサイズには影響しません。 この設定は、select後に形成されるのと同じブロックを使用してデータが挿入されるため、insert selectを使用する場合にも目的がありません。
デフォルト値:1,048,576.
デフォルトは、 max_block_size
. この理由は、特定のテーブルエンジン (*MergeTree
)挿入された各ブロックのディスク上にデータ部分を形成する。 同様に, *MergeTree
テーブルデータを並べ替え時の挿入やるのに十分な大きさのブロックサイズを選別データにアプリです。
max_replica_delay_for_distributed_queries
分散クエリの遅延レプリカを無効にします。 見る 複製.
時間を秒単位で設定します。 レプリカが設定値よりも遅れている場合、このレプリカは使用されません。
デフォルト値:300.
実行するときに使用 SELECT
レプリケートされたテーブルを指す分散テーブルから
max_threads
最大の問合せ処理のスレッドを除き、スレッドの取得のためのデータからリモートサーバーの ‘max_distributed_connections’ パラメータ)。
このパラメータに適用されるスレッドは、それらのスレッドが同じ段階での問合せ処理パイプライン。 たとえば、テーブルから読み取るときに、関数を使用して式を評価できる場合は、whereとfilterを使用し、少なくともusingを使用してgroup byを並列に事前集計しま ‘max_threads’ その後、スレッドの数 ‘max_threads’ 使用されます。
デフォルト値:物理cpuコアの数。
通常、一度にサーバーで実行されるselectクエリが少ない場合は、このパラメーターを実際のプロセッサコア数より少し小さい値に設定します。
制限があるためすぐに完了するクエリの場合は、以下を設定できます ‘max_threads’. たとえば、必要な数のエントリがすべてのブロックにあり、max_threads=8の場合、8つのブロックが取得されますが、読み込むだけで十分です。
小さい max_threads
値は、消費されるメモリ量が少ない。
max_insert_threads
実行するスレッドの最大数 INSERT SELECT
クエリ。
可能な値:
- 0 (or 1) —
INSERT SELECT
並列実行なし。 - 正の整数。 1より大きい。
デフォルト値:0.
並列 INSERT SELECT
のみ有効です。 SELECT
パートは並列に実行されます。 max_threads 設定。
値を大きくすると、メモリ使用量が増加します。
max_compress_block_size
テーブルへの書き込み用に圧縮する前の非圧縮データのブロックの最大サイズ。 デフォルトでは、1,048,576(1mib)。 サイズが縮小されると、圧縮率が大幅に低下し、キャッシュの局所性のために圧縮および圧縮解凍速度がわずかに増加し、メモリ消費が減少する。 通常、この設定を変更する理由はありません。
圧縮のためのブロック(バイトからなるメモリの塊)とクエリ処理のためのブロック(テーブルからの行のセット)を混同しないでください。
min_compress_block_size
のために MergeTree"テーブル。 削減のため、遅延が処理クエリーのブロックの圧縮を書くとき、次のマークがそのサイズは少なくとも ‘min_compress_block_size’. デフォルトでは、65,536。
圧縮されていないデータが以下の場合、ブロックの実際のサイズ ‘max_compress_block_size’、この値よりも小さく、一つのマークのためのデータの量よりも小さくありません。
例を見よう。 それを仮定する ‘index_granularity’ テーブルの作成中に8192に設定されました。
私たちはuint32型の列(値あたり4バイト)を書いています。 8192行を書き込む場合、合計は32kbのデータになります。 min_compress_block_size=65,536以降、圧縮ブロックは二つのマークごとに形成されます。
私たちは、文字列型(値あたり60バイトの平均サイズ)でurl列を書いています。 8192行を書き込む場合、平均はデータの500kbよりわずかに小さくなります。 これは65,536以上であるため、各マークに圧縮ブロックが形成されます。 この場合、ディスクからシングルマークの範囲でデータを読み取るとき、余分なデータは解凍されません。
通常、この設定を変更する理由はありません。
max_query_size
SQLパーサーで解析するためにRAMに取り込むことができるクエリの最大部分。 INSERTクエリには、この制限に含まれていない別のストリームパーサー(O(1)RAMを消費する)によって処理されるINSERTのデータも含まれています。
デフォルト値:256kib.
interactive_delay
区間マイクロ秒単位で確認を行うための要求実行中止となり、送信を行います。
デフォルト値:100,000(キャンセルのチェックを行い、進捗を毎秒十回送信します)。
connect_timeout,receive_timeout,send_timeout
クライアントとの通信に使用されるソケットの秒単位のタイムアウト。
デフォルト値:10、300、300。
cancel_http_readonly_queries_on_client_close
Cancels HTTP read-only queries (e.g. SELECT) when a client closes the connection without waiting for the response.
デフォルト値:0
poll_interval
指定された秒数の待機ループでロックします。
デフォルト値:10.
max_distributed_connections
単一の分散テーブルへの単一クエリの分散処理のためのリモートサーバーとの同時接続の最大数。 クラスター内のサーバー数以上の値を設定することをお勧めします。
デフォルト値:1024。
次のパラメータは、分散テーブルを作成するとき(およびサーバーを起動するとき)にのみ使用されるため、実行時に変更する必要はありません。
distributed_connections_pool_size
単一の分散テーブルへのすべてのクエリの分散処理のためのリモートサーバーとの同時接続の最大数。 クラスター内のサーバー数以上の値を設定することをお勧めします。
デフォルト値:1024。
connect_timeout_with_failover_ms
分散テーブルエンジンのリモートサーバーに接続するためのタイムアウト(ミリ秒)。 ‘shard’ と ‘replica’ セクションはクラスター定義で使用されます。 失敗した場合は、さまざまなレプリカへの接続を何度か試行します。
デフォルト値:50。
connections_with_failover_max_tries
分散テーブルエンジンの各レプリカでの接続試行の最大数。
デフォルト値:3.
極端な
極値(クエリ結果の列の最小値と最大値)をカウントするかどうか。 0または1を受け入れます。 デフォルトでは、0(無効)。 詳細については、以下を参照してください “Extreme values”.
use_uncompressed_cache
非圧縮ブロックのキャッシュを使用するかどうか。 0または1を受け入れます。 デフォルトでは、0(無効)。 圧縮されていないキャッシュ(mergetreeファミリーのテーブルのみ)を使用すると、多数の短いクエリを処理するときに待ち時間が大幅に短縮され、スループット この設定を有効にユーザーに送信頻繁に短います。 また、に注意を払う uncompressed_cache_size configuration parameter (only set in the config file) – the size of uncompressed cache blocks. By default, it is 8 GiB. The uncompressed cache is filled in as needed and the least-used data is automatically deleted.
少なくとも大量のデータ(百万行以上)を読み取るクエリの場合、圧縮されていないキャッシュは自動的に無効になり、本当に小さなクエリの容量を節 これは保つことができることを意味する ‘use_uncompressed_cache’ 常に1に設定します。
replace_running_query
HTTPインターフェイスを使用する場合、 ‘query_id’ 変数は渡すことができます。 これは、クエリ識別子として機能する任意の文字列です。 同じユーザーからのクエリが同じ場合 ‘query_id’ この時点で既に存在している場合、その動作は ‘replace_running_query’ パラメータ。
0
(default) – Throw an exception (don't allow the query to run if a query with the same ‘query_id’ すでに実行されている)。
1
– Cancel the old query and start running the new one.
Yandexの。Metricaこのパラメータセットが1の実施のための提案のための分割ます。 次の文字を入力した後、古いクエリがまだ完了していない場合は、キャンセルする必要があります。
stream_flush_interval_ms
作品のテーブルストリーミングの場合はタイムアウトした場合、またはスレッドを生成す max_insert_block_size 行。
デフォルト値は7500です。
値が小さいほど、データはテーブルにフラッシュされる頻度が高くなります。 値が低すぎると、パフォーマンスが低下します。
load_balancing
分散クエリ処理に使用するレプリカ選択のアルゴリズムを指定します。
ClickHouse対応し、以下のようなアルゴリズムの選択のレプリカ:
ランダム(デフォルト)
load_balancing = random
エラーの数は、各レプリカに対して数えられます。 クエリは、エラーが最も少なくレプリカに送信され、エラーがいくつかある場合は、そのうちの誰にも送信されます。 レプリカに異なるデータがある場合は、異なるデータも取得します。
最寄りのホスト名
load_balancing = nearest_hostname
The number of errors is counted for each replica. Every 5 minutes, the number of errors is integrally divided by 2. Thus, the number of errors is calculated for a recent time with exponential smoothing. If there is one replica with a minimal number of errors (i.e. errors occurred recently on the other replicas), the query is sent to it. If there are multiple replicas with the same minimal number of errors, the query is sent to the replica with a hostname that is most similar to the server's hostname in the config file (for the number of different characters in identical positions, up to the minimum length of both hostnames).
たとえば、example01-01-1とexample01-01-2.yandex.ru example01-01-1とexample01-02-2は二つの場所で異なりますが、一つの位置では異なります。 この方法はプリミティブに思えるかもしれませんが、ネットワークトポロジに関する外部データを必要とせず、ipv6アドレスでは複雑なipアドレスを
したがって、同等の複製がある場合は、名前によって最も近い複製が優先されます。 また、同じサーバーにクエリを送信するときに、障害がなければ、分散クエリも同じサーバーに移動すると想定することもできます。 したがって、レプリカに異なるデータが配置されていても、クエリはほとんど同じ結果を返します。
順番に
load_balancing = in_order
エラーの数が同じレプリカは、構成で指定されているのと同じ順序でアクセスされます。 この方法は適切なが分かっている場合は、正確にレプリカが好ましい。
最初またはランダム
load_balancing = first_or_random
このアルゴリズムは、セット内の最初のレプリカを選択します。 この効果のクロス-複製をトポロジーのセットアップ、ものなどが可能です。-
その first_or_random
アルゴリズムはの問題を解決します in_order
アルゴリズムだ と in_order
あるレプリカがダウンした場合、次のレプリカは二重の負荷を受け、残りのレプリカは通常のトラフィック量を処理します。 を使用する場合 first_or_random
アルゴリズムは、負荷が均等にまだ利用可能なレプリカ間で分散されています。
prefer_localhost_replica
を有効/無効にしが好ましいのlocalhostレプリカ処理時に分布します。
可能な値:
- 1 — ClickHouse always sends a query to the localhost replica if it exists.
- 0 — ClickHouse uses the balancing strategy specified by the load_balancing 設定。
デフォルト値:1。
!!! warning "警告" 使用する場合は、この設定を無効にします max_parallel_replicas.
totals_mode
HAVINGが存在する場合の合計を計算する方法と、max_rows_to_group_byとgroup_by_overflow_mode= ‘any’ 存在する。 セクションを見る “WITH TOTALS modifier”.
totals_auto_threshold
のしきい値 totals_mode = 'auto'
.
セクションを見る “WITH TOTALS modifier”.
max_parallel_replicas
クエリを実行するときの各シャードのレプリカの最大数。 一貫性(同じデータ分割の異なる部分を取得する)の場合、このオプションはサンプリングキーが設定されている場合にのみ機能します。 レプリカの遅延は制御されません。
コンパイル
を編集ます。 デフォルトでは、0(無効)。
コンパイルは、クエリ処理パイプラインの一部にのみ使用されます。 この部分のパイプラインのためのクエリを実行するアによる展開の短サイクルinlining集計機能。 複数の単純な集計関数を使用するクエリでは、パフォーマンスの最大向上(まれに、最大で四倍高速)が見られます。 通常、パフォーマンスの向上はわずかです。 まれに、クエリの実行が遅くなることがあります。
min_count_to_compile
コンパイルを実行する前にコンパイルされたコードのチャンクを使用する回数。 デフォルトでは、3。 For testing, the value can be set to 0: compilation runs synchronously and the query waits for the end of the compilation process before continuing execution. For all other cases, use values starting with 1. Compilation normally takes about 5-10 seconds. 値が1以上の場合、コンパイルは別のスレッドで非同期に行われます。 結果は、現在実行中のクエリを含め、準備が整ったらすぐに使用されます。
コンパイルされたコードは、クエリで使用される集計関数とgroup by句のキーのタイプの組み合わせごとに必要です。 The results of the compilation are saved in the build directory in the form of .so files. There is no restriction on the number of compilation results since they don't use very much space. Old results will be used after server restarts, except in the case of a server upgrade – in this case, the old results are deleted.
output_format_json_quote_64bit_integers
値がtrueの場合、json*int64およびuint64形式を使用するときに整数が引用符で囲まれます(ほとんどのjavascript実装との互換性のため)。
format_csv_delimiter
CSVデータの区切り文字として解釈される文字。 デフォルトでは、区切り文字は ,
.
input_format_csv_unquoted_null_literal_as_null
FOR CSV入力形式では、引用符なしの解析を有効または無効にします NULL
リテラルとして(シノニム \N
).
output_format_csv_crlf_end_of_line
UNIXスタイル(LF)の代わりにCSVでDOS/Windowsスタイルの行区切り(CRLF)を使用します。
output_format_tsv_crlf_end_of_line
UNIXスタイル(LF)の代わりにTSVでDOC/Windowsスタイルの行区切り(CRLF)を使用します。
insert_quorum
を決議の定足数を書き込みます.
- もし
insert_quorum < 2
クォーラム書き込みは無効です。 - もし
insert_quorum >= 2
クォーラム書き込みが有効になります。
デフォルト値:0.
定足数書き込み
INSERT
承ClickHouse管理を正しく書き込みデータの insert_quorum
の間のレプリカの insert_quorum_timeout
. 何らかの理由で書き込みが成功したレプリカの数に達しない場合 insert_quorum
を書くのは失敗したとClickHouseを削除するに挿入したブロックからすべてのレプリカがデータがすでに記されています。
クォーラム内のすべてのレプリカは一貫性があります。 INSERT
クエリ。 その INSERT
シーケンスは線形化されます。
から書き込まれたデータを読み取る場合 insert_quorum
、を使用することができ select_sequential_consistency オプション。
ClickHouseは例外を生成します
- クエリの時点で利用可能なレプリカの数がクエリの時点でのレプリカの数より少ない場合
insert_quorum
. - 前のブロックがまだ挿入されていないときにデータを書き込もうとします。
insert_quorum
レプリカの。 こうした状況が発生した場合、ユーザーしようとしを行うINSERT
前のものの前にinsert_quorum
完了です。
また見なさい:
insert_quorum_timeout
書き込み数が定員タイムアウトを秒で指定します。 タイムアウトが経過し、まだ書き込みが行われていない場合、clickhouseは例外を生成し、クライアントは同じブロックまたは他のレプリカに同じブロック
デフォルト値:60秒。
また見なさい:
select_sequential_consistency
シーケンシャル-コンシステ SELECT
クエリ:
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:0.
使い方
シーケンシャル一貫性が有効になっている場合、clickhouseはクライアントが SELECT
以前のすべてのデータを含むレプリカに対してのみ照会する INSERT
以下で実行されるクエリ insert_quorum
. クライアントが部分レプリカを参照している場合、ClickHouseは例外を生成します。 SELECTクエリには、レプリカのクォーラムにまだ書き込まれていないデータは含まれません。
また見なさい:
insert_deduplicate
ブロックの重複排除を有効または無効にします。 INSERT
(複製された*テーブルの場合)。
可能な値:
- 0 — Disabled.
- 1 — Enabled.
デフォルト値:1。
デフォルトでは、レプリケートされたテーブルに INSERT
ステートメントは重複排除されます([データレプリケーション](../engines/table_engines/mergetree_family/replication.md)を参照)。
重複除外_blocks_in_dependent_materialized_views
を有効または無効にし、重複排除圧縮をチェックを実現し意見を受け取るデータから複製*ます。
可能な値:
0 — Disabled.
1 — Enabled.
デフォルト値:0.
使い方
デフォルトで、重複排除圧縮を行わないための顕在化が行われは上流のソース。
ソーステーブルの重複排除により挿入されたブロックがスキップされた場合、マテリアライズドビューには挿入されません。 この動作は、マテリアライズドビューに高度に集計されたデータを挿入できるようにするために存在します。
同時に、この動作 “breaks” INSERT
冪等性 もし INSERT
メインテーブルに成功したと INSERT
into a materialized view failed (e.g. because of communication failure with Zookeeper) a client will get an error and can retry the operation. However, the materialized view won't receive the second insert because it will be discarded by deduplication in the main (source) table. The setting deduplicate_blocks_in_dependent_materialized_views
この動作を変更できます。 再試行の際、マテリアライズドビューは繰り返しインサートを受け取り、重複排除チェックを単独で実行します,
ソーステーブルのチェック結果を無視すると、最初の失敗のために失われた行が挿入されます。
max_network_bytes
クエリの実行時にネットワークを介して受信または送信されるデータ量をバイト単位で制限します。 この設定は、個々のクエリごとに適用されます。
可能な値:
- 正の整数。
- 0 — Data volume control is disabled.
デフォルト値:0.
max_network_bandwidth
ネットワーク上でのデータ交換の速度をバイト/秒で制限します。 この設定は、各クエリに適用されます。
可能な値:
- 正の整数。
- 0 — Bandwidth control is disabled.
デフォルト値:0.
max_network_bandwidth_for_user
ネットワーク上でのデータ交換の速度をバイト/秒で制限します。 この設定は、単一ユーザーが実行するすべての同時実行クエリに適用されます。
可能な値:
- 正の整数。
- 0 — Control of the data speed is disabled.
デフォルト値:0.
max_network_bandwidth_for_all_users
ネットワーク上でデータが交換される速度をバイト/秒で制限します。 この設定が適用されるのはすべての同時走行に関するお問い合わせます。
可能な値:
- 正の整数。
- 0 — Control of the data speed is disabled.
デフォルト値:0.
count_distinct_implementation
どちらを指定するか uniq*
機能は実行するのに使用されるべきです COUNT(DISTINCT …) 建設。
可能な値:
デフォルト値: uniqExact
.
skip_unavailable_shards
を有効または無効にし静キの不可欠片.
ザ-シャーがある場合にはご利用できないそのすべてのレプリカのためご利用いただけません。 次の場合、レプリカは使用できません:
-
ClickHouseは何らかの理由でレプリカに接続できません。
レプリカに接続するとき、clickhouseはいくつかの試行を実行します。 すべてこれらの試みが失敗し、レプリカとはできます。
-
レプリカはdnsで解決できません。
レプリカのホスト名をdnsで解決できない場合は、次のような状況を示すことができます:
-
レプリカのホストにdnsレコードがない。 たとえば、動的dnsを使用するシステムで発生する可能性があります, Kubernetes ダウンタイム中にノードが解けなくなる可能性があり、これはエラーではありません。
-
構成エラー。 clickhouse設定ファイルが含まれて間違ったホスト名.
-
可能な値:
-
1 — skipping enabled.
シャードが使用できない場合、clickhouseは部分的なデータに基づいて結果を返し、ノードの可用性の問題は報告しません。
-
0 — skipping disabled.
シャードが使用できない場合、clickhouseは例外をスローします。
デフォルト値:0.
optimize_skip_unused_shards
PREWHERE/WHEREでシャーディングキー条件を持つSELECTクエリの未使用シャードのスキップを有効または無効にします(データがシャーディングキーによって分散されてい
デフォルト値:0
force_optimize_skip_unused_shards
を有効または無効にしクエリの実行の場合 optimize_skip_unused_shards
未使用のシャードを有効にしてスキップすることはできません。 スキップが不可能で、設定が有効になっている場合は例外がスローされます。
可能な値:
- 0-無効(スローしない)
- 1-テーブ
- 2-を無効にクエリの実行に関わらずshardingキー定義のテーブル
デフォルト値:0
force_optimize_skip_unused_shards_no_nested
リセット optimize_skip_unused_shards
入れ子のため Distributed
テーブル
可能な値:
- 1 — Enabled.
- 0 — Disabled.
デフォルト値:0.
optimize_throw_if_noop
例外のスローを有効または無効にします。 OPTIMIZE クエリはマージを実行しませんでした。
デフォルトでは, OPTIMIZE
何もしなかった場合でも正常に戻ります。 この設定では、これらの状況を区別し、例外メッセージの理由を取得できます。
可能な値:
- 1 — Throwing an exception is enabled.
- 0 — Throwing an exception is disabled.
デフォルト値:0.
distributed_replica_error_half_life
- タイプ:秒
- デフォルト値:60秒
分散テーブルのエラーをゼロにする速度を制御します。 レプリカがしばらく使用できず、5つのエラーが蓄積され、distributed_replica_error_half_lifeが1秒に設定されている場合、レプリカは最後のエラーから3秒後に通常の状態
また見なさい:
distributed_replica_error_cap
- タイプ:unsigned int
- デフォルト値:1000
各レプリカのエラー数がこの値に制限されるため、単一のレプリカによるエラーの蓄積が妨げられます。
また見なさい:
distributed_directory_monitor_sleep_time_ms
のための基礎間隔 分散 データを送信する表エンジン。 実際の間隔は、エラーが発生した場合に指数関数的に増加します。
可能な値:
- ミリ秒の正の整数の数。
デフォルト値:100ミリ秒。
distributed_directory_monitor_max_sleep_time_ms
のための最大間隔 分散 データを送信する表エンジン。 インターバルセットの指数関数的な成長を制限する distributed_directory_monitor_sleep_time_ms 設定。
可能な値:
- ミリ秒の正の整数の数。
デフォルト値:30000ミリ秒(30秒)。
distributed_directory_monitor_batch_inserts
挿入されたデータのバッチでの送信を有効/無効にします。
バッチ送信が有効になっている場合は、 分散 テーブルエンジンをお送り複数のファイルの挿入データを移動するようになっていますの代わりに送信します。 一括送信の改善にクラスターの性能をより活用してサーバやネットワーク資源です。
可能な値:
- 1 — Enabled.
- 0 — Disabled.
デフォルト値:0.
os_thread_priority
優先度を設定します (ニース)クエリを実行するスレッドの場合。 OSスケジューラは、使用可能な各CPUコアで実行する次のスレッドを選択するときにこの優先度を考慮します。
!!! warning "警告"
この設定を使用するには、以下を設定する必要があります。 CAP_SYS_NICE
機能。 その clickhouse-server
パッケージ設定します。 一部の仮想環境では、以下の設定を行うことができません。 CAP_SYS_NICE
機能。 この場合, clickhouse-server
開始時にそれについてのメッセージを表示します。
可能な値:
- 範囲内で値を設定できます
[-20, 19]
.
低値が高い優先されます。 低いの糸 nice
優先度の値は、高い値を持つスレッドよりも頻繁に実行されます。 長時間実行される非インタラクティブクエリでは、短いインタラクティブクエリが到着したときにリソースをすばやく放棄することができるため、
デフォルト値:0.
query_profiler_real_time_period_ns
の実際のクロックタイマーの期間を設定します。 クエリプロファイラ. リアルクロックタイマーカウント壁時計の時間。
可能な値:
-
ナノ秒単位の正の整数。
推奨値:
- 10000000 (100 times a second) nanoseconds and less for single queries. - 1000000000 (once a second) for cluster-wide profiling.
-
タイマーを消すための0。
タイプ: UInt64.
デフォルト値:1000000000ナノ秒(秒)。
また見なさい:
- システム表 trace_log
query_profiler_cpu_time_period_ns
のcpuクロックタイマーの期間を設定します。 クエリプロファイラ. このタ
可能な値:
-
ナノ秒の正の整数。
推奨値:
- 10000000 (100 times a second) nanoseconds and more for single queries. - 1000000000 (once a second) for cluster-wide profiling.
-
タイマーを消すための0。
タイプ: UInt64.
デフォルト値:1000000000ナノ秒。
また見なさい:
- システム表 trace_log
allow_introspection_functions
ディスエーブルの有効 introspections関数 のためのクエリープロファイリング.
可能な値:
- 1 — Introspection functions enabled.
- 0 — Introspection functions disabled.
デフォルト値:0.
また見なさい
input_format_parallel_parallel_paralsing
- タイプ:bool
- デフォルト値:true
データ形式の並行解析を有効にします。 tsv、tksv、csvおよびjsoneachrow形式でのみサポートされています。
min_chunk_bytes_for_parallel_parall_paral
- タイプ:unsigned int
- デフォルト値:1mib
各スレッドが並列に解析する最小チャンクサイズ(バイト単位)。
output_format_avro_codec
出力avroファイルに使用する圧縮コーデックを設定します。
タイプ:文字列
可能な値:
null
— No compressiondeflate
— Compress with Deflate (zlib)snappy
— Compress with てきぱき
デフォルト値: snappy
(利用可能な場合)または deflate
.
output_format_avro_sync_interval
出力avroファイルの同期マーカー間の最小データサイズ(バイト単位)を設定します。
タイプ:unsigned int
使用可能な値:32(32バイト)-1073741824(1gib)
デフォルト値:32768(32kib)
format_avro_schema_registry_url
使用するスキーマレジストリurlを設定します AvroConfluent 書式
タイプ:url
デフォルト値:空