Поделиться через


Сценарии развертывания DirectQuery (табличные службы SSAS)

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

Проектирование и этапы развертывания

Сравнение конфигураций DirectQuery

Проектирование и этапы развертывания

Шаг 1. Создайте решение

Вне зависимости от используемого режима необходимо ознакомиться с описанием ограничений по данным, используемым в моделях DirectQuery. Одним из таких ограничений, например, является то, что все данные, используемые в модели и отчетах, должны извлекаться из одного источника реляционных данных SQL Server или Хранилище SQL Server PDW. Дополнительные сведения см. в разделе Режим DirectQuery (табличные службы SSAS).

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

  • Вычисляемые столбцы не поддерживаются.

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

    Внимание!

Шаг 2. Включите режим DirectQuery в конструкторе моделей

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

Щелкните правой кнопкой узел Model.bim в обозревателе решений и установите для свойства Режим DirectQuery значение On.

Можно включить режим DirectQuery в любое время. Однако, чтобы не создавать несовместимые с режимом DirectQuery столбцы или формулы, рекомендуется включить режим DirectQuery с самого начала.

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

Шаг 3. Устранение ошибок при проверке

При возникновении ошибок проверки при включении DirectQuery или при добавлении новых данных или формул откройте Список ошибок Visual Studio и выполните необходимые в этом случае действия.

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

  • Удалите вычисляемые столбцы. Если вычисляемый столбец требуется для конкретной меры, всегда можно создать его при помощи Конструктор реляционных запросов (SSAS), доступного в мастере импорта таблиц.

  • Измените или удалите формулы, несовместимые с режимом DirectQuery. Если для вычисления требуется какая-либо функция, попробуйте заменить ее эквивалентом из Transact SQL.

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

Шаг 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

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

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

Гибридный режим

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

Этот параметр не отражается на учетных данных, которые используются для обработки кэша моделью.

Шаг 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 = В памяти

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

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

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

    Задано предпочтение гибридного режима с кэшем

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

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

    • DirectQueryMode = On

    • QueryMode = В памяти с DirectQuery

    Задано предпочтение гибридного режима с DirectQuery

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

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

    Если таблицы в модели секционированы, главная секция кэша данных также устанавливается в режим В памяти с DirectQuery.

    • DirectQueryMode = On

    • QueryMode = DirectQuery и в памяти

См. также

Основные понятия

Режим DirectQuery (табличные службы SSAS)

Доступ к данным табличной модели