メインコンテンツまでスキップ
メインコンテンツまでスキップ

clusterAllReplicas テーブル関数

remote_servers セクションで構成されたすべてのシャードにアクセスすることを可能にします。 Distributed テーブルを作成することなく、各シャードの1つのレプリカのみがクエリされます。

clusterAllReplicas 関数 — cluster と同様ですが、すべてのレプリカがクエリされます。クラスター内の各レプリカは、個別のシャード/接続として使用されます。

注記

利用可能なすべてのクラスターは system.clusters テーブルに一覧表示されています。

構文

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 または db, tableデータベースとテーブルの名前。
sharding_keyシャーディングキー。オプション。クラスターにシャードが2つ以上ある場合は指定する必要があります。

戻り値

クラスターからのデータセット。

マクロの使用

cluster_name は、波かっこ内の置換を含むマクロを含むことができます。置換された値は、サーバー構成ファイルの macros セクションから取得されます。

例:

SELECT * FROM cluster('{cluster}', default.example_table);

使用法と推奨事項

cluster および clusterAllReplicas テーブル関数を使用することは、Distributed テーブルを作成するよりも効率が悪いです。この場合、リクエストごとにサーバー接続が再確立されます。大量のクエリを処理する場合は、常に事前に Distributed テーブルを作成し、cluster および clusterAllReplicas テーブル関数を使用しないでください。

cluster および clusterAllReplicas テーブル関数は、以下の場合に便利です:

  • データの比較、デバッグ、テストのために特定のクラスターにアクセスする。
  • 研究目的でさまざまな ClickHouse クラスターやレプリカに対するクエリ。
  • 手動で行われる稀な分散リクエスト。

hostportuserpasswordcompressionsecure などの接続設定は、<remote_servers> 構成セクションから取得されます。詳細は Distributed engine を参照してください。