Эффективность оконных функций Presto

#window-functions #presto

#окно-функции #presto

Вопрос:

Я столкнулся с проблемой, связанной с функциями окна Presto. Всякий раз, когда я запускаю оконную функцию, я, кажется, запускаю ошибку изменения узла (запрос превысил общий лимит памяти для каждого узла; Лучшие потребители: TopNRowNumberOperator ).

Мне кажется, что оконные функции (НАПРИМЕР, row_number() поверх (разделение по порядку столбцов по coln) выполняются на одном узле, в отличие от распределенных агрегированных функций. Есть ли способ распределить оконные функции? Если нет, могу ли я получить список вещей на Presto, которые не будут распространяться. Любая информация об этом приветствуется.

Моя версия presto — 0.338

Спасибо

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

1. row_number() over ( partition by col order by coln ) выполняется на нескольких машинах, разделенных на col . Если будет один узел, если у вас одно значение col (или очень мало значений и есть коллизия хэшей)

2. Если он разделен на несколько столбцов, соответствует ли порядок столбцов в разделе по значениям? (НАПРИМЕР: разделение по col1, col2 и col3)