
Что нового в CedrusData 476-3: нативный движок Oxide, индексы в Parquet и дерево объектов в каталоге

Вышел релиз CedrusData 476-3, главное изменение в котором — нативный движок исполнения Oxide в CedrusData Engine. Но есть и ряд других важных изменений: переработанное планирование join, набор оптимизаций отдельных операторов, режим выполнения на одном узле для потока мелких запросов, запись индексов в Parquet и новый коннектор OpenAPI. В CedrusData Catalog появились Spark как движок обслуживания, настройка LDAP и OAuth прямо в интерфейсе и навигация по объектам каталога в виде дерева.
Ниже разберём, что именно поменялось и зачем это нужно.
CedrusData Engine
Нативный движок исполнения Oxide. Это самое заметное изменение релиза. Oxide — переписанное на Rust ядро исполнения операторов worker-узла поверх библиотеки Apache DataFusion. Раньше эти операции проходили через Java-часть движка; теперь сканирование таблиц Apache Iceberg и файлов Apache Parquet, проекции, фильтрация, агрегации, локальные перемешивания (local shuffles) и data skipping по статистике Parquet выполняет нативный код. По измерениям команды, перенос CPU-bound вычислений в Rust даёт примерно двукратный прирост. Кэш для работы с S3 рутинно ускоряет обращения к объектному хранилищу в 5–10 раз.
Oxide включается постепенно и работает вместе с прежним движком: join и обмены данными (Exchange) пока остаются на стороне Java. Поэтому эффект стоит проверять на собственной нагрузке — выигрыш зависит от того, какую долю времени запросы тратят на сканирование и CPU-обработку, а какую на join и сеть.
Перестановка join. Улучшен алгоритм планирования outer join и механизм упрощения outer join до inner join. Планировщик точнее выбирает порядок соединений и чаще сводит внешнее соединение к внутреннему там, где это допустимо по семантике запроса. На сложных аналитических запросах с несколькими таблицами это снижает объём промежуточных данных и время выполнения.
Оптимизация отдельных операторов и правил. Набор точечных доработок производительности:
- удаление избыточных ключей группировки;
- ускорение SET-операторов (UNION, INTERSECT, EXCEPT);
- выведение дополнительных предикатов для более раннего отсечения данных;
- ускорение обработки LIKE;
- дедупликация повторяющихся выражений, чтобы не считать одно и то же дважды.
Каждая доработка по отдельности невелика, но вместе они снимают накладные расходы на типовых SQL-конструкциях.
Режим выполнения на одном узле. Для нагрузки из большого количества очень маленьких запросов добавлен режим, в котором запрос выполняется на одном узле. Распределённое исполнение оправдано на тяжёлых запросах, но для потока коротких операций координация между узлами становится накладным расходом. Одноузловой режим убирает эти издержки и повышает пропускную способность на таких сценариях.
Запись индексов в Parquet. Добавлена возможность записывать индексы в файлы Parquet для таблиц Hive, Iceberg и Delta Lake. Индексы внутри файлов помогают движку отсекать ненужные данные при чтении и точнее работать с data skipping, что сокращает объём сканирования на фильтрующих запросах.
Пушдаун в коннекторе Greenplum. Улучшен пушдаун для коннектора Greenplum: больше операций отдаётся на сторону источника, поэтому через сеть передаётся меньше данных, а часть вычислений выполняет сам Greenplum.
Удобство и интеграции:
- Ссылка на выбранную таблицу. В Web UI теперь можно поделиться ссылкой на конкретную выбранную таблицу.
- Kerberos в Web UI. Аутентификацию по Kerberos интегрировали в веб-интерфейс.
- Коннектор OpenAPI. Добавлен новый коннектор OpenAPI — источники с OpenAPI-описанием можно подключать как таблицы и обращаться к ним через SQL.
CedrusData Catalog
CedrusData Catalog — собственный REST-каталог для Apache Iceberg и система управления метаданными и безопасностью. В этом релизе он получил три заметных изменения.
-
Spark как движок обслуживания. Добавлена поддержка Apache Spark в качестве движка обслуживания таблиц и отдельный экран конфигурации движка обслуживания в интерфейсе. Spark в качестве движка обслуживания.mp4
-
Настройка LDAP и OAuth в интерфейсе. Аутентификацию пользователей через LDAP и OAuth теперь можно настраивать прямо в UI, без правки конфигурационных файлов. LDAP и OAuth аутентификацию пользователей.mp4
-
Дерево объектов каталога. Отображение объектов каталога переработали: вместо плоского списка объекты показываются в виде дерева с навигацией. По большому каталогу проще ориентироваться и находить нужные таблицы. объекты отображаются в виде дерева объектов.mp4
Коротко
CedrusData 476-3 — релиз про производительность и управляемость. В движке появился нативный исполнитель Oxide и набор оптимизаций планировщика и операторов, режим одного узла под поток мелких запросов, индексы в Parquet и улучшенный пушдаун в Greenplum. В каталоге — Spark как движок обслуживания, настройка аутентификации в интерфейсе и навигация по объектам в виде дерева.
CedrusData развивается в составе дата-сервисов VK Tech и линейки VK Data Platform.
Оставьте заявку, чтобы получить консультацию
Наши специалисты свяжутся с вами в ближайшее время и ответят на все вопросы.

Узнавайте о выходе новых статей в блоге первыми!
Будем держать в курсе новостей и облачных трендов


Почитать по теме


MPP-архитектура: почему распределённая обработка выигрывает у монолита


