Табличка SSAS - развертывание на нескольких моделях - PullRequest
0 голосов
/ 28 февраля 2019

Мы пытаемся создать табличную модель SSAS для 60-100 клиентов.

В отношении создания единой модели и обработки всех данных клиента отнимает много времени (до тех пор, пока обновление данных не будет завершено, каждому клиенту нужно ждать последних данных - мы обновляем каждые 15 минут).

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

Мне было интересно, кто-нибудь может предложить лучший способ развертывания изменений / дополнений в разных табличных моделях.

1 Ответ

0 голосов
/ 28 февраля 2019

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

  • Когдаподключившись к SSAS в SSMS, щелкните модель правой кнопкой мыши, выберите Script > База данных сценариев как > Создать или заменить на > и выберите место для вывода сценария.Обратите внимание, что в не будет включен пароль в целях безопасности, и его необходимо будет обработать соответствующим образом.
  • Создайте пакет служб SSIS.В пакете создайте диспетчер соединений с сервером анализа.Это может быть установлено на сервере, где в настоящее время существует эта табличная база данных.
  • Создайте строковую переменную и оставьте пустым.Это можно назвать DeployServerName.Также создайте объектную переменную, которая может называться ServerList.В диспетчере соединений SSAS перейдите в окно свойств (нажмите F4), затем выберите многоточие Expressions.В появившемся окне выберите свойство ServerName и задайте в качестве выражения переменную DeployServerName.Это позволит изменить имя сервера на несколько серверов для развертывания.
  • Добавить задачу «Выполнение SQL» в поток данных.Это где вы получите имена серверов для развертывания.Если они хранятся в главной / справочной таблице, просто выберите столбец, содержащий имя сервера, в качестве оператора SQL.Вы также можете добавить имена конечных серверов по отдельности, выбрав UNION простой текст.

Пример

SELECT 'Server1' AS DestServer
UNION
SELECT 'Server2' AS DestServer
  • В задаче «Выполнение SQL» установите для свойства ResultSet значение Full Result Set.Затем на панели «Набор результатов» введите 0 для Result Name и переменную объекта, созданную ранее (ServerList) для поля Variable Name.
  • Затем создайте цикл по каждому элементу после задачи «Выполнение SQL» и подключитесьэто к нему.Используйте тип перечислителя Foreach ADO Enumerator и выберите переменную объекта (ServerList) в качестве ADO Object Source Variable.На панели «Сопоставление переменных» поместите строковую переменную (DeployServerName) в индекс 0.
  • Внутри цикла Foreach добавьте задачу DDL служб Analysis Services.Используйте диспетчер соединений SSAS, созданный вами как соединение, прямой ввод как SourceType и введите сценарий, сгенерированный в SSMS, как оператор SourceDirect.
...