Как искать в проектах служб SSIS ссылки на указанные c таблицы? - PullRequest
1 голос
/ 06 марта 2020

Ситуация

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

Сложность

Это очень много времени для меня определить, какие проекты служб SSIS заполняют определенные таблицы. У нас много пакетов служб SSIS.

Вопрос

Можно ли написать запрос для поиска в таблице служб Integration Services (проекты служб SSIS) ссылки на таблицу?

Наши проекты служб SSIS хранятся в отдельной базе данных в папке, которая называется Integration Services Catalog. Пакеты не хранятся в системной базе данных msdb.

SELECT
    f.NAME AS FolderName
    ,sib.description
    ,sib.name as ProjectName
    ,sib.created_time
    ,sib.project_id
  FROM [SSISDB].[internal].[projects] SIB
  INNER JOIN internal.folders F ON F.folder_id = SIB.folder_id

Я нашел информацию о проектах, но не вижу ни XML, ни кода для поиска ссылок на таблицы. Кроме того, я знаю, что могу искать в проекте SSIS с помощью Powershell, но, похоже, все они хранятся на сервере, и я не знаю, как найти файлы для поиска из PowerShell.

Мы используем SQL Сервер 2016.

1 Ответ

0 голосов
/ 07 марта 2020

Ссылки на таблицы будут находиться внутри XML пакета служб SSIS. Если вы щелкнете правой кнопкой мыши на .dtsx и выберете edit с помощью notepad ++, это откроет xml и позволит вам увидеть, что вызывается. Быстрый способ сделать это, чтобы go в поле поиска windows, введите «Параметры индексации», добавьте папку, в которой хранятся ваши решения SSIS, go в дополнительные параметры выберите «Типы файлов» и измените тип индекса «Свойства индекса и параметры файла».

enter image description here

Теперь, когда вы go в папку и введите имя таблицы ошибочный столбец, где появятся затронутые пакеты. Единственная вещь с этим методом, если у вас есть некоторые EXECUTE SQL ЗАДАЧИ, которые просто EXE C usp ... xyz. Он не найдет имя таблицы. Затем вам нужно будет проиндексировать. sql сохраненных хранимых процедур, чтобы увидеть, есть ли ссылка на это имя таблицы. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...