Назад | Перейти на главную страницу

Unix и запуск заданий служб интеграции MS SQL Server

У нас есть сервер AIX, который содержит много данных, и раз в ночь мы выгружаем эти данные в CSV для импорта в MS SQL Server для отчетов.

На данный момент каждый шаг в процессе не связан и запускается просто по времени - например, процессы дампа CSV в системе AIX запускаются в 3 часа ночи и занимают x $ времени для завершения, а затем MS SQL Server Работа служб интеграции начинается в 6 утра.

Таким образом, в процесс встроено много «мертвого времени», которое было бы неплохо устранить.

Итак, есть ли способ запустить задание служб интеграции SQL Server из системы Unix?

ты можешь использовать freeTDS (или jTDS если вы используете то, что называется java), чтобы предоставить вам доступ к вашему серверу sql из Unix / AIX.

Из FreeTDS вы можете аутентифицироваться на SQL Server и запускать любой T-SQL, который вам нравится. Вы можете "запустить" задание SSIS, вызвав sproc sp_start_job который находится в MSDB и запускает задание по имени или job_id.

Пакеты SSIS запускаются с помощью dtexec. Поэтому, если у вас уже есть способ запустить процесс на стороне Windows из AIX, вы можете использовать тот же метод для запуска пакета SSIS на SQL Server.

SSIS не поддерживает этот тип функций напрямую в базовой системе. Два варианта:

  • Создайте опросчик на стороне Windows, который ищет какой-либо признак того, что задание unix завершено, а затем запускает пакет SSIS. Если для создания файла требуется некоторое время, вам следует обернуть задание чем-то, что обновляет метку времени в другом файле, когда оно завершено. Другой вариант - заставить опросчик сканировать каталог и искать новые управляющие файлы, которые создаются при каждом запуске. Если опросчик запускается (скажем) каждые 5 минут с полуночи до 4 утра, он выполнит задание с минимальной задержкой. Если он не берет файл в разумном окне, вы можете предположить, что что-то пошло не так во время его создания, и не выполнить задачу.

  • Купите кроссплатформенный инструмент планирования, например Control-M. Этот тип системы предназначен для координации этих работ на нескольких платформах. Однако корпоративные планировщики довольно дороги и, вероятно, излишни для одной работы. Вы можете рассмотреть этот тип системы, если у вас возникает много подобных проблем, но для одной задачи это действительно раскол грецкого ореха кувалдой.

Самый простой способ - опрос. Если вы добавите элемент «csv files exists, import csv files» в начало вашего пакета ssis, вы можете запланировать запуск пакета каждые четверть часа.