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