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

clusterAllReplicas テーブル関数

remote_servers セクションで設定されたすべてのシャードにアクセスできるようにし、Distributed テーブルを作成する必要がありません。一つのシャードの各レプリカだけがクエリされます。

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

注記

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

構文

引数

引数タイプ
cluster_nameリモートサーバーとローカルサーバーへのアドレスと接続パラメーターのセットを構築するために使用されるクラスターの名前。指定されていない場合は default を設定します。
db.table または db, tableデータベースとテーブルの名前。
sharding_keyシャーディングキー。オプション。クラスターが1つ以上のシャードを持つ場合は指定する必要があります。

戻り値

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

マクロの使用

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

例:

使用法と推奨事項

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

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

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

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