スケーリングアウト
説明
この例のアーキテクチャは、スケーラビリティを提供するように設計されています。 それには、2つの統合されたClickHouseと調整(ClickHouse Keeper)サーバー、および3のクォーラムを完了するためのClickHouse Keeperのみの第三のサーバーが含まれています。この例では、データベース、テーブル、および両方のノードのデータをクエリできる分散テーブルを作成します。
レベル: 基本
Terminology
Replica
データのコピー。ClickHouse は常にデータのコピーを少なくとも 1 つ持っており、最小限の レプリカ の数は 1 つです。これは重要な詳細であり、データのオリジナルコピーをレプリカとしてカウントすることに慣れていないかもしれませんが、ClickHouse のコードとドキュメントで使用される用語です。データの 2 番目のレプリカを追加することにより、フォールトトレランスを提供します。
Shard
データのサブセット。ClickHouse は常にデータのためのシャードを少なくとも 1 つ持っているため、データを複数のサーバーに分割しない場合、データは 1 つのシャードに格納されます。データを複数のサーバーにシャーディングすることで、単一のサーバーの容量を超えた場合に負荷を分散させることができます。宛先サーバーは シャーディングキー によって決定され、分散テーブルを作成する際に定義されます。シャーディングキーはランダムであったり、ハッシュ関数 の出力として定義されることがあります。シャーディングに関する導入例では、rand()
をシャーディングキーとして使用し、異なるシャーディングキーを選択するタイミングと方法についてのさらなる情報を提供します。
Distributed coordination
ClickHouse Keeper はデータレプリケーションおよび分散DDLクエリ実行のためのコーディネーションシステムを提供します。ClickHouse Keeper は Apache ZooKeeper と互換性があります。
環境
アーキテクチャ図

Node | 説明 |
---|---|
chnode1 | データ + ClickHouse Keeper |
chnode2 | データ + ClickHouse Keeper |
chnode3 | ClickHouse Keeperのクォーラム用 |
本番環境では、ClickHouse Keeperが専用ホストで実行されることを強くお勧めします。この基本構成では、ClickHouse Serverプロセス内でKeeper機能が実行されます。ClickHouse Keeperをスタンドアロンでデプロイするための手順は、インストールドキュメントで入手できます。
インストール
アーカイブタイプに関する手順に従って、3つのサーバーにClickHouseをインストールします(.deb、.rpm、.tar.gzなど)。この例では、ClickHouse ServerおよびClientのインストール手順をすべてのマシンで実行します。
設定ファイルの編集
ClickHouse Serverの設定を行う際、設定ファイルを追加または編集する場合は次の点に注意してください:
/etc/clickhouse-server/config.d/
ディレクトリにファイルを追加する/etc/clickhouse-server/users.d/
ディレクトリにファイルを追加する/etc/clickhouse-server/config.xml
ファイルはそのままにする/etc/clickhouse-server/users.xml
ファイルはそのままにする
chnode1 の設定
chnode1
には5つの設定ファイルがあります。これらのファイルを1つのファイルにまとめることもできますが、ドキュメントの明確さのために別々に見る方が簡単かもしれません。設定ファイルを読み進めると、chnode1
とchnode2
の間でほとんどの設定が同じであることがわかります。違いは強調表示されます。
ネットワークおよびログ設定
これらの値は希望に応じてカスタマイズできます。この例の構成では、1000Mでロールオーバーするデバッグログを提供します。ClickHouseはポート8123および9000のIPv4ネットワークでリッスンし、ポート9009をサーバー間通信に使用します。