Join テーブルエンジン
JOIN 操作での使用のための任意の準備データ構造です。
これは JOIN 句 自体に関する記事ではありません。
テーブルの作成
CREATE TABLE クエリの詳細な説明を参照してください。
エンジンパラメータ
join_strictness
join_strictness
– JOINの厳密性。
join_type
join_type
– JOINタイプ。
キーカラム
k1[, k2, ...]
– USING
句からのキーカラムで、JOIN
操作が行われるものです。
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
テーブルから行を削除: