Передача файлов SFTP в SSIS - PullRequest
       84

Передача файлов SFTP в SSIS

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

Я прочитал целую кучу разных форумов на эту тему, но, похоже, не могу заставить мой работать.Мне нужно перенести файл с локального компьютера на SFTP-сервер с помощью служб SSIS.Вот что я уже сделал:

  • Я скачал WinSCP
  • Создал сохраненное соединение в WinSCP (TS_NEW)
  • Откройте это сохраненное соединение (
  • Скопировано WinSCP.exe и WinSCP.com в папку проекта служб SSIS
  • Создан текстовый файл с приведенным ниже сценарием.
option batch on
option confirm off
open sftp://TS_NEW.com
cd C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File
option transfer binary
put FCT_DC_MONTH.csv  /export/xvdb1/skynet/File_Test
exit

В SSIS мой редактор задач «Выполнение процесса» имеет следующее:

  • Исполняемый файл: C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\WinSCP.com

  • Аргументы: /script=C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt

Как мне проверить это в командной строке и что я делаю не так?

1 Ответ

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

Вы действительно не объяснили нам, что (если что-то) идет не так.

В общем, проблемы, подобные этой, описаны в WinSCP FAQ Мой скрипт работает нормально при выполнениивручную, но не работает или зависает при запуске Windows Scheduler, SSIS или другой службой автоматизации.Что я делаю не так?

См. Также статью WinSCP Задача SFTP для SSIS / SSDT .

Хотя, если быть более конкретным, есть три ясных вопроса, см. ниже.


Вы создали сохраненный сайт WinSCP в интерактивном сеансе Windows.По умолчанию WinSCP сохраняет информацию о сайте в куст HKCU реестра Windows.Ваш сеанс служб SSIS не имеет доступа к этому кусту.

В идеале вы должны создать автономный сценарий, который не зависит от сохраненной конфигурации.Это, в частности, означает, что ваша open команда должна содержать учетные данные и отпечаток хоста, например:

open sftp://username:password@TS_NEW.com -hostkey=...

WinSCP GUI может сгенерировать такой скрипт для вас.


Другая проблема заключается в том, что ваша команда cd должна быть действительно lcd, а путь должен быть заключен в кавычки, поскольку он содержит пробелы.

lcd "C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File"

Аналогично, путь к сценарию в аргументах WinSCP должен быть заключен в кавычки, так как он содержит пробелы:

/script="C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt"

Также следует добавить /log switch для аргументов WinSCP, чтобы включить ведение журнала сеанса.Это очень поможет вам с отладкой.Сгенерированный скрипт (выше) тоже это показывает.

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