メインコンテンツへスキップ

Question

ClickHouse Cloud にデータを書き込んでいますが、読み取る際には、常に最新かつ完全な情報を確実に取得できる必要があります。

回答

同じノードに接続する

ネイティブプロトコル、または書き込み/読み取りにセッションを使用している場合は、同じレプリカに接続する必要があります。この場合、書き込み先のノードから直接読み取ることになるため、読み取り結果の整合性は常に保たれます。

任意のノードへの接続

常に同じノードに接続していると保証できない場合 (たとえば、HTTPS リクエストがロードバランサーによって別のノードに振り分けられる場合) は、次のいずれかを行えます。 A)
  1. データを書き込む
  2. 新しいレプリカに接続する
  3. SYSTEM SYNC REPLICA db.table_name LIGHTWEIGHT を実行する
  4. 最新のデータを読み取る
詳しくは、SYSTEM コマンドのリファレンスを参照してください または B) 逐次整合性を使用して、いつでも読み取る
SELECT 
...
SETTINGS select_sequential_consistency = 1
ClickHouse Cloud と、そのデフォルトの SharedMergeTree テーブルエンジンを使用する場合、insert_quorum_parallel は不要である点に注意してください。SharedMergeTree への insert はすべて、設計上クォーラム insert になります。 SYSTEM SYNC REPLICAS または select_sequential_consistency を使用すると、ClickHouse Keeper への負荷が増加し、サービスの負荷状況によってはパフォーマンスが低下する可能性があります。 推奨される方法は、同じセッションまたはネイティブプロトコル (sticky connection) を使って書き込みと読み取りを行うことです。
最終更新日 2026年6月10日