SSIS 2012 Ftp 並行/非同步多文件下載
對於任何一種情況,任何幫助都將不勝感激。
如果
是否有任何設置可用於從 FTP 伺服器並行下載多個文件?
別的
如果不是,我想我會通過 C# 腳本源組件使用:List Directory Contents with FTP、FtpWebRequest Class和C# Multiple Download from FTP using parallel task - Duplicate Download issue開始。
其他詳情
- SSIS 2012 保存到本地 Windows Server 2012 目錄
- 100 + ascii 文本文件
- 6 個同級文件夾
- 文件名約定:
AAAA_YYYYMMDD.txt
- 文件大小範圍為 5KB - 15MB
- 目前一次只能下載一個文件
- 在此階段通過 SSDT 每天手動執行一次(仍在原型設計/開發中,所以還沒有在生產系統上,但我計劃讓 Sql Agent 將來執行這些包)
- 將文本文件數據載入到數據倉庫暫存表中的下游包(如果使用腳本任務,那麼響應流緩衝區可能會進入多播,其中 1 個緩衝區流寫入文本文件,而另一個緩衝區流寫入暫存表?)
本地人,沒有。
哎呀,我幾乎沒有將開箱即用的 FTP 組件歸類為真正的組件。它僅針對最基本的操作滿足 FTP 的一些技術規範。我通常
ftp.exe
使用參數文件從 Execute Process Task 呼叫,或者只是使用 .NET 庫來執行此操作。我從來沒有想過並行化 FTP 下載,但是這個關於 SO 的問題看起來像是一個有效的實現https://stackoverflow.com/questions/18117536/c-sharp-multiple-download-from-ftp-using-parallel-task -重複下載問題
根據您設計事物的方式,我得出的結論是,讓包下載文件然後對它可能找到的文件執行操作是一種痛苦的模式。相反,我發現通過分離這些活動並假設消費包僅在數據已經存在時才會執行,我得到了更好的結果。這使我能夠對獲取數據的方式進行徹底的更改(我們從 SFTP 轉到 FTP,沒有更改核心包),而無需驗證/重新測試數據的處理。對我來說可能不是問題,但簡化了我的合規生活。
上述的最終結果是我的代理工作從“執行包”變為“執行 ftp 包”、“測試存在”、“執行處理包”或“警告未找到文件”。模組化為我們提供了更大的靈活性,並且讓更多的人來解決這個問題,而不是一個人在一個單一的包上工作。