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