Обновить
55
0
Vladimir Ozerov@devozerov

Founder at Querify Labs

Отправить сообщение

Бенчмарк lakehouse-движков, часть 1: StarRocks и Doris падают под нагрузкой, Presto аутсайдер, CedrusData быстрее всех

Время на прочтение19 мин
Охват и читатели7.5K

В этой статье мы детально рассмотрим поведение аналитических движков при выполнении отдельного TPC-DS запроса на одном узле.

Это глубоко технический текст, в котором мы увидим, как (1) три родственных движка (Impala, StarRocks и Doris) с трудом справляются с конкурентной нагрузкой, (2) разработчики StarRocks и Doris затачивают дефолты своих движков под бенчмарки, (3) Trino реализует эффективный шедулер запросов, но имеет ряд дефектов, ухудшающих производительность, (4) Presto строит хорошие планы запросов, но демонстрирует катастрофически плохую производительность из-за отсутствия буквально одной фичи. Ну а победит, конечно, наш движок CedrusData.

Хочу, чтобы подгорело

Безграничная расширяемость: как экосистема плагинов помогает Trino работать в любом аналитическом ландшафте

Время на прочтение6 мин
Охват и читатели640

"Trino — это PostgreSQL для аналитики" — нескромно охарактеризовали Trino в одном из блогов. Я не люблю кликбейтные заголовки, но эта фраза действительно емко описывает одну из самых сильных сторон Trino — расширяемость.

В этом блоге я расскажу, как устроены плагины Trino — строительные блоки, которые позволяют гибко адаптировать возможности продукта под потребности современных аналитических платформ.

Читать далее

CedrusData Catalog — новый технический каталог с поддержкой Iceberg REST API

Время на прочтение4 мин
Охват и читатели809

Мы выпустили новый технический каталог для аналитических платформ, который поддерживает спецификацию Iceberg REST API. Рассказываем, зачем это нужно вам и нам

Читать далее

Как мы ускорили Trino, научив оптимизатор удалять ненужные Join

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели2.3K

Как мы ускорили запросы в Trino, научив оптимизатор удалять из плана лишние операторы Join.

Обсудим, почему в аналитических запросах часто возникают избыточные Join, почему это плохо для SQL-движков, какие эквивалентные преобразования позволяют избавиться от ненужных Join, и с какими проблемами мы столкнулись при интеграции данного функционала в наш форк Trino.

Читать далее

Почему Trino такой быстрый: архитектура оптимизатора SQL-запросов

Время на прочтение12 мин
Охват и читатели60K

Аналитические системы должны эффективно обрабатывать сложные пользовательские запросы к десяткам и сотням терабайт данных (пета-?). Продвинутый оптимизатор запросов является важнейшим компонентом любого big data движка. В данной статье мы рассмотрим, как устроен оптимизатор запросов в массивно-параллельном аналитическом SQL-движке Trino.

И как же он устроен?

Почему Trino такой быстрый: динамические фильтры

Время на прочтение8 мин
Охват и читатели5.7K

Принцип большинства оптимизаций производительности в аналитических SQL-движках — ответить на запрос пользователя, затратив минимум вычислительных ресурсов. Динамические фильтры — это оптимизация, которая создает дополнительный предикат для одной из сторон оператора Join на основе данных другой стороны.

Так как аналитические запросы часто содержат операции Join и сканируют таблицы большого размера, наличие динамических фильтров позволяет существенно сократить объем обрабатываемой информации, а значит повысить производительность.

Рассмотрим реализацию динамических фильтров на примере Trino.

Узнать, как работают динамические фильтры

Как устроен massively parallel processing (MPP) в Trino

Время на прочтение10 мин
Охват и читатели11K

Из нашей повседневной практики доподлинно известно, что массивно(массово?)-параллельные вычисления это круто. Но что именно означает этот термин, и как "массивность" и "параллельность" реализованы в конкретной системе? В данной статье мы ответим на оба вопроса, проанализировав внутреннюю архитектуру популярного MPP-движка для больших данных Trino.

Читать далее

Rule-based оптимизация SQL-запросов

Время на прочтение7 мин
Охват и читатели6.8K

Всем привет! В компании Querify Labs мы создаем компоненты СУБД, включая оптимизаторы SQL-запросов.

Любой SQL-запрос может быть выполнен множеством способов. Задача оптимизатора - найти эффективный план выполнения запроса.

В этой статье мы обсудим rule-based оптимизацию - популярную архитектуру оптимизатора, в котором планирование запроса разбито на последовательность атомарных трансформации. Мы рассмотрим особенности реализации данного подхода в Apache Calcite, Presto, и CockroachDB.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность