Использование DirectQuery в Power BI Desktop

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

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

  • Импорт. Копия данных из выбранных таблиц и столбцов импортируется в Power BI Desktop. При создании визуализаций или взаимодействии с ними Power BI Desktop использует импортированные данные. Чтобы увидеть изменения базовых данных после первоначального импорта или последнего обновления, необходимо снова импортировать полный набор данных, чтобы обновить данные.

  • DirectQuery: нет импорта данных в Power BI Desktop. Для реляционных источников можно выбрать таблицы и столбцы, которые будут отображаться в списке Power BI Desktop Поля. Для многомерных источников, таких как SAP Business Warehouse (SAP BW), измерения и меры выбранного куба отображаются в списке Поля . При создании визуализаций или взаимодействии с ними Power BI Desktop запрашивает базовый источник данных, поэтому вы всегда просматриваете текущие данные.

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

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

Преимущества DirectQuery

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

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

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

  • Ограничение в 1 ГБ набора данных не применяется к DirectQuery.

Подключение с помощью DirectQuery

Чтобы подключиться к источнику данных с помощью DirectQuery, выполните приведенные далее действия.

  1. В группе Главная ленты Power BI Desktop выберите Получить данные, а затем выберите источник данных, поддерживаемый DirectQuery, например SQL Server.

  2. В диалоговом окне подключения в разделе Режим подключения к данным выберите DirectQuery.

Пункты

Публикация в службе Power BI

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

  • Чтобы подключить служба Power BI к источникам данных DirectQuery, кроме Azure SQL Database, Azure Synapse Analytics (прежнее название — SQL Data Warehouse), Amazon Redshift и Snowflake Data Warehouse, установите локальный шлюз данных и зарегистрируйте источник данных. .

  • Если вы использовали DirectQuery с облачными источниками, такими как база данных Azure SQL, Azure Synapse, Amazon Redshift или Snowflake Data Warehouse, локальный шлюз данных не требуется. Для открытия опубликованного отчета по-прежнему необходимо указать учетные данные для служба Power BI. Без учетных данных при попытке открыть опубликованный отчет или просмотреть набор данных, созданный с помощью подключения DirectQuery, возникает ошибка.

Чтобы предоставить учетные данные для открытия отчета и обновления данных, выполните следующие действия.

  1. В служба Power BI щелкните значок шестеренки в правом верхнем углу и выберите Параметры.

    Снимок экрана: раскрывающееся меню

  2. На странице Параметры выберите вкладку Наборы данных и выберите набор данных, в котором используется DirectQuery.

  3. В разделе Подключение к источнику данных укажите учетные данные для подключения к источнику данных.

Примечание

Если вы использовали DirectQuery с базой данных Azure SQL с частным IP-адресом, необходимо использовать локальный шлюз.

Рекомендации и ограничения

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

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

DirectQuery отправляет все запросы в базу данных-источник, поэтому требуемое время обновления визуальных элементов зависит от того, сколько времени требуется базовому источнику для возврата результатов. 5 секунд или меньше — рекомендуемое время отклика для получения запрошенных данных для визуальных элементов. Время обновления более 30 секунд создает неприемлемо плохое взаимодействие с пользователями, использующими отчет. Время ожидания запроса, которое занимает более четырех минут, истекает в служба Power BI, и пользователь получает ошибку.

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

Ограничение на один миллион строк

DirectQuery определяет ограничение в один миллион строк для данных, возвращаемых из облачных источников данных, которые не являются локальными. Локальные источники ограничены определенными полезными данными размером около 4 МБ на строку в зависимости от собственного алгоритма сжатия или 16 МБ для всего визуального элемента. Емкости Premium могут устанавливать различные максимальные ограничения строк, как описано в записи блога Power BI Premium новых параметров емкости.

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

Ограничение строк не применяется к агрегатам или вычислениям, используемым для выбора набора данных, возвращаемого DirectQuery, только к возвращенным строкам. Например, запрос, который выполняется в источнике данных, может агрегировать 10 миллионов строк. Если данные, возвращаемые в Power BI, не более 1 миллиона строк, запрос может точно возвращать результаты. Если данные содержат более 1 миллиона строк, Power BI отображает ошибку, за исключением емкости Premium с разными ограничениями, заданными администратором. Состояние ошибки: Результаты запроса к внешнему источнику данных превысили максимально допустимый размер в 100 0000 строк.

Вопросы безопасности

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

Если необходимо реализовать безопасность на уровне пользователя с помощью источников DirectQuery, используйте RLS или настройте проверку подлинности с ограничением Kerberos для источника. Протокол Kerberos доступен не для всех источников. Дополнительные сведения см. в разделах Безопасность на уровне строк (RLS) с помощью Power BI и Настройка единого входа на основе Kerberos из служба Power BI в локальные источники данных.

Другие ограничения DirectQuery

Ниже приведены некоторые другие ограничения использования DirectQuery.

  • Если запрос в Power Query Editor слишком сложный, произойдет ошибка. Чтобы устранить эту ошибку, необходимо удалить проблемный шаг в Редактор Power Query или переключиться в режим импорта. Многомерные источники, такие как SAP BW, не могут использовать Редактор Power Query.

  • Автоматическая иерархия даты и времени недоступна в DirectQuery. Режим DirectQuery не поддерживает детализацию столбцов дат по годам, кварталам, месяцам или дням.

  • Для визуализаций таблиц или матриц существует ограничение в 125 столбцов для результатов, возвращающих более 500 строк из источников DirectQuery. Эти результаты отображают полосу прокрутки в таблице или матрице, которая позволяет получить больше данных. В этом случае максимальное число столбцов в таблице или матрице — 125. Если необходимо включить более 125 столбцов в одну таблицу или матрицу, рассмотрите возможность создания мер, использующих MIN, MAX, FIRSTили LAST, так как они не учитываются в этом максимуме.

  • Невозможно изменить режим импорта на Режим DirectQuery. При импорте всех необходимых данных можно переключиться из режима DirectQuery в режим импорта. Переключиться назад невозможно, в основном из-за набора функций, который не поддерживает DirectQuery. Модели DirectQuery в многомерных источниках, таких как SAP BW, также нельзя переключить с DirectQuery в режим импорта из-за разных методов обработки внешних мер.

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

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