Поделиться через


Запись диагностики запросов в Power BI

При создании в Power Query базовый рабочий процесс заключается в том, что вы подключаетесь к источнику данных, применяете некоторые преобразования, потенциально обновляете данные в редакторе Power Query, а затем загружаете его в модель Power BI. После того как он находится в модели Power BI, вы можете время от времени обновлять его в Power BI Desktop (если вы используете Desktop для просмотра аналитики), помимо любых обновлений, которые вы выполняете в Power BI Service.

Хотя вы можете получить аналогичный результат в конце процесса разработки, при обновлении в редакторе или в основной программе Power BI, программное обеспечение выполняет очень разные оценки для различных пользовательских интерфейсов. Важно знать, что ожидать при диагностике запросов в этих разных рабочих процессах, чтобы вы не были удивлены очень разными диагностическими данными.

Чтобы запустить диагностику запросов, перейдите на вкладку "Сервис " на ленте редактора Power Query. Вам предлагается несколько различных вариантов.

Элемент управления диагностикой запросов.

Здесь есть два основных варианта: "Шаг диагностики" и "Начать диагностику" (в сочетании с параметром "Остановить диагностику"). Первая из них предоставит вам информацию о запросе до выбранного шага и наиболее полезна для понимания того, какие операции выполняются локально или удаленно в запросе. Последний дает более подробное представление о различных других случаях, рассмотренных ниже.

Особенности соединителя

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

  • Connector
  • Примененные преобразования
  • Система, на которой вы работаете
  • Конфигурация сети
  • Расширенные варианты конфигурации
  • Конфигурация ODBC

Для наиболее широкого охвата эта документация будет сосредоточена на диагностике запросов таблицы "Клиенты Northwind", как в SQL, так и на OData. Примечания OData используют общедоступную конечную точку, найденную на веб-сайте OData.org, в то время как вам потребуется обеспечить SQL сервер для себя. Многие источники данных значительно отличаются от этих источников и будут добавлять определенную документацию по соединителю с течением времени.

Запуск и остановка диагностики

"Начать диагностику" и "Остановить диагностику" более широко применимы, чем "Шаг диагностики", но также дадут вам намного больше сведений, которые вам придется сортировать. Например, запуск диагностики, обновление предварительной версии, а затем остановка даст эквивалентную информацию для выполнения шага диагностики на каждом шаге (из-за того, как Power Query работает в редакторе для обновления каждого шага независимо).

Чтобы начать запись, выберите "Начать диагностику", выполните все необходимые оценки (создание, предварительная версия обновления, полное обновление) и нажмите кнопку "Остановить диагностику".

Создание контента

Основное различие рабочего процесса создания документации заключается в том, что обычно он генерирует больше отдельных оценок, чем в других рабочих процессах. Как описано в основной статье диагностики запросов, это результат заполнения различных пользовательских интерфейсов, таких как навигатор или раскрывающийся список фильтров.

Мы рассмотрим пример. Мы используем соединитель OData в этом примере, но при просмотре выходных данных мы также рассмотрим версию SQL той же базы данных. Для обоих источников данных мы будем подключаться к источнику данных с помощью "Новый источник", "Последние источники" или "Получить данные". Для подключения к SQL необходимо ввести учетные данные для сервера, но для общедоступной конечной точки OData можно ввести конечную точку, указанную выше.

Подключение OData.

После подключения и выбора проверки подлинности выберите таблицу "Клиенты " из службы OData.

Навигация Northwind.

Вы увидите таблицу "Клиенты" в интерфейсе Power Query. Предположим, что мы хотим знать, сколько представителей продаж есть в разных странах или регионах. Сначала щелкните правой кнопкой мыши представитель по продажам в столбце "Название контакта ", наведите указатель мыши на фильтры текста и выберите "Равно".

Примените фильтр текста к заголовку контакта.

Теперь выберите "Группировать по " на ленте и выполните группирование по стране, а агрегирование — число.

Применить группу по.

Это должно представить вас с теми же данными, которые вы видите ниже.

Результаты.

Наконец, вернитесь на вкладку "Сервис" ленты и выберите "Остановить диагностику". Это завершит процесс трассировки и создаст файл диагностики, а сводка и подробные таблицы будут отображаться слева.

Если вы трассируете весь сеанс разработки, вы обычно ожидаете увидеть что-то подобное оценке исходного запроса, а затем оценки, связанные с соответствующим навигатором. Затем вы увидите как минимум один запрос, выполняемый для каждого шага, причем их число может варьироваться в зависимости от точных действий пользовательского интерфейса. В некоторых соединителях параллельные оценки будут выполняться по причинам производительности, которые будут давать очень похожие наборы данных.

Обновление предварительной версии

После завершения преобразования данных у вас есть последовательность шагов в запросе. При нажатии клавиши "Обновить предварительную версию" или "Обновить все" в редакторе Power Query вы не увидите только один шаг в диагностике запросов. Причина этого в том, что обновление в редакторе Power Query явно обновляет запрос, заканчивающийся последним шагом, а затем проходит назад через примененные шаги и обновляет запрос обратно до источника.

Это означает, что если в запросе есть пять шагов, включая Источник и Навигатор, вы увидите пять различных оценок в вашей диагностике. Первая по хронологии часто (но не всегда) занимает больше всего времени. Это связано с двумя разными причинами:

  • Он потенциально может кэшировать входные данные, к которым последующие запросы (представляющие более ранние шаги в пользовательском запросе) могут получить более быстрый доступ локально.
  • В нем могут быть применены преобразования, которые значительно сокращают объем данных, необходимых для возврата.

Обратите внимание, что при обсуждении параметра "Обновить все" он обновляет все запросы, и вам потребуется отфильтровать все нужные запросы, как и ожидалось.

Полное обновление

Диагностику запросов можно использовать для диагностики так называемого "окончательного запроса", который создается во время обновления в Power BI, а не только для редактора Power Query. Для этого сначала необходимо загрузить данные в модель один раз. Если вы планируете сделать это, убедитесь, что вы понимаете: если выберете "Закрыть и Применить", окно редактора закроется (что прервет трассировку), поэтому вам нужно сделать это во время второго обновления или нажмите значок раскрывающегося списка под Закрыть и Применить и выберите Применить.

Применение изменений запроса.

В любом случае выберите "Пуск диагностики " в разделе "Диагностика " вкладки "Сервис " в редакторе. После этого обновите модель или даже таблицу, которая вам нужна.

Обновить таблицу.

После загрузки данных в модель нажмите кнопку "Остановить диагностику".

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

Важно отметить, что только потому, что вы видите ресурс (базу данных, веб-конечную точку и т. д.) или запрос источника данных в диагностике, это не означает, что это обязательно выполняет сетевую активность. Power Query может получить эти сведения из своего кэша. В будущих обновлениях мы указываем, извлекается ли информация из кэша для упрощения диагностики.

Шаг диагностики

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

Если вы использовали "шаг диагностики" для запроса, который мы построили выше, вы увидите, что он возвращает только 10 или около того строк, а при рассмотрении последней строки с использованием запроса источника данных, мы можем получить довольно хорошее представление о том, каким будет наш окончательный запрос к источнику данных. В этом случае мы видим, что представитель по продажам был отфильтрован удаленно, но группирование (по процессу ликвидации) произошло локально.

Диагностика таблицы отфильтрованных и группированных клиентов.

При запуске и остановке диагностики и обновлении того же запроса мы получаем 40 строк из-за того, что, как упоминалось выше, Power Query получает информацию о каждом шаге, а не только на последнем шаге. Это делает его сложнее, когда вы просто пытаетесь получить представление о одной конкретной части запроса.

Дополнительное чтение

Введение в функцию

Дополнительные сведения о чтении и визуализации записанных трассировок

Как понять, какие операции запроса свертываются с помощью диагностики запросов