clusterAllReplicas テーブル関数
分散テーブルを作成せずに、クラスターのすべてのシャード(remote_servers
セクションで構成された)にアクセスします。各シャードのレプリカのうち、1つだけがクエリされます。
clusterAllReplicas
関数は、cluster
と同じですが、すべてのレプリカがクエリされます。クラスター内の各レプリカは、別のシャード/接続として使用されます。
注記
利用可能なすべてのクラスターは、system.clusters テーブルにリストされています。
構文
引数
cluster_name
– アドレスと接続パラメータのセットを構築するために使用されるクラスターの名前。指定されていない場合はdefault
を設定します。db.table
またはdb
、table
- データベースおよびテーブルの名前。sharding_key
- シャーディングキー。オプションです。クラスターにシャードが複数ある場合は指定する必要があります。
返される値
クラスターからのデータセット。
マクロの使用
cluster_name
にはマクロ — 中括弧内の置換を含めることができます。置換された値は、サーバー設定ファイルの macros セクションから取得されます。
例:
使用法と推奨事項
cluster
および clusterAllReplicas
テーブル関数の使用は、Distributed
テーブルを作成するよりも効率が劣ります。なぜなら、この場合はリクエストごとにサーバー接続が再確立されるからです。多くのクエリを処理する場合は、常にあらかじめ Distributed
テーブルを作成し、cluster
および clusterAllReplicas
テーブル関数を使用しないでください。
cluster
および clusterAllReplicas
テーブル関数は、次のような場合に役立ちます:
- データ比較、デバッグ、およびテストのために特定のクラスターにアクセスする。
- 研究目的でさまざまな ClickHouse クラスターおよびレプリカにクエリを送信する。
- 手動で行われる稀な分散リクエスト。
接続設定は、host
、port
、user
、password
、compression
、secure
が <remote_servers>
設定セクションから取得されます。詳細は Distributed engine を参照してください。
関連項目