メインコンテンツへスキップ
Distributed テーブルを作成せずに、クラスターのすべての分片 (remote_servers セクションで設定) にアクセスできます。各分片では、1 つのレプリカのみがクエリされます。 clusterAllReplicas 関数 — cluster と同様ですが、すべてのレプリカがクエリされます。クラスター内の各レプリカは、それぞれ個別の分片/接続として扱われます。
使用可能なすべてのクラスターは、system.clusters テーブルに一覧表示されます。詳細は、Distributed テーブルの説明も参照してください。

構文

cluster(['cluster_name', db.table, sharding_key])
cluster(['cluster_name', db, table, sharding_key])
clusterAllReplicas(['cluster_name', db.table, sharding_key])
clusterAllReplicas(['cluster_name', db, table, sharding_key])

引数

引数
cluster_nameリモートおよびローカルのサーバーに対するアドレスのセットと接続パラメーターの構築に使用されるクラスター名です。指定しない場合は default が設定されます。
db.table or db, tableデータベース名とテーブル名です。
sharding_keyシャーディングキーです。省略可能です。クラスターに複数の分片がある場合は指定する必要があります。

戻り値

クラスターから取得したデータセット。

マクロの使用

cluster_name には、{} で置換されるマクロを含めることができます。置換される値は、サーバー設定ファイルの macros セクションから取得されます。 例:
SELECT * FROM cluster('{cluster}', default.example_table);

使用方法と推奨事項

cluster および clusterAllReplicas テーブル関数の使用は、Distributed テーブルを作成する場合よりも非効率です。これは、この場合、リクエストごとにサーバー接続が再確立されるためです。大量のクエリを処理する場合は、必ずあらかじめ Distributed テーブルを作成し、cluster および clusterAllReplicas テーブル関数は使用しないでください。 cluster および clusterAllReplicas テーブル関数は、次のような場合に役立ちます。
  • データの比較、デバッグ、テストのために特定のクラスターにアクセスする場合。
  • 調査目的で、さまざまな ClickHouse クラスターやレプリカに対してクエリを実行する場合。
  • 手動で実行する頻度の低い分散リクエスト。
hostportuserpasswordcompressionsecure などの接続設定は、<remote_servers> 設定セクションから取得されます。詳細は Distributed engine を参照してください。
最終更新日 2026年6月10日