Сценарии развертывания DirectQuery (табличные службы SSAS)
В этом разделе содержится пошаговое руководство по структурной организации и процедуре развертывания моделей DirectQuery. Модель DirectQuery можно настроить либо на использование только реляционных данных (только DirectQuery), либо на переключение между использованием только закэшированных и только реляционных данных (гибридный режим). Этот раздел описывает процесс реализации обоих режимов, а также возможные различия в результатах запросов, выполняемых в разных режимах и конфигурациях безопасности.
Проектирование и этапы развертывания
Сравнение конфигураций DirectQuery
Проектирование и этапы развертывания
Шаг 1. Создание решения
Вне зависимости от используемого режима необходимо ознакомиться с описанием ограничений по данным, используемым в моделях DirectQuery. Одним из таких ограничений, например, является то, что все данные, используемые в модели и отчетах, должны извлекаться из одной базы данных SQL Server. Дополнительные сведения см. в разделе Режим DirectQuery (табличные службы SSAS).
Также следует рассмотреть все ограничения в отношении мер и вычисляемых столбцов и определить, совместимы ли используемые в модели формулы с режимом DirectQuery. Может потребоваться удаление или изменение следующих элементов.
Вычисляемые столбцы не поддерживаются.
Недопустимо использование скопированных и вставленных данных. Если ускоренное создание решения производится путем импорта модели PowerPivot, то перед его выполнением необходимо удалить связанные таблицы, поскольку такие данные не могут быть удалены после импорта и станут причиной блокировки при проверке DirectQuery.
Шаг 2. Включите режим DirectQuery в конструкторе моделей
По умолчанию DirectQuery отключен. Поэтому необходимо настроить среду разработки для поддержки режима DirectQuery.
Щелкните правой кнопкой мыши узел Model.bim в Обозреватель решений и задайте для свойства Режим DirectQuery значение On
.
Можно включить режим DirectQuery в любое время. Однако, чтобы не создавать несовместимые с режимом DirectQuery столбцы или формулы, рекомендуется включить режим DirectQuery с самого начала.
Первоначально даже модели DirectQuery всегда создаются в памяти. Режим запроса по умолчанию для базы данных рабочей области — DirectQuery и в памяти. Такой гибридный режим позволяет производить кэширование импортируемых данных для оптимизации производительности во время разработки модели, одновременно выполняя проверку на соответствие требованиям DirectQuery.
Шаг 3. Устранение ошибок при проверке
При возникновении ошибок проверки при включении DirectQuery или при добавлении новых данных или формул откройте Список ошибокVisual Studio и выполните необходимые в этом случае действия.
Внесите изменения в любые параметры свойств для режима DirectQuery, руководствуясь сведениями из сообщений об ошибках.
Удалите вычисляемые столбцы. Если для определенной меры требуется вычисляемый столбец, вы всегда можете создать столбец с помощью Designer реляционных запросов (SSAS), предоставляемого в мастере импорта таблиц.
Измените или удалите формулы, несовместимые с режимом DirectQuery. Если для вычисления требуется какая-либо функция, попробуйте заменить ее эквивалентом из Transact SQL.
При необходимости добавьте данные. Если ранее в модели использовались данные, скопированные и вставленные из поставщиков, отличных от SQL Server, то можно создавать новые представления и производные столбцы в рамках существующего подключения или использовать распределенные запросы. Все данные, используемые в моделях DirectQuery, должны быть доступны из одного и того же источника данных SQL Server.
Шаг 4. Установите предпочтительный метод для ответа на запросы к модели
Только DirectQuery | Установите это свойство в значение DirectQuery. |
Гибридный режим | Установите это свойство в значение В памяти с DirectQuery или DirectQuery и в памяти. Это значение можно изменить позже в качестве альтернативной настройки. Обратите внимание, что клиенты могут переопределить предпочтительный метод в строке подключения. |
Шаг 5. Задайте секцию DirectQuery
Только DirectQuery | Необязательный элемент. Модель, где используется только метод DirectQuery, не нуждается в секции. Но если при разработке модели секции были созданы, то не забывайте, что в качестве источника данных может использоваться только одна из них. По умолчанию первая созданная секция будет использована в качестве секции Direct Query. Чтобы убедиться в том, что все данные, необходимые для модели, доступны из секции DirectQuery, выберите раздел DirectQuery и измените инструкцию SQL так, чтобы извлекался полный набор данных. |
Гибридный режим | Если хотя бы одна таблица в модели содержит множество секций, то необходимо выбрать одну из них в качестве источника для запросов в режиме DirectQuery. Если не назначить секцию по умолчанию, то в качестве секции DirectQuery будет использована первая созданная секция. Установите параметры обработки для всех секций, кроме секции DirectQuery. Обычно раздел DirectQuery никогда не обрабатывается, поскольку данные передаются от реляционного источника данных. Дополнительные сведения см. в разделе Секции и режим DirectQuery (табличные службы SSAS). |
Шаг 6. Настройка олицетворения
Олицетворение поддерживается только для моделей DirectQuery. Параметры олицетворенияопределяют учетные данные, которые будут использоваться при просмотре данных, полученных от заданного источника данных SQL Server.
Только DirectQuery | Для свойства Параметры олицетворения укажите учетную запись, которая будет использоваться для подключения к источнику данных SQL Server. Если вы используете значение ImpersonateCurrentUser, экземпляр служб Analysis Services, на котором размещена модель, передаст учетные данные текущего пользователя модели в базу данных SQL Server. |
Гибридный режим | Задайте для свойства Параметры олицетворения учетную запись, которая будет использоваться для доступа к источнику данных SQL Server. Этот параметр не отражается на учетных данных, которые используются для обработки кэша моделью. |
Шаг 7. Развертывание модели
Когда вы будете готовы к развертыванию модели, откройте меню Проект в Visual Studio и выберите Свойства. Установите свойство QueryMode в одно из значений, описанных в следующей таблице.
Дополнительные сведения см. в разделе Развертывание из SQL Server Data Tools (табличные службы SSAS).
Только DirectQuery | DirectQueryOnly Поскольку был задан режим только Direct Query, метаданные модели развертываются на сервере, однако сама модель не обрабатывается. Обратите внимание, что после развертывания модели кэш, используемый базой данных рабочей области, не удаляется автоматически. Если вы не хотите, чтобы пользователи имели доступ к кэшированным данным, можно очистить кэш, использовавшийся во время разработки. Дополнительные сведения см. в разделе Очистка кэшей служб Analysis Services. |
Гибридный режим | DirectQuery и в памяти Использование в памяти с DirectQuery Оба этих значения позволяют при необходимости использовать либо кэш, либо реляционный источник данных. Этот порядок определяет, какой источник данных используется по умолчанию при ответе на запросы к модели. В гибридном режиме кэш должен обрабатываться одновременно с развертыванием метаданных модели на сервере. Этот параметр можно изменить после развертывания. |
Шаг 8. Проверка развертывания модели
В SQL Server Management Studio откройте экземпляр служб Analysis Services, где была развернута модель. Щелкните правой кнопкой мыши имя базы данных и выберите пункт Свойства.
Значение свойства DirectQueryModeбыло установлено при определении свойств развертывания.
Значение свойства Сведения об олицетворении источника данныхбыло установлено при определении параметров олицетворения пользователя. Дополнительные сведения см. в разделе Настройка параметров олицетворения (SSAS — многомерная версия).
Эти свойства можно изменить в любое время после развертывания модели.
Сравнение параметров DirectQuery
Только DirectQuery
Этот режим предпочтителен, когда требуется гарантировать использование единственного источника данных либо когда объем данных слишком велик для размещения в памяти. При работе с очень большим источником реляционных данных во время разработки такую модель можно создать на основе некоторого подмножества данных. При развертывании модели в режиме «только DirectQuery» можно изменить определение источника данных так, чтобы он включал все требуемые данные.
Этот режим также предпочтителен, если вы хотите использовать возможности безопасности, предоставляемые в реляционном источнике данных и предназначенные для контроля доступа пользователей к данным. С помощью кэшированных табличных моделей можно также использовать роли служб Analysis Services для управления доступом к данным, но данные, хранящиеся в кэше, также должны быть защищены. Этот режим необходимо использовать всегда, когда в контексте безопасности не допускается кэширование данных.
В следующей таблице показаны возможные результаты развертывания с использованием режима «только DirectQuery».
DirectQuery без кэширования | Данные в кэш не загружаются. Модель не может быть обработана. Запросы к модели могут выполняться только с помощью клиентов, поддерживающих запросы DAX. Результаты запроса всегда возвращаются из исходного источника данных. DirectQueryMode = On QueryMode = Directquery |
DirectQuery с запросами только данных кэша | Развертывание завершается с ошибкой. Такая конфигурация не поддерживается. DirectQueryMode = On QueryMode = В памяти |
Гибридный режим
Развертывание модели в гибридом режиме обладает многочисленными преимуществами: при необходимости из источника данных SQL Server можно получить самые последние данные, однако сохраненный кэш позволяет работать с данными в памяти, обеспечивая более высокую производительность при разработке отчетов или проверке модели.
Гибридный режим DirectQuery также полезен при работе с очень большой моделью. Во время обработки можно переключить модель в режим DirectQuery, чтобы пользователи не получали устаревшие данные и имели доступ к модели при обработке кэша. Пользователи могут почувствовать небольшое снижение в производительности, однако они смогут получать самые последние данные напрямую из реляционного хранилища.
В следующей таблице выполняется сравнение результатов развертывания с каждым из сочетаний параметров, использованных в режиме DirectQuery.
Задано предпочтение гибридного режима с кэшем | Модель может обрабатываться, а данные могут загружаться в кэш. В запросах по умолчанию используется кэш. Если клиенту необходимо использовать источник DirectQuery, в строку подключения необходимо вставить параметр. DirectQueryMode = On QueryMode = В памяти с DirectQuery |
Задано предпочтение гибридного режима с DirectQuery | Модель обрабатывается, а данные могут загружаться в кэш. Тем не менее запросы используют DirectQuery по умолчанию. Если клиенту необходимо использовать кэшированные данные, в строку подключения необходимо вставить параметр. Если таблицы в модели секционированы, главная секция кэша данных также устанавливается в режим В памяти с DirectQuery. DirectQueryMode = On QueryMode = DirectQuery с использованием в памяти |
См. также:
Режим DirectQuery (табличные службы SSAS)
Доступ к данным табличной модели