メインコンテンツへスキップ
JOIN演算で使用するためのオプションの事前準備済みデータ構造です。
ClickHouse Cloud では、サービスが 25.4 より前のバージョンで作成されている場合、SET compatibility=25.4 を使用して互換性を少なくとも 25.4 に設定する必要があります。

テーブルの作成

CREATE TABLE クエリの詳細な説明をご覧ください。

エンジンパラメータ

join_strictness

join_strictnessJOIN strictness.

join_type

join_typeJOINの種類.

キーカラム

k1[, k2, ...]JOIN 操作で使用する USING 句のキーカラムです。 join_strictnessjoin_type パラメーターは、たとえば Join(ANY, LEFT, col1) のようにクォートなしで指定します。これらは、そのテーブルを使用する JOIN 操作と一致している必要があります。パラメーターが一致していない場合、ClickHouse は例外を送出せず、不正確なデータを返すことがあります。

詳細と推奨事項

データの保存

Join テーブルのデータは常に RAM 上にあります。テーブルに行を挿入すると、サーバーの再起動時に復元できるよう、ClickHouse はデータブロックをディスク上のディレクトリに書き込みます。 サーバーが正常に再起動されなかった場合、ディスク上のデータブロックが失われたり破損したりすることがあります。その場合は、破損したデータを含むファイルを手動で削除する必要があることがあります。

データの選択と挿入

Join エンジンのテーブルにデータを追加するには、INSERT クエリを使用できます。テーブルが ANY strictness で作成されている場合、重複するキーのデータは無視されます。ALL strictness の場合は、すべての行が追加されます。 Join エンジンのテーブルの主な用途は次のとおりです。
  • JOIN 句の右側にテーブルを配置する。
  • joinGet 関数を呼び出して、Dictionary から取得するのと同じようにテーブルからデータを抽出する。

データの削除

Join エンジンのテーブルに対する ALTER DELETE クエリは、ミューテーション として実装されています。DELETE ミューテーションは、フィルタされたデータを読み取り、メモリ上およびディスク上のデータを上書きします。

制限事項と設定

テーブルの作成時には、次の設定が適用されます:

join_use_nulls

join_use_nulls

max_rows_in_join

max_rows_in_join

max_bytes_in_join

max_bytes_in_join

join_overflow_mode

join_overflow_mode

join_any_take_last_row

join_any_take_last_row

join_use_nulls

永続化

Join および Set テーブルエンジンの永続化を無効にします。 I/O のオーバーヘッドを削減します。パフォーマンスを重視し、永続化が不要なシナリオに適しています。 設定可能な値:
  • 1 — 有効。
  • 0 — 無効。
デフォルト値: 1 Join エンジンのテーブルは、GLOBAL JOIN JOIN演算では使用できません。 Join エンジンでは、CREATE TABLE ステートメントで join_use_nulls 設定を指定できます。SELECT クエリでも、join_use_nulls の値を同じにする必要があります。

使用例

左側のテーブルを作成します:
右側のJoinテーブルを作成します。
テーブルの結合:
別の方法として、joinキーの値を指定してJoinテーブルからデータを取得することもできます。
Join テーブルの行を削除する:
最終更新日 2026年7月3日