Trino и CedrusData
414 subscribers
3 photos
2 files
55 links
Канал о российской lakehouse-платформе CedrusData и сверхбыстром SQL-движке Trino. Здесь команда разработчиков CedrusData делится опытом и новостями из мира современных data lakehouse-решений и распределённых вычислений.

Чат: @cedrusdatachat
Download Telegram
Коллеги, дискуссия интересная, и комментарии увлекательные 🙂
Большая просьба не скатываться в холивары 👍🏼
2
Всем привет. Мы рады представить большой релиз CedrusData 442-1!

1. Новый UI для запуска SQL запросов. Основан на Monaco. Документация: https://docs.cedrusdata.ru/latest/client/cedrusdata-web-ui.html
2. Полноценная поддержка динамических каталогов. Отличия от реализации Trino: возможность сохранения каталогов в Postgres или локальном RocksDB, возможность установки разных свойств каталога на разные узлы, отсутствие багов (известных нам 🙂). Документация: https://docs.cedrusdata.ru/latest/admin/properties-catalog.html
3. Кэш результатов, который позволяет мгновенно отдавать результаты ранее запущенных запросов без их повторного выполнения. Документация: https://docs.cedrusdata.ru/latest/admin/properties-cedrusdata-result-cache.html
4. Теперь к CedrusData можно подключаться через PowerBI с помощью нашего интерфейса Arrow Flight SQL и ODBC-драйвера Dremio (иронично, да). Гайд по подключению: https://docs.cedrusdata.ru/latest/guide/bi-powerbi.html
5. Автоматический сбор статистик кластера

Ссылка на дистрибутив и инструкции по установке: https://www.cedrusdata.ru/download
Release notes: https://docs.cedrusdata.ru/latest/release/release-442-1.html

В работе и появится в ближайших релизах:
1. Автоматический rewrite запросов к материализованным представлениям. Уменьшает количество повторяющихся вычислений и эффективно разгружает источники данных. Функционал архитектурно схож с Dremio Reflections.
2. Наконец опубликуем автоматическую дедупликацию повторяющихся фрагментов запроса. Результаты тестов показывают отличный прирост производительности, но реализация достаточно сложная.
3. Чтение данных из Greenplum через gpfdist.
4. Добавим в web UI возможность работы с локальными датасетами через DuckDB.
5. В рамках исследования поэкспериментируем с гибридным исполнением запросов между DuckDB и CedrusData.
🔥11👍21
Всем привет. Мы рады представить релиз CedrusData 442-2!

1. Возможность сохранения истории выполненных запросов в персистентное хранилище (файловая система или PostgreSQL). Документация: https://docs.cedrusdata.ru/latest/admin/properties-cedrusdata-query-history.html
2. Iceberg: добавлена возможность использования функций партиционирования отличных от "identity" для выполнения колоцированных операций Join и Aggregate
3. Delta Lake: добавлена поддержка локального дискового кэша CedrusData. Документация: https://docs.cedrusdata.ru/latest/connector/delta-lake.html#delta-lake-data-cache
4. Greenplum: добавлена возможность задания свойств таблиц при выполнении операции CREATE TABLE: distributed by, appendoptimized, orientation и т.д. Документация: https://docs.cedrusdata.ru/latest/connector/greenplum.html#greenplum-table-properties
5. Создана инфраструктура для автоматического переписывания запросов на материализованные представления. Функционал будет включен в следующем релизе для Iceberg каталогов
6. Увеличена точность операций деления DECIMAL значений. Ванильный Trino агрессивно урезает количество симоволов после запятой, например 1.0 / 3 -> 0.3. В CedrusData можно опционально увеличить точность операций деления с помощью параметра JVM. Документация: https://docs.cedrusdata.ru/latest/language/types.html#decimal-division-scale
7. Внесены изменения в Docker-образ CedrusData. Теперь он максимально приближен к Docker-образу Trino, чтобы пользователям было легче менять образы в своем окружении. Документация: https://docs.cedrusdata.ru/latest/installation/containers.html

Ссылка на дистрибутив и инструкции по установке: https://www.cedrusdata.ru/download
Release notes: https://docs.cedrusdata.ru/latest/release/release-442-2.html

Задачи в работе:
1. Поддержка автоматического переписывания запросов на материализованные представления для операторов Scan-Project-Filter-Aggregation в Iceberg каталогах
2. Поддержка чтений из Greenplum через gpfdist
3. Кэширование повторяющихся фрагментов и подзапросов
🔥13
Всем привет. Мы рады представить релиз CedrusData 442-3!

1. Опубликовали бинарники и исходники наших SPI. Теперь вы можете использовать дополнительные сервисы CedrusData для разработки своих плагинов. Например, вы можете добавить наш дисковый кэш в свой коннектор, или реализовать аудит событий аутентификации через event listener. Документация: https://docs.cedrusdata.ru/latest/develop/spi-overview.html#spi-dependencies
2. Добавили поддержку автоматического переписывания запросов на материализованные представления. Данный функционал может быть использован как для уменьшения количества повторяющихся вычислений (например, агрегаций), так и для снятия нагрузки с медленных источников путем переноса чтения части колонок в Iceberg. В настоящий момент поддерживаются материализованные представления из коннектора Iceberg. Пока не поддерживаем материализованные представления с оператором JOIN, добавим в ближайших релизах. Документация: https://docs.cedrusdata.ru/latest/connector/iceberg.html#iceberg-materialized-views-rewrite
3. Улучшили работу колоцированных вычислений в Iceberg за счет поддержки всех типов данных для всех partition transforms (https://iceberg.apache.org/spec/#partition-transforms), за исключением составных типов в identity transform. Теперь колоцированные Join и Aggregate могут быть использованы в большем количестве случаев.

Ссылка на дистрибутив и инструкции по установке: https://www.cedrusdata.ru/download
Release notes: https://docs.cedrusdata.ru/latest/release/release-442-3.html

Продолжаем работать над материализованными представлениями: нужны поддержка Join и инкрементальный refresh. Финализируем разработку быстрых чтений из Greenplum через gpfdist. Начинаем думать над тем, как удобно загружать файлы в data lake через CedrusData Web UI. Пробуем финализировать первую версию прототипа гибридного выполнения запросов через CedrusData и DuckDB.
🔥101
🎉 Анонс Trino бар Summit! 🍻

Всем привет! В эту пятницу коллеги из S7 спонтанно организуют посиделки в баре для обсуждения итогов Trino Summit и других идей! 🎤💡Приглашаем всех желающих. Будет здорово провести вечер вместе, обменяться впечатлениями и просто хорошо провести время.

📅 Когда: в эту пятницу, 14 июня, вечер после 18:00, точное время согласуем
📍 Где: Москва, точное место будет определено в зависимости от вашей реакции и сообщено отдельно

Пожалуйста, отметьтесь в реакции:
🔥 - если вы готовы присоединиться к коллегам из S7 и придете! (будем ориентироваться на это число при бронировании, но в разумных пределах)
🤷‍♂️ - если собираетесь присоединиться, но не уверены, что у вас получится

По всем вопросам организации можно обращаться к @YuriyGavrilov

Не пропустите отличный вечер с друзьями и коллегами! 🍹🥳
🔥4🤷‍♂3
Коллеги, привет. Задача канала - приносить пользу сообществу. Мы против огульной и навязчивой рекламы. Но если есть конкретный запрос и конкретный ответ, нет ничего плохого в том, чтобы это обсудить в канале. Команда Евгения делает ровно то, о чем спросил Андрей. Никаких проблем со стороны канала нет.
👍6
Всем привет. Мы рады представить релиз CedrusData 442-4!

Данный релиз значительно улучшает pushdown вычислений для Greenplum коннектора за счет добавления возможности pushdown сложных выражений. Например, с данными изменениями CedrusData теперь может сделать pushdown запроса TPC-DS 07 целиком (https://github.com/gregrahn/tpcds-kit/blob/master/query_templates/query7.tpl#L41-L58), и получить из Greenplum готовый результат агрегации. Для этого же запроса Trino сможет сделать pushdown только фильтров и Join-ов, но финальная агрегация большой таблицы фактов будет проиходить внутри Trino, существенно снижая производительность, так как в плане запроса присутствуют промежуточные вычисления (оператор Projection с функцией CAST), которые Trino не может запушить. Документация: https://docs.cedrusdata.ru/latest/connector/greenplum.html#greenplum-expression-pushdown

Эти и смежные оптимизации направлены на ускорение распространенного сценария выполнения сложных запросов, объединяющих данные между data lake и хранилищем. В ближайших релизах мы добавим поддержку данной оптимизации в ряд других популярных коннекторов, таких как Postgres, ClickHouse и Vertica.
🔥20👍3
Всем привет. Мы рады представить релиз CedrusData 442-5! Release notes: https://docs.cedrusdata.ru/latest/release/release-442-5.html

В новую версию добавлено два важных улучшения: автоматическое удаление из запросов ненужных операторов Join (join pruning) и возможность быстрой работы с Greenplum через протокол GPFDIST.

Автоматическое удаление операторов Join востребовано в сценариях, когда присутствует запрос с большим количеством Join, но реально используются только некоторые колонки. Такое часто возникает при работе с BI или схемами данных с большим количеством виртуальных представлений (например, Anchor или Data Vault). В новой версии мы научили оптимизатор определять операторы Join, которые могут быть безопасно удалены из запроса. Для работы данной оптимизации вам придется вручную указать констрейнты, которые де-факто определены на ваших таблицах. В будущих версиях мы научим движок получать констрейнты из коннекторов (Hive Metastore, Iceberg Catalog, JDBC). Документация: https://docs.cedrusdata.ru/latest/admin/properties-optimizer.html#cedrusdata-optimizer-join-pruning-enabled

Многим пользоватлям CedrusData и Trino важна возможность быстрого чтения и записи данных из/в Greenplum. Ранее мы предложили ряд оптимизаций для быстрого чтения данных из Greenplum, которые тем не менее были применимы только к некоторым ситуациям. В новом релизе мы научили CedrusData общаться с сегментами Greenplum напрямую через протокол GPFDIST, минуя master-узел. Результатом данного улучшения является многократное увеличение скорости чтения и записи данных при работе с Greenplum. Среди прочего, теперь вы сможете еще быстрее мигрировать ваши приложения с Greenplum на современный стек CedrusData/Iceberg/S3 🙂. Документация: https://docs.cedrusdata.ru/latest/connector/greenplum.html#gpfdist

В следующих версиях мы опубликуем первую версию собственного Iceberg REST Catalog, заточенного на быструю работу с CedrusData. Кроме того, мы начали работу над ускорением работы с ClickHouse, и в скором времени в продукте появятся продвинутый pushdown вычислений в ClickHouse по аналогии с тем, как мы уже это сделали для Greenplum в версии 442-4.
🔥12
Коллеги, привет. Делаем крайне запоздалый анонс дружественного мероприятия.

Сегодня в 18:00 состоится очередной митап российского сообщества разработчиков СУБД Database Internals. Будет доклад про Sphinx от Авито, и про материализованные представления Greenplum и проекции Vertica от Яндекс. Зарегистрироваться на онлайн участие можно по ссылке: https://databaseinternals.timepad.ru/event/3003674/

Если вы интересуетесь вопросами устройства СУБД и движков, присоединяетесь к сообществу разработчиков СУБД: t.iss.one/databaseinternalschat
🔥7
Всем привет! В следующий четверг 24.10.2024 состоится DATA.Meetup 2024 от Сбера, на котором будут доклады про Trino и Iceberg. Обсудим наши любимые технологии в неформальной обстановке. Возможно офлайн и онлайн участие, регистрация обязательна. Для офлайн участия необходимо пройти регистрацию до начала следующей недели. Будем рады вас видеть!
🔥3
Forwarded from SberProfi DWH/BigData
Друзья, привет!

⚡️Мы обещали, и мы это сделали! Всем, кому недостаёт зубодробительных технических докладов и свежего data-контента, посвящается

Приходите на очный Data.Meetup от команды DWH/BigData и CedrusData! Мы подготовили насыщенную программу по нескольким направлениям🔥

- Обсудим новые горизонты и практические кейсы работы с Trino — миграция в k8s, особенности работы с Iceberg
- Расскажем, как съели пуд соли с metadata-driven платформой (и почти не подавились)
- Поделимся проверенными сценариями для гарантии поставки и безопасного распространения данных в большой гетерогенной data-платформе
- Поговорим про Flink и расскажем, почему этот движок настолько эффективен

Гостей ждут динамичные доклады, жаркие дискуссии, интерактивы, подарки и, конечно же, вкусное угощение! Переносите тренировки, просмотр сериалов и отложите рабочие задачи — такое нельзя пропустить!

🗓️ 24 октября, четверг
  16:00–20:00 мск
📍Ждем вас очно по адресу: Москва, Кутузовский, 32, к. 1, 2-й этаж, большой конференц-зал
🌐 Будет онлайн-трансляция

👉 ПРОГРАММА 👈

До встречи на Data.Meetup 2024!

С уважением,
Команда DWH/BigData 💚
🔥11
Всем привет!

Выложены записи и презентации докладов митапа DataMeetup! https://developers.sber.ru/kak-v-sbere/events/data_meetup_october
Если у вас остались вопросы по работе Trino, Flink в Сбере, можете обращаться к @Slider_Ivan.

Благодарим вас за участие!
🔥7👏21
Обещанного три года ждут. Мы выпустили первую версию CedrusData Catalog — технического каталога для аналитических платформ. Поддержка Iceberg REST API, файловых систем S3 и HDFS. Безопасность и мониторинг. Начало работы и инуструкции по интеграции с популярными движками: https://docs.cedrusdata.ru/catalog/latest/index.html. Рассказываем подробнее о продукте в нашем блоге: https://www.cedrusdata.ru/blog/cedrusdata-catalog-novyy-tehnicheskiy-katalog-s-podderzhkoy-iceberg-rest-api
🔥18👍8😍5
11 декабря с 13:00 до 19:00 в Москве в кластере Ломоносов пройдет пятый митап "Database Internals Meetup". Будем говорить про внутреннее устройство CedrusData, YDB, Picodata, Tarantool и openGauss. По CedrusData будет затронута тема автоматического переписывания запросов на материализованные представления. Подробное описание программы: https://databaseinternals.timepad.ru/event/3132404/

Митап будет частью крупной конференции ИСП РАН, так что кроме баз данных можно будет послушать доклады про механику сплошных сред 🤓, лингвистические системы анализа 🤓, и многое другое. Участие в митапе и конференции бесплатное, но необходимо обязательно пройти регистрацию до 7 декабря на сайте ИСП РАН: https://www.isprasopen.ru/#Registration

Будем рады вас увидеть!
🔥2
Всем привет! Начинается большая секция Database Internals. 5 докладов от ведущих российских разработчиков СУБД.

В 17:30 будет доклад от разработчиков CedrusData об интеграции автоматического переписывания запросов на материализованные представления в оптимизатор Trino.

В 16:30 будет круглый стол по модульным оптимизаторам. В том числе будут затронуты некоторые аспекты текущих дискуссий в сообществе Apache Iceberg о реализации cross-engine views (напр., записали из Trino, прочитали в Spark), и проблем современных оптимизаторов (например, почему Cloudera пытается переписать с нуля оптимизатор Impala).

Трансляция доступна по ссылке: https://vk.com/video-226977842_456239020
🔥9👍1
Всем привет. Мы рады представить релиз CedrusData 458-2! Рассказываем о ключевых изменениях.

Веб-интерфейс:
- Администраторы теперь могут управлять политиками доступа из UI

Оптимизатор:
- Новый современный cost-based алгоритм планирования порядка JOIN, который анализирует больше альтернативных планов и делает это значительно быстрее оригинального алгоритма Trino
- Улучшенный расчет статистик для фильтров, агрегатов, window-функций и JOIN. До этого оптимизатор использовал оригинальную стратегию расчета статистик Trino, в которой выбор оптимального порядка JOIN часто не происходит из-за невозможности расчета статистик данных операторов
- Добавили оптимизацию, которая упрощает OUTER JOIN на INNER JOIN в некоторых случаях. В следующем релизе оптимизация будет доработана, чтобы упрощать OUTER JOIN во всех возможных случаях

Материализованные представления:
- Добавили возможность автоматического переписывания запросов на материализованные представления, содержащие JOIN
- Добавили возможность автоматического переписывания запросов на материализованные представления, содержащие агрегаты с ROLL UP и CUBE. Совместно с поддержкой JOIN, это позволяет материализовать кубы, полученные путем объединения таблицы фактов и нескольких измерений, и использовать эти предрассчитанные агрегации в широком спектре пользовательских запросов

Iceberg:
- Добавили поддержку predicate pushdown / data skipping на уровне страниц Parquet. Пользователи могут ожидать снижение количества зачитываемых из S3/HDFS данных для ряда запросов
- Добавили поддержку материализованных представлений в CedrusData Catalog. На данный момент это единственный промышленный каталог для Iceberg, отличный от Hive Metastore, который поддерживает материализованные представления

ClickHouse:
- Добавлена возможность pushdown сложных вычислений и множества различных скалярных и агрегатных функций. Пользователи могут ожидать существенное ускорение запросов к ClickHouse для широкого набора сценариев

Release notes: https://docs.cedrusdata.ru/latest/release/release-458-2.html, https://docs.cedrusdata.ru/catalog/458-2/release/release-458-2.html
🔥21❤‍🔥3👍1
Всем привет! 24 апреля в Москве пройдет Lakehouse Meetup — первое мероприятие, посвященное использованию современных технологий анализа больших данных. Мы откроем регистрацию немного позже, а этим сообщением мы хотим предложить вам стать спикером мероприятия!

Мы приглашаем выступить на митапе инженеров и архитекторов, работающих с технологиями Apache Iceberg и Trino. Наиболее актуальны темы, связанные с реальной эксплуатацией данных продуктов, а также миграцией с классического стека.
Вы можете подать заявку на выступление, заполнив короткую форму: https://docs.google.com/forms/d/e/1FAIpQLSdznG_KYWRemAe9N92pY7eS6t_SFx3NFsbJ6MAMlXD_EFtZAw/viewform?usp=header

Пятиминутка мотивации:
- Если вы хотите выступить, но вам не подходят даты или вы не можете присутствовать в Москве, подавайте заявку 🙂 Мы планируем серию мероприятий, в том числе онлайн, поэтому у вас будет возможность выступить в другой раз
- Если вы хотите выступить, но сомневаетесь в том, что ваш кейс будет интересен ("слишком мало данных", "еще не все отшлифовали" и т.п.), подавайте заявку 🙂 Если вы уже набили шишки или сделали интересные для себя выводы, про это точно будет интересно послушать

Будем рады увидеть вас в качестве спикера митапа!

Мероприятие организуют компании Кверифай Лабс (вендор CedrusData) и Лемана Тех (ex-Леруа Мерлен). Митап пройдет в гибридном формате.
❤‍🔥6👍5🔥3
Всем привет. Мы рады представить минорный релиз CedrusData 458-3! Ключевые изменения:

Коннектор Iceberg:
- Добавлена поддержка запуска CedrusData Catalog в embedded режиме. Теперь вы можете запускать координатор CedrusData и CedrusData Catalog как единый сервис, уменьшая количество компонентов в lakehouse, и повышая производительность запросов к данным Iceberg
- Добавлена поддержка локальной файловой системы. Совместно с поддержкой embedded CedrusData Catalog, вы теперь можете развернуть тестовый лейкхауз с поддержкой Iceberg в буквальном смысле одной командой: https://docs.cedrusdata.ru/458-3/guide/data-lakes-cedrusdata-catalog-embedded.html

Коннектор ClickHouse:
- Добавлена поддержка pushdown дополнительных функций работы с датами и строками. Теперь популярные запросы вида SELECT year(date), ... FROM sales GROUP BY year(date) будут работать многократно быстрее за счет полного pushdown

CedrusData Catalog:
- Добавлена поддержка создания и удаления ролей. Правда, есть нюанс — им нельзя присваивать привилегии 😄. Поддержка привилегий — последний шаг к реализации промышленного RBAC в каталоге, который будет доступен в следующем релизе

Release notes:
- CedrusData: https://docs.cedrusdata.ru/458-3/release/release-458-3.html
- CedrusData Catalog: https://docs.cedrusdata.ru/catalog/458-3/release/release-458-3.html
🔥21
Всем привет. Мы рады представить минорный релиз CedrusData 458-4! Ключевые изменения:

Общее:
- Добавлена поддержка автоматического переписывания запросов на материализованные представления при несовпадении ключей группировки. Данная оптимизация будет особенно полезна для ускорения запросов из BI-инструментов. Например, вы можете материализовать агрегат по колонкам (a,b,c), и движок сможет его использовать при вычислении более общих агрегатов по любым комбинациям данных колонок: (a), (b), (c), (a,b), (b,c), (a,c). Ранее данный функционал поддерживался только при условии, что вы создали материализованное представление с дополнительными grouping set (например, с помощью ключевых слов ROLLUP, CUBE). Попробовать в действии можно на локальном компьютере с помощью нескольких команд: https://docs.cedrusdata.ru/458-4/cedrusdata-performance/mv-rewrite.html

Коннектор Iceberg:
- Ускорена работа с CedrusData Catalog за счет кэширования метаданных схем и таблиц на время выполнения запроса

Коннектор ClickHouse:
- Добавлена поддержка pushdown типа данных TIMESTAMP WITH TIME ZONE

Release notes:
- CedrusData: https://docs.cedrusdata.ru/458-4/release/release-458-4.html
- CedrusData Catalog: https://docs.cedrusdata.ru/catalog/458-4/release/release-458-4.html
🔥5😱2🤯1🐳1🦄1
Всем привет. Мы рады представить минорный релиз CedrusData 458-6! Ключевые изменения:

Общее:
- Добавлена поддержка материализованных 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
🔥8👍2❤‍🔥1