Общее:
- Добавлена поддержка материализованных CTE (common table expressions). Теперь вы можете материализовывать произвольные подзапросы в Iceberg, чтобы избавиться от повторяющихся вычислений, а также для выполнения тяжелых расчетов, которые в противном случае потребляли бы слишком большое количество памяти. Материализацию можно задавать явно с помощью синтаксиса
WITH <имя_cte> MATERIALIZED AS ... или автоматически с помощью эвристического планировщика. Технически функционал схож с аналогичными решениями в Greenplum, Presto и PostgreSQL- Добавлена поддержка aggregation-join pushdown (бэкпорт из Trino)
Коннектор Iceberg:
- Добавлена возможность задавать identifier fieds в качестве свойства таблицы
CedrusData Catalog:
- Добавлена возможность длительного хранения и автоматического удаления материализованных CTE для их переиспользования между запросами. Таким образом CTE, материализованный одним запросом, может быть использован для ускорения последующих. Пользователи связки CedrusData + CedrusData Catalog могут ожидать многократного ускорения тяжелых запросов с повторяющимися CTE. Данный механизм может быть использован как высокопроизводительная альтернатива FTE в ванильном Trino
Материализация CTE в файлах Iceberg обеспечивает масштабируемость решения. Для сравнения, другие продукты (например, Presto, StarRocks, вскоре - ванильный Trino) позволяют переиспользовать только небольшие подпланы и хранят их в памяти, что значительно ограничивает применимость данных оптимизаций.
Пример влияния материализованных CTE для TPC-DS запроса № 47, scale factor 1000, на облачном тестовом стенде:
- Без материализации: 39 сек, прочитано 18 Gb данных
- C материализацией: 14 сек, прочитано 6 Gb данных
- С материализацией и переиспользованием: 1 сек, прочитано 0.05 Gb данных
Release notes:
- CedrusData: https://docs.cedrusdata.ru/458-6/release/release-458-6.html
- CedrusData Catalog: https://docs.cedrusdata.ru/catalog/458-6/release/release-458-6.html