Страницы: 1
RSS
Перезагрузка после каждого действия в Power Query
 
Привет

У меня достаточно большая модель с большим кол-вом взаимосвязей.

Данные я при работе ограничиваю - накладываю фильтр. Но так как взаимосвязанных таблиц много, каждое новое действие приводит к ожиданию до 15-20 сек загрузки.

Кто как делает, чтобы ускорить работу?
PS: работаю через интерфейс, писать код не умею.
 
В теме про PQ, в тексте про какую-то модель.
Большая модель - это сколько? (хотя бы строк или ячеек)
Фильтр - накладываете где?
Писать код не умею - где вы его пишите в модели данных?
Вроде не первый день уже на форуме, а четко изъясняться все никак не получается. Этак вы всех помогающих распугаете.
Изменено: PooHkrd - 17.05.2018 12:59:48
Вот горшок пустой, он предмет простой...
 
PooHkrd, я про PQ. Модель не правильно назвал.

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

Про писать код, я про Advance Editor - если там писать код, то после каждого действия он не перезагружает данные.
 
Если работаете с файлами с диска, то в режиме написания кода, я себе делаю сильно обрезанные копии источников и работаю с ними (например если в обработке 36 тыс номенклатур и расход за 8 лет, то оставляю пару десятков номенклатур и расход за год - пару лет), потом обязательно тестирую код на полных данных.
Если тащите данные из базы, то старайтесь тащить не всю таблицу целиком, а также только обрезанные варианты.
Изменено: PooHkrd - 17.05.2018 17:03:18
Вот горшок пустой, он предмет простой...
 
Если данные в файлах - только обрезание, только хардкор.

Ну или пересмотреть обработку - иногда там можно так навернуть, что...
F1 творит чудеса
 
Понял. Так и делаю. Может дело в референсах: Я стараюсь каждый этап загрузки разделять через References.

То есть делаю так
  1. Считал данные, удалил столбцы, присвоил типы.
  2. Референс - Разбил данные по нужной логике
  3. Референс - Сгрупировал данные для выгрузки во внешнюю систему
То есть 2 референса, хотя можно было наверно в 1 запрос все напихать.

С точки зрения нагрузки на систему - это насколько утяжеляет для PQ забор данных?
Так сказать опыт профессионалов хочется узнать!  
 
Практически не на сколько. Разбивка операций на отдельные запросы видна только вам. PQ в любом случае развернет единую цепочку преобразований оптимизирует на свой вкус и будет её выполнять, возможно даже игнорируя некоторые ваши шаги  ;). Нарушить эту последовательность может только использование в некоторых случаях операторов if then else либо функции Table.Buffer. Здесь это перетиралось уже неоднократно. Поищите по Power Query.
Изменено: PooHkrd - 18.05.2018 11:54:25
Вот горшок пустой, он предмет простой...
 
Сами по себе референсы здесь не так важны, сколько количество дерганий источника. Таблицы могут многократно перечитываться из файла, в зависимости от того, что и как вы делаете. Без конкретного примера это не разобрать и не перенастроить.

Но, как минимум, постарайтесь из запросов убрать промежуточные преобразования типов, если вам они не необходимы. Операция ресурсная, и лучше без надобности ее до самого конца не делать.
Аналогично - перестановка столбцов (вот это вот точно зачем нужно в середине запроса??? да и вообще кроме эстетики ничего не дающая операция), переименования и сортировки без необходимости.
F1 творит чудеса
 
Спасибо большое за советы

  1. Источник дергаю только 1 раз - и потом к обращаюсь к загруженным данным
  2. Изменение типов - стояла галка раньше, автоматическое определение типов. Сейчас уже убрал.
  3. Пересортировку столбцов в новых моделях делаю в самом конце, как и переименование.
 
Обратите внимание, что даже при отжатой галке с автоопределением типов этот шаг все равно вылазит при некоторых действиях, например, при разделении столбца по разделителю или при сборке файлов из папки. Нередко это вылазит потом боком.
Вот горшок пустой, он предмет простой...
 
Цитата
Vsevolod написал:
Источник дергаю только 1 раз - и потом к обращаюсь к загруженным данным
Это вы дергаете один раз. А Power Query - не факт. Все зависит от структуры зависимостей запросов и типа и количества обращений к самому запросу, получающему данные из источника. Условно, если Query1 получает данные из источника, а остальные запросы обращаются к Query1 за этими данными, количество обращений к источнику в Excel может быть сильно больше одного.
Опять же, как использовать это обращение. Я видел запросы, которые вешали Excel (на довольно небольшой таблице), просто потому, что количество обращений к базовому источнику начинало выходить за разумные пределы.
F1 творит чудеса
 
По поводу что и как экселевский PQ дергает в этой теме разбиралось очень подробно. Максим там ссылочкой англоязычной от разрабов PQ поделился. Крайне познавательно.
Вот горшок пустой, он предмет простой...
 
PooHkrd, Максим Зеленский, спасибо за ответы, но пока моих знаний не хватает разобраться в "ленивой" загрузке, о которой мне говорил PooHkrd, в отдельном тренде и дебаге загрузки. Думаю со временем смогу разобраться.
Страницы: 1
Наверх