Join
テーブルエンジン
JOIN 操作で使用するためのオプションの準備されたデータ構造です。
これは JOIN 句 自体に関する記事ではありません。
ClickHouse Cloud では、サービスが 25.4 より前のバージョンで作成された場合、SET compatibility=25.4
を使用して互換性を少なくとも 25.4 に設定する必要があります。
テーブルの作成
CREATE TABLE クエリの詳細な説明を参照してください。
エンジンパラメーター
join_strictness
join_strictness
– JOIN の厳密性。
join_type
join_type
– JOIN の種類。
キーカラム
k1[, k2, ...]
– JOIN
操作が行われる USING
句からのキーカラム。
join_strictness
と join_type
パラメーターは引用符なしで入力します。例えば Join(ANY, LEFT, col1)
のように。これらはテーブルが使用される JOIN
操作と一致する必要があります。パラメータが一致しない場合、ClickHouse は例外をスローせず、正しくないデータを返す可能性があります。
特殊事項と推奨事項
データストレージ
Join
テーブルのデータは常に RAM に存在します。テーブルに行を挿入する際、ClickHouse はデータブロックをディレクトリにディスク上に書き込み、サーバーが再起動したときに復元できるようにします。
サーバーが不正に再起動した場合、ディスク上のデータブロックが失われるか、破損する可能性があります。この場合、破損したデータを含むファイルを手動で削除する必要があります。
データの選択と挿入
Insert
クエリを使用して Join
エンジンテーブルにデータを追加できます。テーブルが ANY
厳密性で作成された場合、重複するキーのデータは無視されます。ALL
厳密性の場合、すべての行が追加されます。
Join
エンジンテーブルの主な使用ケースは次のとおりです:
JOIN
句の右側にテーブルを配置する。- joinGet 関数を呼び出し、辞書と同じ方法でテーブルからデータを抽出する。
データの削除
Join
エンジンテーブルに対する ALTER DELETE
クエリは マテレーション として実装されています。DELETE
マテレーションはフィルターされたデータを読み込み、メモリとディスクのデータを上書きします。
制限事項と設定
テーブルを作成する際に、次の設定が適用されます:
join_use_nulls
max_rows_in_join
max_bytes_in_join
join_overflow_mode
join_any_take_last_row
join_use_nulls
Persistent
Join と Set テーブルエンジンに対する持続性を無効にします。
I/O オーバーヘッドを削減します。パフォーマンスを追求し、持続性を必要としないシナリオに適しています。
可能な値:
- 1 — 有効
- 0 — 無効
デフォルト値:1
。
Join
エンジンテーブルは GLOBAL JOIN
操作に使用できません。
Join
エンジンは CREATE TABLE
ステートメントで join_use_nulls 設定を指定することができます。 SELECT クエリは同じ join_use_nulls
値を持つ必要があります。
使用例
左側のテーブルの作成:
右側の Join
テーブルの作成:
テーブルの結合:
代わりに、結合キー値を指定して Join
テーブルからデータを取得できます:
Join
テーブルからの行の削除: