Skip to main content

どのような場合に使用するか

これは、命名規則やカラムが似ているものの、レプリケートされていないテーブルがある場合に役立ちます。たとえば、system database 内のクエリログテーブルにあるエントリを検索する場合です。 query_log テーブルはレプリケートされておらず、特定のノードで実行されたクエリだけが記録されます。また、データが別のテーブルにロールされることもあります。たとえば、データは query_log_0query_log_1 などに挿入される場合があります。あるノードが他のノードとは異なるタイミングでロールされることがあるため、まったく同じ名前ではないテーブルから探しているデータを見つけられるようにしておくと便利です。 要するに、ClickHouse ではない構文で表すと、必要なのは次のようなことです。 SELECT column1, column2 FROM my_db.my_table_* このために、clusterAllReplicas() を使ってすべてのノードを検索し、merge() テーブル関数を使って複数のテーブルを正規表現パターンで検索できるようにします。 次の例は、プレフィックス query_log を持つすべてのテーブルに対してクエリを実行する方法を示しています。
選択したカラムは、クエリ対象の各テーブルに存在している必要があります。そうでない場合、次のようなエラーが発生することがあります。
または、EXCEPT 句を使用して、テーブルごとに存在しない可能性があるカラムを除外できます。 例:
最終更新日 2026年7月3日