clusterAllReplicas テーブル関数
remote_servers
セクションで構成されたすべてのシャードにアクセスすることを可能にします。 Distributed テーブルを作成することなく、各シャードの1つのレプリカのみがクエリされます。
clusterAllReplicas
関数 — cluster
と同様ですが、すべてのレプリカがクエリされます。クラスター内の各レプリカは、個別のシャード/接続として使用されます。
注記
利用可能なすべてのクラスターは system.clusters テーブルに一覧表示されています。
構文
引数
引数 | 型 |
---|---|
cluster_name | リモートおよびローカルサーバーへのアドレスと接続パラメータのセットを構築するために使用されるクラスターの名前。指定されていない場合は default を設定します。 |
db.table または db , table | データベースとテーブルの名前。 |
sharding_key | シャーディングキー。オプション。クラスターにシャードが2つ以上ある場合は指定する必要があります。 |
戻り値
クラスターからのデータセット。
マクロの使用
cluster_name
は、波かっこ内の置換を含むマクロを含むことができます。置換された値は、サーバー構成ファイルの macros セクションから取得されます。
例:
使用法と推奨事項
cluster
および clusterAllReplicas
テーブル関数を使用することは、Distributed
テーブルを作成するよりも効率が悪いです。この場合、リクエストごとにサーバー接続が再確立されます。大量のクエリを処理する場合は、常に事前に Distributed
テーブルを作成し、cluster
および clusterAllReplicas
テーブル関数を使用しないでください。
cluster
および clusterAllReplicas
テーブル関数は、以下の場合に便利です:
- データの比較、デバッグ、テストのために特定のクラスターにアクセスする。
- 研究目的でさまざまな ClickHouse クラスターやレプリカに対するクエリ。
- 手動で行われる稀な分散リクエスト。
host
、port
、user
、password
、compression
、secure
などの接続設定は、<remote_servers>
構成セクションから取得されます。詳細は Distributed engine を参照してください。