remote_servers セクションで設定) にアクセスできます。各分片では、1 つのレプリカのみがクエリされます。
clusterAllReplicas 関数 — cluster と同様ですが、すべてのレプリカがクエリされます。クラスター内の各レプリカは、それぞれ個別の分片/接続として扱われます。
使用可能なすべてのクラスターは、system.clusters テーブルに一覧表示されます。詳細は、Distributed テーブルの説明も参照してください。
構文
引数
| 引数 | 型 |
|---|---|
cluster_name | リモートおよびローカルのサーバーに対するアドレスのセットと接続パラメーターの構築に使用されるクラスター名です。指定しない場合は default が設定されます。 |
db.table or 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 を参照してください。