Рекомендации по оптимизации Power BI

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

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

Оптимизация модели данных

Модель данных поддерживает возможность полной визуализации. Модели данных можно размещать как внутри, так и снаружи системы. В Power BI они называются наборами данных. Важно понимать доступные варианты и правильно выбрать тип набора данных для конкретного решения. Существуют три режима для наборов данных: режим импорта, режим DirectQuery и составной режим. дополнительные сведения см. в разделе наборы данных в служба Power BIи в режимах Dataset в служба Power BI.

Рекомендации по конкретным режимам набора данных см. в следующих статьях:

Оптимизация визуализаций

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

Панели мониторинга

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

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

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

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

Отчеты Power BI

Есть несколько рекомендаций по оптимизации проектирования отчетов Power BI.

Примечание

Если отчеты основаны на наборе данных DirectQuery, вы можете получить дополнительные рекомендации по проектированию отчетов в руководстве по модели DirectQuery в Power BI Desktop, посвященном оптимизация моделей отчетов.

Применение наиболее ограничительных фильтров

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

Распространенная ошибка в такой ситуации — не использовать фильтрацию для представления таблицы по умолчанию, то есть отображать все 100 млн строк. Данные для этих строк загружаются в память и распаковываются при каждом обновлении. Такая обработка создает значительную нагрузку на память. Чтобы решить эту проблему, с помощью фильтра "Первые N" сократите максимальное количество элементов, которые отображаются в таблице. Максимальное количество элементов может быть значительно больше, чем может понадобиться пользователям, например 10 000. В результате этого качество взаимодействия с конечным пользователем не изменится, однако нагрузка на память значительно снизится. И, что более важно, повышается производительность.

Мы рекомендуем применять аналогичный подход ко всем визуальным элементам в отчетах. Задайте себе вопрос, все ли данные нужны в этом визуальном элементе. Можно ли отфильтровать количество данных, отображаемых в визуальном элементе, с минимальным влиянием на взаимодействие с пользователем? Не забывайте, что таблицы могут быть особенно ресурсоемкими.

Ограничение визуальных элементов на страницах отчета

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

Оценка производительности настраиваемых визуальных элементов

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

Отчеты с разбивкой на страницы в Power BI

Макеты отчетов Power BI с разбивкой на страницы можно оптимизировать, применяя рекомендации по извлечению данных для отчета. Дополнительные сведения см. в руководстве по получению данных для отчетов с разбивкой на страницы.

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

Оптимизация среды

Вы можете оптимизировать среду Power BI, настроив параметры емкости, ограничив размер шлюзов данных и уменьшив задержку в сети.

Параметры емкости

при использовании емкости — для лицензий Power BI Premium (P sku), Premium на пользователя (ппу) или Power BI Embedded (номера sku, A4-A6) — можно управлять параметрами емкости. Дополнительные сведения см. в статье Управление емкостями Premium. Рекомендации по оптимизации производительности для емкости Premium см. в этой статье.

Выбор размера шлюза

Шлюз используется каждый раз, когда Power BI требуется доступ к данным, которые недоступны непосредственно через Интернет. Вы можете установить локальный шлюз данных на локальном сервере или в инфраструктуре IaaS на виртуальной машине.

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

Задержка в сети

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

Совет

Сведения об определении расположения клиента см. в этой статье.

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

Такие инструменты, как Azure Speed Test, могут определить задержку в сети между клиентом и регионом Azure. В большинстве случаев, чтобы свести к минимуму влияние задержки в сети, старайтесь размещать источники данных, шлюзы и кластер Power BI как можно ближе друг к другу. Желательно размещать их внутри одного региона. Если задержка в сети представляет проблему, вы можете попробовать расположить шлюзы и источники данных ближе к кластеру Power BI, разместив их на виртуальных машинах в облаке.

Мониторинг производительности

Вы можете отслеживать производительность для выявления проблем. Медленно работающие запросы или визуальные элементы отчета должны подвергаться непрерывной оптимизации. Мониторинг можно выполнять в Power BI Desktop во время разработки или на оборудовании Power BI Premium для производственных рабочих нагрузок. Дополнительные сведения см. в статье Мониторинг производительности отчетов в Power BI.

Дальнейшие действия

Дополнительные сведения по этим вопросам см. в следующих ресурсах.