Как увеличить скорость работы в Power Query?

Бывают такие ситуации, когда в редактор Power BI вы загружаете большие объемы данных, например, таблицы с миллионами строк. Если у вас в редакторе запросов (Power Query) таких запросов много, и вы пытаетесь производить с ними определенные действия: обрабатывать, объединять, добавлять, то Power Query может «подтормаживать», долго обрабатывать информацию, тем более если ваш компьютер или ноутбук слабоваты и это в целом ведет к увеличению времени работы.

На этот процесс можно повлиять, и я хочу поделиться таким советом: нужно временно ограничить число строк в конкретном запросе.

Например, в вашем запросе миллион строк, вам же нужно временно оставить в этом запросе 100 строк. После того, как вы ограничите количество строк до 100, сделайте все необходимые преобразования запросов и в заключение удалите тот шаг, в котором вы ограничивали количество строк. Тем самым вы ускорите весь процесс работы с запросами.

Вот как это реализовывается на практике:

Редактор запросов Power Query:

На главной странице нажимаем «Изменить запросы»

В данной таблице 996 строк. Для примера ограничим таблицу 20 строками.

В основном поле, в левом верхнем углу правой кнопкой мыши нажимаем на значок на пересечении столбцов и строк.

В появившемся меню нажимаем «Сохранить верхние строки…».

Затем в открывшемся окне указываем цифру 20.

Наша таблица уменьшилась до 20 строк.

Теперь мы можем работать с этим запросом (чистить, модернизировать, соединять с другими запросами и т.д.) и эти действия будут проводиться достаточно быстро, потому что количество строк уменьшилось до 20.

Для примера, создадим шаг, состоящий из нового столбца.

На вкладке «Добавление столбца» нажимаем «Настраиваемый столбец»

В поле «Пользовательская формула столбца» указываем информацию, которая будет отражена в новом столбце. Например, настроим новый столбец как произведение данных столбца 2 и 5000.

Появился новый столбец.

Теперь самым последним шагом необходимо вернуть весь удаленный ранее массив данных (удаленные строки).

Для этого переходим в поле «параметры запроса», которое находится справа, и ищем тот шаг, на котором удаляли строки. В нашем случае это шаг «сохранение первых строк».

Удаляем данный шаг (нажимаем на крестик слева), в появившемся окне подтверждаем удаление.

Все ранее удаленные строки вернулись в таблицу.

Таким образом у нас появился новый столбец, где результат заданного действия, отражен по всем строкам огромного массива данных. И самое главное – процесс прошел быстро.

Пользуйтесь данным советом, и работа с Power Query у вас пойдет заметно быстрее!

0
1 комментарий
Yarik Elk

Спасибо за статью!
Но в общем случае такая схема может не работать. Все дело в том, поддерживает ли конкретный коннектор к источнику данных сворачивание запроса (query folding). Если нет, то PQ сначала занят к себе весь набор данных, а уже потом применит локальную фильтрацию.

Ответить
Развернуть ветку
-2 комментариев
Раскрывать всегда