Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

insert_quorum_* セッション設定

これらの設定は system.settings で参照でき、ソースコード から自動生成されています。

insert_quorum

UInt64Auto
デフォルト値
0

クォーラム書き込みを有効にします。

  • 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

Bool
デフォルト値
1
バージョン履歴
バージョンデフォルト値コメント
21.11デフォルトで並列クォーラム insert を使用します。逐次クォーラム insert よりも大幅に使いやすくなっています

クォーラム INSERT クエリの並列度を有効または無効にします。有効にすると、前のクエリがまだ完了していなくても、追加の INSERT クエリを送信できます。無効にすると、同じテーブルへの追加の書き込みは拒否されます。

設定可能な値:

  • 0 — 無効。
  • 1 — 有効。

関連項目:

insert_quorum_timeout

Milliseconds
デフォルト値
600000

クォーラム書き込みのタイムアウト時間 (ミリ秒) です。タイムアウトが経過してもまだ書き込みが行われていない場合、ClickHouse は例外を返し、クライアントは同じブロックを同じレプリカ、または別の任意のレプリカに書き込むために、同じクエリを再実行する必要があります。

関連項目:

Navigation