Автоматическое обновление табличной модели SSAS на уровне таблицы

Я пытаюсь автоматизировать обновление табличной модели SSAS. Требование: в зависимости от выбранных таблиц модель будет обновляться только для этих таблиц. Я ищу способ динамически создать сценарий для обработки только выбранных таблиц на первом этапе задания агента SQL и передать этот динамически построенный сценарий на следующий этап, который будет этапом команды служб SQL Server Analysis Services. Или, может быть, выполнить сценарий, созданный на шаге 1. Но я не уверен, как этого добиться. Пожалуйста, дайте мне знать возможные способы.


person Rashmi Shivanna    schedule 12.09.2018    source источник


Ответы (1)


Рассматривали ли вы возможность сделать это через SSIS и запустить пакет из агента SQL? Вы можете использовать задачу обработки служб Analysis Services и выбрать таблицы, которые хотите обработать. Если вы хотите сделать это более динамично, следующие пункты описывают, как это можно сделать.

  • Имена таблиц, которые вы хотите обработать, будут храниться в объектной переменной. Один из вариантов - запросить у DMV SSAS из задачи «Выполнение SQL» имена тех таблиц, которые будут обрабатываться, и вывести эти имена в объектную переменную. Вам нужно будет настроить набор результатов для использования полного набора результатов и сопоставить объектную переменную на панели набора результатов. Следующая команда вернет уникальные имена таблиц (фильтр table_type используется для удаления результатов с префиксом $) select table_name from $SYSTEM.DBSCHEMA_TABLES where table_catalog = 'YourTabularModel' and table_schema = 'Model' and table_type = 'SYSTEM TABLE'
  • Если вы будете использовать DMV SSAS, создайте диспетчер соединений OLE DB, используя Microsoft OLE DB Provider для Analysis Services 13.0 в качестве поставщика. Обязательно установите исходный каталог для модели SSAS с таблицами, которые будут обрабатываться.
  • Добавьте цикл перечислителя ADO по каждому элементу, который будет использовать объектную переменную в качестве исходной переменной на панели «Коллекция». На панели «Сопоставления переменных» добавьте переменную для хранения имени таблицы.
  • Внутри цикла по каждому элементу добавьте задачу выполнения DDL служб Analysis Services.
  • Создайте строковую переменную с выражением, которое является командой процесса SSAS для таблицы. В выражении замените поле table (при условии, что вы используете TMSL) переменной, содержащей имя таблицы.
person userfl89    schedule 13.09.2018