Перейти к основному содержанию
Необязательная структура данных, предварительно подготовленная для использования в операциях JOIN.
В ClickHouse Cloud, если ваш сервис был создан с версией ниже 25.4, вам потребуется установить совместимость не ниже 25.4 с помощью SET compatibility=25.4.

Создание таблицы

См. подробное описание запроса 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 всегда хранятся в оперативной памяти. При вставке строк в таблицу ClickHouse записывает блоки данных в каталог на диске, чтобы их можно было восстановить после перезапуска сервера. Если сервер перезапустился некорректно, блок данных на диске может быть утерян или повреждён. В этом случае может потребоваться вручную удалить файл с повреждёнными данными.

Выборка и вставка данных

Вы можете использовать запросы INSERT, чтобы добавлять данные в таблицы движка Join. Если таблица была создана со строгостью ANY, данные для повторяющихся ключей игнорируются. При строгости ALL добавляются все строки. Основные сценарии использования таблиц движка Join следующие:
  • Размещать таблицу в правой части выражения JOIN.
  • Вызывать функцию joinGet, которая позволяет извлекать данные из таблицы так же, как из словаря.

Удаление данных

Запросы ALTER DELETE для таблиц движка Join реализованы как мутации. Мутация 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 позволяет указать настройку join_use_nulls в операторе CREATE TABLE. В запросе SELECT должно использоваться то же значение join_use_nulls.

Примеры использования

Создание левой таблицы:
Создание правой таблицы Join:
JOIN таблиц:
В качестве альтернативы вы можете получить данные из таблицы Join, указав значение ключа для JOIN:
Удаление строки из таблицы Join:
Последнее изменение 2 июля 2026 г.