30 апреля 2024 года опубликован очередной выпуск ClickHouse, который включает 13 новых функций, 16 улучшений производительности и 65 исправлений ошибок. Знакомимся с самими интересными новинками релиза 24.4.
Значимые новинки Clickhouse 24.2
Начнем с повседневных операций с таблицами: теперь в ClickHouse можно зараз удалить несколько таблиц со всем их содержимым, используя инструкцию DROP TABLE и перечислив имена удаляемых таблиц через запятую. Также стала доступной выгрузка первичного ключа с помощью команды
SYSTEM UNLOAD PRIMARY KEY db.table
Это позволяет освободить память для первичного ключа таблицы, что полезно при редком ее использовании. Первичный ключ этой таблицы будет загружен по требованию при следующем запросе к ней.
В табличный движок MergeTree добавлены новые виртуальные столбцы для работы с блоками данных. В частности, добавлен постоянный виртуальный столбец _block_offset, в котором хранится исходное количество строк в блоке, назначенном при вставке. Сохранение этого столбца можно включить с помощью настройки MergeTree-движка enable_block_offset_column. Также добавлен виртуальный столбец _part_data_version, который содержит либо минимальный номер блока, либо детальную версию мутации. А ранее существовавший в ClickHouse постоянный виртуальный столбец _block_number больше не считается экспериментальным.
Еще достаточно значимой функцией стала возможность выдавать пользователям разрешения на табличные движки с помощью команды
GRANT TABLE ENGINE EngineName TO UserName
Работать с отметками времени стало удобнее благодаря функции dateTrunc(), которая округляет время до миллисекунд, отсекая с 4-ой цифры после запятой.
Теперь можно преобразовывать внешнее соединение во внутреннее. Преобразование оптимизации OUTER JOIN в INNER JOIN возможно, если фильтр после JOIN всегда фильтрует значения по умолчанию. Оптимизацией можно управлять с помощью настройки query_plan_convert_outer_join_to_inner_join, включенной по умолчанию.
Также добавлена поддержка рекурсивных CTE. Теперь общие табличные выражения разрешают рекурсивный запуск подзапроса к самому результату. Это работает для обхода деревьев и графов. Еще добавлена фильтрация по значениям оконных функций.
Наконец, расширен перечень интеграций ClickHouse с внешними системами. Например, коннектор dbt теперь позволяет ограничить время действия преобразований, задав TTL для модели. А в приватной облачной версии доступна интеграция с Fivetran – платформой перемещения данных, которая упрощает ETL-процессы с помощью полностью управляемых коннекторов. Эти коннекторы автоматически адаптируются к изменениям схемы и API, обеспечивая целостность данных без необходимости постоянного обслуживания со стороны пользователей. Благодаря поддержке более 500 источников данных, от баз данных и приложений SaaS до облачных хранилищ, Fivetran можно использовать для централизованного анализа данных в ClickHouse. Например, когда в ClickHouse необходимо загрузить не очень большие объемы бизнес-данных из приложений, которые имеют сложные API-интерфейсы, с возможностью обработки вставок, обновлений и удалений.
Впрочем, для терабайтных и петабайтных объемов данных из объектных хранилищ и Kafka, рекомендуется по-прежнему использовать существующие инструменты ClickHouse, такие как специализированные коннекторы и ClickPipes для пользователей Cloud, работу с которым я показывала в прошлой статье. Они, как правило, более экономичны и специально предназначены для массовой и поэтапной передачи больших объемов данных, которые уже находятся в структурированном формате.
Подводя итог обновлениям рассмотренного релиза, стоит отметить, что в целом ClickHouse стал более устойчивым и производительным, а также сделал еще один шаг к улучшенной поддержке стандартных SQL-запросов.
Освойте администрирование и эксплуатацию ClickHouse для аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники