Это перевод статьи Криса Уэбба, дополненный моими комментариями с использованием Chat GPT (набраны с отступом). Повествование ведется от первого лица (Криса).
Ранее я писал в блоге о том, как устранять проблемы с обновлением веб-службы с помощью стороннего инструмента под названием Fiddler. Информация по-прежнему актуальна, но Fiddler — сложный инструмент. Установить его и дать правильные разрешения для просмотра всего, что ему нужно, непросто. К счастью, новая функция диагностики Power Query в Power BI (выпущенная в октябре 2019 г.) означает, что вам больше не нужно использовать Fiddler для такого рода работы. Полная информация о том, как использовать эту функцию, приведена здесь, но я подумал, что было бы полезно сосредоточиться на одном конкретном варианте ее использования.
Функция диагностики в Excel на момент публикации перевода не доступна.
Рис. 1. Запрет скачивания в фоновом режиме
Скачать заметку в формате Word или pdf, примеры в формате Excel и архив с вложенным файлом Power BI Desktop
Возьмем в качестве примера один из запросов Power Query из моего более раннего поста:
Запрос 1[1]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
let Source = OData.Feed("https://api.parliament.uk/odata"), GovernmentOrganisation_table = Source{[ Name="GovernmentOrganisation", Signature="table" ]}[Data], #"Filtered Rows" = Table.SelectRows( GovernmentOrganisation_table, each ([GroupName] = "Cabinet Office") ) in #"Filtered Rows" |
Это общедоступная веб-служба, которая не требует аутентификации, поэтому вы сможете выполнить этот запрос у себя на ПК.
Запрос подключается к API OData парламента Великобритании и возвращает таблицу правительственных организаций, отфильтрованную по строке, для которой в столбце GroupName будет найден текст "Cabinet Office". Какие запросы выполняются к веб-службе в процессы выполнения Запроса 1?
Первое, на что следует обратить внимание, это то, что в зависимости от того, обновляете ли вы окно предварительного просмотра в редакторе Power Query или обновляете набор данных в главном окне Power BI, будут происходить разные вещи. Если вы выполняете настройку производительности, следует игнорировать то, что происходит при обновлении предварительного просмотра в редакторе Power Query, и всегда обновлять запрос из главного окна Power BI.
Во-вторых, при обновлении набора данных (или таблицы в наборе данных) из главного окна Power BI вы можете обнаружить, что в результате фонового обновления выполняется больше работы, чем вы ожидаете. Это может замедлить работу – потенциально очень сильно, если есть много запросов и шагов. В окне Power BI Desktop пройдите Файл –> Параметры и настройки –> Параметры. В разделе Текущий файл перейдите на вкладку Загрузка данных и снимите флажок Разрешить скачивание в фоновом режиме для предварительного просмотра данных (см. рис. 1).
После этого выполните следующие действия, чтобы узнать, какие запросы выполняются к веб-службе при выполнении Запроса 1.
Во-первых, позвольте запросу загрузить данные в набор данных, как обычно, не делая ничего другого. Таблица, в которую запрос загрузил данные, отобразится в области Данные главного окна Power BI:
Рис. 2. Загруженная по Запросу 1 таблица данных
Затем снова откройте окно редактора Power Query, перейдите на вкладку Инструменты и нажмите Начать диагностику
Рис. 3. Начать диагностику
Возможно, после запуска диагностики появится окно с предупреждением, что вам нужны права администратора. Проверьте в окне Параметры, ваши настройки диагностики:
Рис. 3а. Окно Параметры диагностики
По умолчанию включена опция, требующая запуска Power BI от имени администратора. Вы можете изменить эту опцию. Правда, я не тестировал, к чему это приведет. Я же просто вышел из файла и запустил Power BI от имени администратора. Для этого кликните кнопку Пуск Windows, найдите программу Power BI Desktop и выберите опцию Запуск от имени администратора. Для этого, естественно, у вас должны быть на это права на вашем ПК.
Рис. 3б. Запуск Power BI Desktop от имени администратора
Больше ничего не делайте в окне редактора Power Query. Сверните его (не закрывайте), вернитесь в главное окно Power BI. На панели Данные найдите таблицу, содержащую результат Запроса 1, щелкните на ней правой кнопкой мыши и выберите Обновить данные:
Рис. 4. Обновить данные
Вернитесь в окно редактора Power Query и нажмите кнопку Остановить диагностику. Вы увидите новые запросы, созданные в группе Диагностика:
Рис. 5. Новые запросы в группе Диагностика
Эти запросы содержат диагностические сведения для только что выполненного обновления. Запрос со словом Detailed содержит подробную информацию. Другие запросы содержат обобщенные данные.
В запросе Detailed каждая строка представляет собой одну операцию, которая выполняется в подсистеме Power Query, когда идет обновление, и хотя я не знаю, что все это означает (я работаю над этим!), если вы перейдете в столбец Data Source Query (запрос источника данных), вы увидите список всех HTTP-запросов, сделанных к веб-службе:
Рис. 6. HTTP-запросы, сделанные к веб-службе
Щелчок по отдельной ячейке в этом столбце позволяет увидеть полный текст запроса и ответа, на панели предварительного просмотра под панелью результатов:
Рис. 7. Запрос и ответ на панели предварительного просмотра
Хотя Fiddler по-прежнему может потребоваться для некоторых более сложных сценариев, здесь описан гораздо более простой способ устранения неполадок с источниками данных веб-служб в редакторе Power Query. Например, когда необходимо проверить сделанный запрос, чтобы узнать, происходит ли свертывание запросов в источнике данных OData.
[1] Номер соответствует запросу в приложенном Excel-файле. – Прим. Багузина