исправлять проблемы производительности;

Завершено

Иногда организациям приходится решать проблемы с производительностью при выполнении отчетов. Power BI предоставляет инструмент "Анализатор производительности", помогающий устранять проблемы и оптимизировать процесс.

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

Оптимизация производительности в Power Query

Производительность в Power Query зависит от производительности на уровне источника данных. Разнообразие источников данных, которые предлагает Power Query, широко распространено, а методы настройки производительности для каждого источника одинаково широки. Например, если вы извлекаете данные из Microsoft SQL Server, то должны следовать рекомендациям по настройке производительности для этого продукта. Рекомендуемые методы настройки производительности SQL Server включают создание индексов, обновление оборудования, настройку плана выполнения и сжатие данных. Эти темы выходят за рамки данного модуля, и мы касаемся их только для примера, чтобы вы лучше разобрались с источниками данных и поняли, какие преимущества можно получить при использовании Power BI и Power Query.

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

Свертывание запросов

Свертывание запросов в редакторе Power Query помогает повысить производительность ваших отчетов Power BI. Свертывание запросов — это процесс, с помощью которого преобразования и изменения, внесенные в Редактор Power Query, одновременно отслеживаются как собственные запросы или простые инструкции Select SQL, пока вы активно выполняете преобразования. Причина реализации этого процесса заключается в том, чтобы эти преобразования могли выполняться на исходном сервере источника данных и не перегружать вычислительные ресурсы Power BI.

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

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

Ниже перечислены некоторые преимущества свертывания запросов.

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

  • Автоматическая совместимость с режимами хранилища DirectQuery и Dual. Все источники данных в режимах хранилища DirectQuery и Dual должны иметь возможности обработки на тыловом сервере для создания прямого подключения. Это означает, что свертывание запросов — автоматическая возможность, которую вы можете использовать. Если все преобразования можно сократить до одной инструкции Select, то может выполняться свертывание запросов.

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

Снимок экрана: последний примененный шаг после щелчка правой кнопкой мыши для отображения контекстного меню

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

Собственные запросы недоступны для следующих преобразований:

  • добавления индексного столбца;
  • объединения и добавления столбцов разных таблиц с двумя разными источниками;
  • изменения типа данных столбца;

Следует помнить, что, если вы можете выразить преобразование через инструкцию SQL Select, включающую в себя операторы и предложения, такие как GROUP BY, SORT BY, WHERE, UNION ALL и JOIN, то можете использовать свертывание запросов.

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

Диагностика запросов

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

Чтобы открыть диагностику запросов в редакторе Power Query, выберите Инструменты на ленте "Главная". Когда вы будете готовы приступить к преобразованию данных или внесению других изменений в Редактор Power Query, выберите Запустить диагностику в разделе Диагностика сеанса. По завершении убедитесь, что вы выбрали Остановить диагностику.

Снимок экрана: вкладка

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

Снимок экрана: применение диагностики запросов

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

Другие методы оптимизации производительности

Ниже перечислены некоторые другие методы оптимизации производительности запросов в Power BI.

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

  • Используйте машинные запросы SQL. При использовании DirectQuery для баз данных SQL, как в нашем сценарии, убедитесь, что вы не извлекаете данные из хранимых процедур или общих табличных выражений (CTEs).

  • Разделяйте дату и время, если они объединены вместе. Если в какой-либо из ваших таблиц есть столбцы, в которых объединены дата и время, разделите их на отдельные столбцы, прежде чем импортировать в Power BI. Такой подход увеличит возможности сжатия.

Дополнительные сведения см. в руководстве по свертыванию запросов и в статье Свертывание запросов.