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

Join テーブルエンジン

JOIN 操作での使用のための任意の準備データ構造です。

注記

これは JOIN 句 自体に関する記事ではありません。

テーブルの作成

CREATE TABLE クエリの詳細な説明を参照してください。

エンジンパラメータ

join_strictness

join_strictnessJOINの厳密性

join_type

join_typeJOINタイプ

キーカラム

k1[, k2, ...]USING 句からのキーカラムで、JOIN 操作が行われるものです。

join_strictnessjoin_type パラメータは、引用符なしで入力してください。例えば、Join(ANY, LEFT, col1) のようにします。これらは、テーブルが使用される JOIN 操作と一致する必要があります。パラメータが一致しない場合、ClickHouseは例外を投げずに不正確なデータを返すことがあります。

特殊事項と推奨事項

データストレージ

Join テーブルのデータは常にRAMに存在します。テーブルに行を挿入する際、ClickHouseはデータブロックをディレクトリに書き込み、サーバーが再起動されるときに復元可能です。

サーバーが不適切に再起動された場合、ディスク上のデータブロックが失われるか、損傷する可能性があります。この場合、損傷したデータファイルを手動で削除する必要があります。

データの選択と挿入

INSERT クエリを使用して Join エンジンテーブルにデータを追加できます。テーブルが ANY 厳密性で作成された場合、重複キーのデータは無視されます。ALL 厳密性の場合、すべての行が追加されます。

Join エンジンテーブルの主な使用ケースは次のとおりです。

  • JOIN 句の右側にテーブルを配置します。
  • joinGet 関数を呼び出して、辞書と同様にテーブルからデータを抽出します。

データの削除

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

persistent

Join および Set テーブルエンジンの永続性を無効にします。

I/O のオーバーヘッドを削減します。パフォーマンスを追求し、永続性を必要としないシナリオに適しています。

可能な値:

  • 1 — 有効。
  • 0 — 無効。

デフォルト値: 1

Join エンジンテーブルは GLOBAL JOIN 操作では使用できません。

Join エンジンでは CREATE TABLE ステートメントで join_use_nulls 設定を指定できます。SELECT クエリは同じ join_use_nulls 値を持つべきです。

使用例

左側のテーブルを作成:

右側の Join テーブルを作成:

テーブルを結合:

代わりに、結合キー値を指定して Join テーブルからデータを取得することもできます:

Join テーブルから行を削除: