Импорт файлов в SQL Server Integration Packages
В прошлом посте мы научились применять условное форматирование к отчёту в SSRS.
Этот пост будет из совершенно другой области - мы научимся полезному приёму для массовой обработки файлов в SSIS: поиску файлов по маске в названии (регулярному выражению).
Этот пост будет из совершенно другой области - мы научимся полезному приёму для массовой обработки файлов в SSIS: поиску файлов по маске в названии (регулярному выражению).
Задача импорта файла по маске
Задача массовой обработки файлов по маске возникает в ситуации, когда в директории находятся разнородные файлы, а обработать в пакете Integration Services нужно какое-то их подмножество - например, только файлы ".xlsx", или файлы, название которых начинается с "log_".
Элемент "For each"
Для выделения подмножества файлов по маске нам потребуется элемент "Foreach loop container" на вкладке "SSIS Toolbox".
В настройках элемента указываем директорию, где хранятся файлы ("Directory") и задаём маску файла (параметр "File Spec").
Буферная переменная
На вкладке "Variable Mappings" укажем название буферной переменной - в неё будут сохранятся имена файлов, которые попали под условие, заданной маской.
Именно через буферную переменную имя файла передаётся во внутренние объекты контейнера - в нашем случае это процедура копирования файлов.
Для копирования выбранных файлов воспользуемся элементом "FileSystem Task"
Тут нам и пригодится буферная переменная - в ней хранится полный путь к текущему файлу из коллекции - остаётся указать только путь назначения и выбранный файл будет скопирован.
Процедура копирования будет проведена для всей файлов, попавших в коллекцию (которая задаётся маской).
Внутри контейнера можно производить любые другие процедуры с файлами - переименование, загрузку во внешние таблицы БД и т.д.
Комментариев нет:
Отправить комментарий