Использование DirectQuery в Power BI Desktop
При подключении к любому источнику данных с помощью Power BI Desktop можно импортировать копию данных. Для некоторых источников данных можно также подключиться непосредственно к источнику данных без импорта данных с помощью DirectQuery. В этой статье описываются различия между режимами подключения Import и DirectQuery и рассказывается, как подключиться к источникам данных с помощью DirectQuery. Здесь также рассматриваются рекомендации и ограничения использования DirectQuery, такие как производительность и безопасность.
Чтобы определить, поддерживает ли источник данных DirectQuery, просмотрите полный список доступных источников данных, найденных в статье "Соединители" в Power Query, которая также относится к Power BI. Выберите статью, описывающую источник данных, который вы хотите найти в списке поддерживаемых соединителей, а затем ознакомьтесь с разделом в статье о поддерживаемых возможностях соединителя. Если DirectQuery не указан в этом разделе для статьи источника данных, DirectQuery не поддерживается для этого соединителя данных.
Ниже приведены различия между режимами подключения Import и 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, выполните приведенные действия.
В домашней группе ленты Power BI Desktop выберите "Получить данные", а затем выберите источник данных, поддерживаемый DirectQuery, например SQL Server.
В диалоговом окне подключения в режиме подключения к данным выберите DirectQuery.
Публикация в службе Power BI
Отчеты DirectQuery можно опубликовать в служба Power BI, но для открытия отчетов необходимо выполнить дополнительные служба Power BI действия.
Чтобы подключить служба Power BI к источникам данных DirectQuery, отличным от База данных SQL Azure, Azure Synapse Analytics (ранее — хранилище данных SQL), Amazon Redshift и Хранилище данных Snowflake, установите локальный шлюз данных и зарегистрируйте источник данных.
Если вы использовали DirectQuery с облачными источниками, такими как База данных SQL Azure, Azure Synapse, Amazon Redshift или Snowflake Data Warehouse, вам не нужен локальный шлюз данных. Чтобы открыть опубликованный отчет, необходимо указать учетные данные для служба Power BI. Без учетных данных при попытке открыть опубликованный отчет или изучить семантику модели, созданной с помощью подключения DirectQuery.
Чтобы предоставить учетные данные для открытия отчета и обновления данных:
В служба Power BI перейдите в рабочую область и найдите семантику модели, которая использует DirectQuery в списке содержимого рабочей области.
Щелкните значок "Дополнительно" три горизонтальных точки рядом с именем семантической модели, а затем нажмите кнопку "Параметры".
В разделе учетные данные источника данных укажите учетные данные для подключения к источнику данных.
Примечание.
Если вы использовали DirectQuery с База данных SQL Azure с частным IP-адресом, необходимо использовать локальный шлюз.
Рекомендации и ограничения
Некоторые функции Power BI Desktop не поддерживаются в режиме DirectQuery или имеют ограничения. Некоторые возможности в служба Power BI, такие как быстрая аналитика, также недоступны для семантических моделей, использующих DirectQuery. Если вы решите, следует ли использовать DirectQuery, рассмотрите эти ограничения функций. Также учитывайте следующие факторы:
Рекомендации по производительности и нагрузке
DirectQuery отправляет все запросы в исходную базу данных, поэтому необходимое время обновления для визуальных элементов зависит от того, сколько времени требуется базовому источнику для возврата результатов. Пять секунд или меньше — рекомендуемое время отклика для получения запрошенных данных для визуальных элементов. Время обновления более 30 секунд создает неприемлемый плохой интерфейс для пользователей, потребляющих отчет. Запрос, который занимает больше четырех минут в служба Power BI, и пользователь получает ошибку.
Загрузка исходной базы данных также зависит от количества пользователей Power BI, использующих опубликованный отчет, особенно если в отчете используется безопасность на уровне строк (RLS). Обновление плитки панели мониторинга, отличной от RLS, к которой совместно используется несколько пользователей, отправляет один запрос в базу данных, но обновление плитки панели мониторинга, используюющей RLS, требует одного запроса для каждого пользователя. Увеличение запросов значительно увеличивает нагрузку и может повлиять на производительность.
Ограничение на 1 миллион строк
DirectQuery определяет ограничение на 1 миллион строк для данных, возвращаемых из облачных источников данных, которые являются любыми источниками данных, которые не являются локальными. Локальные источники ограничены определенной полезной нагрузкой около 4 МБ на строку в зависимости от собственного алгоритма сжатия или 16 МБ для всего визуального элемента. Емкости Premium могут задавать различные максимальные ограничения строк, как описано в записи блога Power BI Premium.
Power BI создает запросы, которые максимально эффективны, но некоторые созданные запросы могут получить слишком много строк из базового источника данных. Например, эта ситуация может возникать с простой диаграммой, включающей столбец с высоким числом элементов с параметром агрегирования, равным No Calculation. Визуальный элемент должен иметь только столбцы с кратностью ниже 1 миллиона или применять соответствующие фильтры.
Ограничение строки не применяется к агрегатам или вычислениям, используемым для выбора возвращаемой семантической модели DirectQuery, только к возвращаемым строкам. Например, запрос, который выполняется в источнике данных, может агрегировать 10 миллионов строк. Если данные, возвращенные в Power BI, меньше 1 миллионов строк, запрос может точно возвращать результаты. Если данные содержат более 1 миллионов строк, Power BI отображает ошибку, за исключением емкости Premium с различными ограничениями, установленными администратором. Состояние ошибки: набор результатов запроса к внешнему источнику данных превысил максимальный допустимый размер строк "1000000".
Вопросы безопасности
По умолчанию все пользователи, использующие опубликованный отчет в служба Power BI подключаются к базовому источнику данных с помощью учетных данных, введенных после публикации. Эта ситуация аналогична импортированным данным. Все пользователи видят одни и те же данные независимо от правил безопасности, которые определяет базовый источник.
Если вам нужна безопасность для каждого пользователя, реализованная с помощью источников DirectQuery, используйте RLS или настройте ограниченную проверку подлинности Kerberos для источника. Kerberos недоступен для всех источников. Дополнительные сведения см. в статье "Безопасность на уровне строк" (RLS) с помощью Power BI и настройка единого входа на основе Kerberos из служба Power BI в локальные источники данных.
Другие ограничения DirectQuery
К некоторым другим ограничениям использования DirectQuery относятся:
Если запрос Редактор Power Query является слишком сложным, возникает ошибка. Чтобы устранить ошибку, необходимо либо удалить проблемный шаг в Редактор Power Query, либо переключиться в режим импорта. Многомерные источники, такие как SAP BW, не могут использовать Редактор Power Query.
Автоматическая иерархия даты и времени недоступна в DirectQuery. Режим DirectQuery не поддерживает детализацию столбцов дат по годам, кварталам, месяцам или дням.
Для визуализаций таблиц или матриц существует ограничение на 125 столбцов для результатов, возвращающих более 500 строк из источников DirectQuery. Эти результаты отображают полосу прокрутки в таблице или матрице, которая позволяет получить дополнительные данные. В этой ситуации максимальное число столбцов в таблице или матрице равно 125. Если необходимо включить более 125 столбцов в одну таблицу или матрицу, рассмотрите возможность создания мер, использующих
MIN
,FIRST
MAX
илиLAST
, так как они не учитывают это максимальное значение.Невозможно изменить режим импорта в режим DirectQuery. Вы можете переключаться с режима DirectQuery на режим импорта, если импортировать все необходимые данные. Не удается вернуться, в основном из-за набора функций, который DirectQuery не поддерживает. Модели DirectQuery над многомерными источниками, например SAP BW, нельзя переключаться с DirectQuery в режим импорта либо из-за разного обращения с внешними мерами.
Вычисляемые таблицы и вычисляемые столбцы, ссылающиеся на таблицу DirectQuery из источника данных с проверкой подлинности единого входа (SSO), поддерживаются в служба Power BI с назначенным общим облачным подключением и (или) детальным контролем доступа.