メインコンテンツまでスキップ
メインコンテンツまでスキップ

クラスター発見

概要

ClickHouse のクラスター発見機能は、ノードが設定ファイルに明示的に定義されることなく、自動的に発見し、登録することを可能にすることで、クラスター構成を簡素化します。これは、各ノードの手動定義が煩雑になる場合に特に有益です。

注記

クラスター発見は実験的機能であり、今後のバージョンで変更または削除される可能性があります。 これを有効にするには、構成ファイルに allow_experimental_cluster_discovery 設定を含めてください:

リモートサーバー構成

従来の手動構成

従来、ClickHouse では、クラスター内の各シャードとレプリカを手動で指定する必要がありました:

クラスター発見の使用

クラスター発見を使用すると、各ノードを明示的に定義するのではなく、ZooKeeper 内のパスを指定するだけで済みます。このパスの下で登録されたすべてのノードは自動的に発見され、クラスターに追加されます。

特定のノードのシャード番号を指定したい場合は、<discovery> セクション内に <shard> タグを含めることができます:

node1node2 の場合:

node3node4 の場合:

オブザーバーモード

オブザーバーモードで構成されたノードは、レプリカとして自らを登録しません。 彼らは、他のアクティブなレプリカを観察し、発見するだけで、積極的には参加しません。 オブザーバーモードを有効にするには、<discovery> セクション内に <observer/> タグを含めてください:

ユースケースと制限

指定された ZooKeeper パスにノードが追加または削除されると、構成変更やサーバーの再起動なしに自動的にクラスターに発見または削除されます。

ただし、変更はクラスター構成にのみ影響し、データや既存のデータベースおよびテーブルには影響しません。

以下の例を考えてみましょう。3つのノードからなるクラスターがあります:

次に、新しいノードをクラスターに追加し、構成ファイルの remote_servers セクションに同じエントリで新しいノードを起動します:

4番目のノードはクラスターに参加していますが、テーブル event_table は最初の3つのノードにしか存在しません:

すべてのノードでテーブルをレプリケートする必要がある場合は、クラスター発見の代わりに Replicated データベースエンジンを使用することができます。