Join
Подготовленная структура данных для использования в операциях JOIN.
Создание таблицы
Смотрите подробное описание запроса CREATE TABLE.
Параметры движка
join_strictness– строгость JOIN.join_type– тип JOIN.k1[, k2, ...]– ключевые столбцы секцииUSINGс которыми выполняется операцияJOIN.
Вводите параметры join_strictness и join_type без кавычек, например, Join(ANY, LEFT, col1). Они должны быть такими же как и в той операции JOIN, в которой таблица будет использоваться. Если параметры не совпадают, ClickHouse не генерирует исключение и может возвращать неверные данные.
Особенности и рекомендации
Хранение данных
Данные таблиц Join всегда находятся в оперативной памяти. При вставке строк в таблицу ClickHouse записывает блоки данных в каталог на диске, чтобы их можно было восстановить при перезапуске сервера.
При аварийном перезапуске сервера блок данных на диске может быть потерян или повреждён. В последнем случае может потребоваться вручную удалить файл с повреждёнными данными.
Выборка и добавление данных
Для добавления данных в таблицы с движком Join используйте запрос INSERT. Если таблица создавалась со строгостью ANY, то данные с повторяющимися ключами игнорируются. Если задавалась строгость ALL, то добавляются все строки.
Основные применения Join таблиц:
- Использование в правой части секции
JOIN. - Извлечение данных из таблицы таким же образом как из словаря с помощью функции joinGet.
Удаление данных
Запросы ALTER DELETE для таблиц с движком Join выполняются как мутации. При выполнении мутации DELETE считываются отфильтрованные данные и перезаписываются в оперативную память и на диск.
Ограничения и настройки
При создании таблицы применяются следующие настройки:
- join_use_nulls
- max_rows_in_join
- max_bytes_in_join
- join_overflow_mode
- join_any_take_last_row
- persistent
Таблицы с движком Join нельзя использовать в операциях GLOBAL JOIN.
Движок Join позволяет использовать настройку join_use_nulls в запросе CREATE TABLE. Необходимо использовать одно и то же значение параметра join_use_nulls в запросах CRATE TABLE и SELECT.
Примеры использования
Создание левой таблицы:
Создание правой таблицы с движком Join:
Объединение таблиц:
В качестве альтернативы, можно извлечь данные из таблицы Join, указав значение ключа объединения:
Удаление данных из таблицы Join: