Автоматизируйте обновление табличной модели SSAS на уровне таблицы - PullRequest
0 голосов
/ 12 сентября 2018

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

1 Ответ

0 голосов
/ 13 сентября 2018

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

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