Как стать автором
Обновить

YTsaurus SPYT: помогаем планировщику Apache Spark быть ещё эффективнее

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров2.5K
Всего голосов 17: ↑17 и ↓0+17
Комментарии4

Комментарии 4

Спасибо за ссылку, было интересно ознакомиться. Действительно, суть подходов - схожа.
- Hyperspace, судя по их странице на Microsoft, ориентирован на эффективные select и join запросы. В проекте SPYT при чтении из YTsaurus мы тоже реализуем Predicate Pushdown + оптимизация Aggregation и Join запросов из статьи.
- Также описанное в статье не требует предобработки, при подготовке витрин дата-инженеры обычно сортируют данные по типичным полям (id или datetime) в процессе заливки (так оно почти всегда занимает меньше места на диске), а YTsaurus сам поддерживает эту мету в актуальном состоянии.
Но вообще инструмент, конечно, заслуживает внимание и можно посмотреть в сторону его поддержки поверх YTsaurus и внутреннего формата хранения таблиц.

Спасибо за статью. Для добавления этих правил пришлось патчить спарк или у него есть API для добавления произвольных правил? Если прогнать без оптимизаций и с оптимизациями на бенчмарке типа TPCH, то эффект заметен?

У спарка есть API для добавление произвольных правил.
Вот тут при старте произвольной спарк сессии мы включаем свое правило (Rule). Тут используется наш хук на старт сессии. Обычно у команд дата-платформы уже есть такие хуки и тогда добавление правила - одна строчка.
А вот здесь мы включаем свои стратегии (Strategy), тоже одна строчка. Класс с подключением стратегий прописывается в опцию spark.sql.extensions.
Масштабной проверки на известных бенчмарках не делали. Вообще в планах есть провести тесты производительности Spark с YTsaurus и Spark с Hadoop. В рамках этого также можно будет посмотреть на отдельный эффект этой оптимизации. Спасибо за идею.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий