В ClickHouse Cloud, если ваш сервис был создан с версией ниже 25.4, вам потребуется установить совместимость не ниже 25.4 с помощью
SET compatibility=25.4.Создание таблицы
Параметры движка
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
- 1 — Включено.
- 0 — Отключено.
1.
Таблицы движка Join нельзя использовать в операциях GLOBAL JOIN.
Движок Join позволяет указать настройку join_use_nulls в операторе CREATE TABLE. В запросе SELECT должно использоваться то же значение join_use_nulls.
Примеры использования
Join:
Join, указав значение ключа для JOIN:
Join: