Включение режима DirectQuery в SSMS

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

Важно!

Для переключения режимов хранения данных рекомендуется использовать конструктор табличных моделей в Visual Studio вместо SQL Server Management Studio (SSMS). При использовании Visual Studio для изменения режима модели и последующего развертывания на сервере модель и база данных остаются синхронизированными. Кроме того, изменение режимов хранения в модели позволяет просматривать все возникающие ошибки проверки. При использовании SSMS, как описано в этой статье, ошибки проверки не сообщаются.

Требования

Включение режима DirectQuery в табличной модели — это многоэтапный процесс:

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

    Список ограничений функций задокументирован в режиме DirectQuery.

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

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

    Учетные данные, изначально использовавшиеся для обработки данных, теперь будут использоваться для запроса данных. В рамках настройки DirectQuery просмотрите и при необходимости измените учетную запись, если для отдельных операций используются различные учетные записи.

    Режим DirectQuery — единственный сценарий, в котором службы Analysis Services выполняют доверенное делегирование. Если в решении необходимо использовать делегирование для получения результатов запроса для конкретного пользователя, то учетная запись, используемая для подключения к базе данных серверной части, должна иметь разрешение на делегирование удостоверения пользователя, выполняющего запрос, и удостоверения пользователей должны иметь разрешения на чтение базы данных серверной части.

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

Переключение в режим DirectQuery

  1. В обозреватель объектов щелкните правой кнопкой мыши свойства> базы данных >Режим по умолчаниюмодели>.

  2. Установите режим DirectQuery.

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

    Запросы к модели преобразуются в собственные запросы к базе данных и перенаправляются к источнику данных.

    При обработке модели в режиме DirectQuery компилируются и развертываются только метаданные. Сами данные являются внешними по отношению к модели и размещаются в файлах базы данных для рабочего источника данных.
    Импорт Запросы выполняются для табличной базы данных в виде многомерных выражений или DAX.

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

    Этот режим используется по умолчанию для табличных моделей и является единственным режимом для некоторых (нереляционных) источников данных.
    Двойной Разрешает импорт и DirectQuery. Этот режим не поддерживается в Azure Analysis Services или Power BI Premium.

Проверка свойств подключения

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

Дополнительные сведения о делегировании удостоверения пользователя для сценариев DirectQuery приведены в разделе Настройка служб Analysis Services для доверенного делегирования статьи Configure Analysis Services for Kerberos constrained delegation .

  1. В обозревателе объектов разверните Подключения и дважды щелкните подключение, чтобы просмотреть его свойства.

    Для моделей DirectQuery должно быть определено только одно подключение к базе данных. Источник данных должен быть реляционным и поддерживать тип базы данных. См . раздел Поддерживаемые источники данных.

  2. Встроке подключения следует указать сервер, имя базы данных и метод проверки подлинности, используемый в операциях DirectQuery. Если используется проверка подлинности SQL Server, в строке подключения можно указать имя входа для базы данных.

  3. Сведения об олицетворении используются для проверки подлинности Windows. Для табличных моделей в режиме DirectQuery допустимы следующие варианты использования:

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

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

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

Олицетворение не может использоваться, когда модель находится только в памяти. Параметр ImpersonateCurrentUserнедействителен, если модель не использует режим DirectQuery.

Проверка доступа к DirectQuery

  1. Запустите трассировку с помощью SQL Server Profiler или xEvents в среде Management Studio, подключенной к реляционной базе данных на сервере SQL Server.

    При использовании Oracle или Teradata используйте средства трассировки для этих платформ баз данных.

  2. В среде Management Studio введите и выполните простой запрос многомерных выражений, например select <some measure> on 0 from model..

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

См. также раздел

Уровень совместимости
Поддерживаемые источники данных
Расширенные события