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

clusterAllReplicas テーブル関数

分散テーブルを作成せずに、クラスターのすべてのシャード(remote_servers セクションで構成された)にアクセスします。各シャードのレプリカのうち、1つだけがクエリされます。

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

注記

利用可能なすべてのクラスターは、system.clusters テーブルにリストされています。

構文

引数

  • cluster_name – アドレスと接続パラメータのセットを構築するために使用されるクラスターの名前。指定されていない場合は default を設定します。
  • db.table または dbtable - データベースおよびテーブルの名前。
  • sharding_key - シャーディングキー。オプションです。クラスターにシャードが複数ある場合は指定する必要があります。

返される値

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

マクロの使用

cluster_name にはマクロ — 中括弧内の置換を含めることができます。置換された値は、サーバー設定ファイルの macros セクションから取得されます。

例:

使用法と推奨事項

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

cluster および clusterAllReplicas テーブル関数は、次のような場合に役立ちます:

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

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

関連項目