設定複製活動中的 SFTP
本文概述如何使用資料管線中的複製活動,從 SFTP 複製資料。
支援的格式
SFTP 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。
支援的設定
如需複製活動下每個索引標籤的組態,請分別移至下列各節。
一般
請參閱 [一般] 設定指引,以設定 [一般] 設定索引標籤。
來源
移至 [來源] 索引標籤以設定複製活動來源。 如需詳細的組態,請參閱下列內容。
以下是三個必要的屬性:
資料存放區類型:選取 [外部]。
連線:從連線清單中選取 SFTP 連線。 如果不存在連線,請選取 [新增],以建立新的 SFTP 連線。
檔案路徑類型:根據您要讀取檔案的方式,從 [檔案路徑]、[萬用字元檔案路徑] 和 [檔案清單] 中選取。
檔案路徑:如果您選擇此類型,請指定來源檔案路徑。 您可以選取 [瀏覽] 以選取來源檔案,或手動輸入您的檔案路徑。
萬用字元檔案路徑:如果您選擇此類型,請指定萬用字元路徑來篩選來源資料夾或檔案。
允許的萬用字元為
*
(符合零或多個字元) 和?
(符合零或單一字元)。 如果資料夾名稱具有萬用字元或逸出字元^
,則請使用此逸出字元予以逸出。 如需更多範例,請參閱資料夾和檔案篩選器範例。萬用字元資料夾路徑:指定具有萬用字元的資料夾路徑,以篩選來源資料夾。
萬用字元檔案名稱:指定所指定資料夾路徑/萬用字元資料夾路徑下具有萬用字元的檔案名稱,以篩選來源檔案。
檔案清單:如果您選取此類型,請指定 [資料夾路徑] 和 [檔案清單的路徑] 以指示複製指定的檔案集。 指向含有所要複製檔案清單的文字檔 (一行一個檔案)。 如需更多範例,請移至檔案清單範例。
資料夾路徑:指定來源資料夾的路徑。 這是必需的。
檔案清單的路徑:指定文字檔的路徑,其中包含您要複製的檔案清單。
檔案格式:從下拉式清單中選取套用的檔案格式。 選取 [設定] 以設定檔案格式。 如需不同檔案格式的設定,請參閱<支援格式>的文章以取得詳細資訊。
在 [進階] 下,可以指定下列欄位:
依上次修改日期篩選:根據您指定的上次修改日期篩選檔案。 當您將檔案路徑類型設定為檔案清單時,此屬性不適用。
- 開始時間 (UTC):如果檔案上次修改時間大於或等於設定的時間,則會選取這些檔案。
- 結束時間 (UTC):如果檔案上次修改時間小於設定的時間,則會選取這些檔案。
Start time (UTC) 具有 datetime 值,但 結束時間 (UTC) 為 NULL 時,表示選取那些最後修改屬性大於或等於該 datetime 值的檔案。 結束時間 (UTC) 具有日期時間值,但 開始時間 (UTC) 為 NULL 時,表示上次修改屬性小於選取日期時間值的檔案。 屬性可以是 NULL,這表示不會將任何檔案屬性篩選套用至數據。
停用區塊化:區塊化旨在最佳化效能,並發生在下方。 此選項可讓您停用每個檔案內的區塊化。 從 SFTP 複製資料時,服務會先嘗試取得檔案長度,然後將檔案分成多個部分,接著平行讀取。 指定您的 SFTP 伺服器是否支援取得檔案長度,或需要從特定位移讀取。 預設為未選取。
啟用數據分割探索:指定是否從檔案路徑剖析分割區,並將其新增為額外的源數據行。 預設為未選取,且當您使用二進位檔案格式時將不受支援。
分割區根路徑:啟用分割區探索時,指定絕對根路徑,將已分割的資料夾當成資料行進行讀取。
如果未指定,則預設為- 當您使用檔案路徑或來源上的檔案清單時,分割根路徑是您設定的路徑。
- 當您使用通配符資料夾篩選時,分割區根路徑是第一個通配符之前的子路徑。
例如,假設您將路徑設定為
root/folder/year=2020/month=08/day=27
:- 如果您將分割區根路徑指定為
root/folder/year=2020
,除了檔案內的數據行之外,複製活動還會分別產生兩個數據行月和日,其值為 “08” 和 “27”。 - 如果未指定分割區根路徑,則不會產生任何額外的數據行。
並行連線數上限:此屬性指出在活動執行期間建立至資料存放區的並行連線數上限。 僅在想要限制並行連線時,才需要指定值。
其他數據行:新增額外的數據行來儲存源檔案的相對路徑或靜態值。 後者支援運算式。 如需詳細資訊,請移至 在複製時新增額外欄位。
Destination
移至 [目的地] 索引標籤以設定複製活動目的地。 如需詳細的組態,請參閱下列內容。
- 資料存放區類型:選取 [外部]。
- 連線:從連線清單中選取 SFTP 連線。 如果不存在連線,請選取 [新增],以建立新的 SFTP 連線。
- 檔案路徑:指定要將資料寫入的檔案路徑。 您可以選取 [瀏覽] 以選取來源檔案,或手動輸入您的檔案路徑。
- 檔案格式:從下拉式清單中選取套用的檔案格式。 選取 [設定] 以設定檔案格式。 如需不同檔案格式的設定,請參閱<支援格式>的文章以取得詳細資訊。
在 [進階] 下,可以指定下列欄位:
複製行為:當來源是來自檔案型資料存放區的檔案時,會指定複製行為。 從下列屬性中選擇。
- 扁平化階層:來自來源資料夾的所有檔案都在目標資料夾的第一層中。 目標檔案會有自動產生的名稱。
- 合併檔案:將來源資料夾的所有檔案合併為一個檔案。 若已指定檔案名稱,合併檔案的名稱會是指定的名稱。 否則,它是自動產生的檔名。
- 保留階層 (預設):保留目標資料夾中的檔案階層。 來源檔案到來源資料夾的相對路徑,與目標檔案到目標資料夾的相對路徑相同。
- 新增動態內容:選取此選項以使用動態內容指定複製行為。
並行連線數上限:在活動執行期間建立至資料存放區的並行連線上限。 僅在想要限制並行連線時,才需要指定值。
作業逾時 (分鐘):指定將每個區塊寫入 SFTP 伺服器的逾時。 預設值為 60 分鐘。
使用暫存檔案上傳:指出要上傳至暫存檔案並重新命名,還是直接寫入目標資料夾或檔案位置。 根據預設,系統會選取它,服務會先寫入暫存盤,然後在上傳完成時重新命名它們。
此順序有助於 (1) 避免在有其他程序寫入到相同檔案的情況下而發生可能會導致檔案損毀的衝突,(2) 確保傳輸期間有原始版本的檔案存在。 如果 SFTP 伺服器不支援重新命名作業,請停用此選項,並確定您不會同時寫入目標檔案。
提示
如果您在將資料寫入到 SFTP 時收到「UserErrorSftpPathNotFound」、「UserErrorSftpPermissionDenied」或「SftpOperationFail」錯誤,而且您使用的 SFTP 使用者的確具有適當權限時,請檢查您的 SFTP 伺服器支援檔案重新命名作業是否可正常運作。 如果不行,請停用 [以暫存檔案上傳] 選項,然後再試一次。
對應
如需 對應 索引標籤設置,請參閱 在 [對應] 索引標籤下設定您的對應。如果您選擇 [二進位] 作為檔案格式,則不支援對應。
設定
對於 [設定] 索引標籤組態,請參閱<在 [設定] 索引標籤下進行其他設定>。
資料表摘要
下表包含有關 SFTP 中複製活動的詳細資訊。
來源
名稱 | 描述: | 值 | 必要 | JSON 指令碼屬性 |
---|---|---|---|---|
資料存放區類型 | 您的資料存放區類型。 | 外部 | Yes | / |
[連接] | 您與來源資料存放區的 SFTP 連線。 | <您的 SFTP 連線> | Yes | connection |
檔案路徑類型 | 用於取得來源資料的檔案路徑類型。 | • 檔案路徑 • 萬用字元檔案路徑 • 檔案清單 |
Yes | / |
檔案路徑 | 來源檔案的路徑。 | <檔案路徑> | Yes | fileName folderPath |
萬用字元路徑 | 來源檔案的萬用字元路徑。 | <您的萬用字元檔案路徑> | 是,表示萬用字元檔案名稱 | wildcardFolderPath wildcardFileName |
資料夾路徑 | 來源資料夾的路徑。 | <您的資料夾路徑> | Yes | folderPath |
檔案清單的路徑 | 表示要複製指定的檔案集。 指向含有所要複製檔案清單的文字檔 (一行一個檔案)。 | <檔案清單路徑> | No | fileListPath |
檔案格式 | 來源資料的檔案格式。 如需不同檔案格式的資訊,請參閱支援格式的文章以取得詳細資訊。 | / | Yes | / |
依上次修改日期篩選 | 在 [開始時間,結束時間] 範圍內具有上次修改時間的檔案會篩選為進一步處理。 時間會以 yyyy-mm-ddThh:mm:ss.fffZ 格式套用至UTC時區。 您可以略過這些屬性,這表示不會套用任何檔案屬性篩選。 當您將檔案路徑類型設定為檔案清單時,此屬性不適用。 |
Datetime | No | modifiedDatetimeStart modifiedDatetimeEnd |
停用區塊化 | 區塊化旨在最佳化效能,並發生在下方。 此選項可讓您停用每個檔案內的區塊化。 從 SFTP 複製資料時,服務會先嘗試取得檔案長度,然後將檔案分成多個部分,接著平行讀取。 指定您的 SFTP 伺服器是否支援取得檔案長度,或需要從特定位移讀取。 | 已選取或未選取 (預設值) | No | disableChunking: true 或 false (預設值) |
啟用分割探索 | 指出是否要從檔案路徑剖析分割區,並將其新增為額外的源數據行。 | 已選取或未選取 (預設值) | No | enablePartitionDiscovery: true 或 false (預設值) |
分割根路徑 | 絕對分割根路徑,用於將已分割的資料夾當成資料行進行讀取。 啟用分割探索時進行指定。 | <分割根路徑> | No | partitionRootPath |
並行連線數上限 | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 |
<並行連線數上限> (整數) |
No | maxConcurrentConnections |
其他資料行 | 新增額外的數據行來儲存來源檔案的相對路徑或靜態值。 後者支援運算式。 如需詳細資訊,請移至 在複製期間新增額外欄 | • 名稱 • 值 |
No | additionalColumns: • 名稱 • 值 |
Destination
名稱 | 描述: | 值 | 必要 | JSON 指令碼屬性 |
---|---|---|---|---|
資料存放區類型 | 您的資料存放區類型。 | 外部 | Yes | / |
[連接] | 您與來源 SFTP 的連線。 | <您的連線> | Yes | connection |
檔案路徑 | 您的目的地資料的檔案路徑。 | 目的地的檔案路徑 | Yes | folderPath fileName |
檔案格式 | 來源資料的檔案格式。 如需不同檔案格式的資訊,請參閱支援格式的文章以取得詳細資訊。 | / | Yes | / |
複製行為 | 當來源是來自檔案型資料存放區的檔案時,會定義複製行為。 | • 扁平化階層 • 合併檔案 • 保留階層 |
No | copyBehavior: - FlattenHierarchy - MergeFiles - PreserveHierarchy |
並行連線數上限 | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | <並行連線數上限> | No | maxConcurrentConnections |
作業逾時 (分鐘) | 將每個區塊寫入 SFTP 伺服器的逾時。 |
<您的作業逾時> 預設值是 60。 |
No | operationTimeout |
使用暫存檔案上傳 | 指出是否要上傳暫存盤並重新命名。 如果您的 SFTP 伺服器不支援重新命名作業,請停用此選項。 | 已選取 (預設值) 或未選取 | No | useTempFileRename: true (預設值) 或 false |