Оптимизация запросов в Dremio
Всем доброго времени суток! У многих при работе с большими объемами данных в Dremio возникает вопрос: “как оптимизировать производительность запросов в Dremio при работе с большими объемами данных?”
Как правило, при работе с большими объемами данных в Dremio могут возникать проблемы с производительностью из-за высокой стоимости (cost) запросов.
Чтобы оптимизировать работу, можно:
-
Проанализировать запросы, вызывающие ошибки: по плану запроса, стоимости запроса (cost), количеству строк в датасете (scanned rows).
-
Выявить цепочку связанных датасетов. Подсчитать количество обращений к одним и тем же базовым таблицам.
-
Уменьшить количество промежуточных датасетов, если родительские запросы обращаются в одну и ту же базу, для снижения cost итогового запроса.
-
Использовать временные таблицы, CASE выражения в запросах для оптимизации работы с промежуточными данными.
-
Сравнить cost и scanned rows до и после оптимизации - цель уменьшить эти показатели.
После приведенных действий выше скорость выполнения запросов в Dremio увеличивается, данные на дашборде отображаются быстрее.