はじめに
これらのデプロイメント例は、ClickHouse Support and Services 組織が ClickHouse ユーザーに提供したアドバイスに基づいています。これらは実際に動作する例であり、ぜひ試してみてからニーズに合わせて調整することをお勧めします。ここで、あなたの要件にぴったり合う例を見つけるかもしれません。あるいは、データが2回ではなく3回レプリケートされる必要がある場合、ここで示されているパターンに従ってもう1つのレプリカを追加することができるでしょう。
用語集
レプリカ
データのコピー。ClickHouseは常にデータの少なくとも1つのコピーを持っているため、レプリカの最小数は1です。これは重要なポイントで、元のデータをレプリカとして数えることに慣れていないかもしれませんが、ClickHouseのコードとドキュメントではその用語が使用されています。データの2番目のレプリカを追加することで、フォールトトレランスを提供できます。
シャード
データのサブセット。ClickHouseは常にデータの少なくとも1つのシャードを持っているので、データを複数のサーバーに分散しない場合、データは1つのシャードに格納されます。データを複数のサーバーに分散してシャーディングすることは、単一サーバーの容量を超えた場合に負荷を分散するために利用できます。宛先サーバーはシャーディングキーによって決まり、分散テーブルを作成する際に定義されます。シャーディングキーはランダムなものか、ハッシュ関数の出力として定義することができます。シャーディングを含むデプロイメント例では、シャーディングキーとしてrand()
を使用し、いつどのようにして異なるシャーディングキーを選択するかについてのさらなる情報を提供します。
分散調整
ClickHouse Keeperは、データのレプリケーションと分散DDLクエリの実行のための調整システムを提供します。ClickHouse KeeperはApache ZooKeeperと互換性があります。
例
基本
スケールアウトの例は、データを2つのノードにシャードし、分散テーブルを使用する方法を示しています。これにより、データが2つの ClickHouse ノードに存在することになります。2つの ClickHouse ノードは、分散同期を提供する ClickHouse Keeper も実行します。3つ目のノードは、ClickHouse Keeper クォーラムを完了するために単独で ClickHouse Keeper を実行します。
フォルトトレランスのためのレプリケーションの例は、データを2つのノードにレプリケートし、ReplicatedMergeTree テーブルを使用する方法を示しています。これにより、データが2つの ClickHouse ノードに存在することになります。2つの ClickHouse サーバーノードに加えて、レプリケーションを管理するための3つの ClickHouse Keeper 単独ノードがあります。
中級
- 近日公開
上級
- 近日公開