在複製活動中設定 Amazon S3
本文概述如何在資料管線中使用複製活動,從 Amazon S3 複製資料。
所需的權限
若要從 Amazon S3 複製資料,請確定您已獲授與下列 Amazon S3 物件作業的權限︰s3:GetObject
和 s3:GetObjectVersion
。
此外,測試連線和從根目錄瀏覽等作業需要 s3:ListAllMyBuckets
和 s3:ListBucket
/s3:GetBucketLocation
權限。
如需 Amazon S3 權限的完整清單,請參閱 AWS 網站上的<在原則中指定權限>。
支援的格式
Amazon S3 支援下列檔案格式: 請參閱每篇文章,以取得以格式為基礎的設定。
支援的設定
如需複製活動下每個索引標籤的組態,請分別移至下列各節。
一般
請參閱<[一般] 設定>指導,來設定 [一般] 設定索引標籤。
來源
在複製活動的 [來源] 索引標籤下,Amazon S3 支援下列屬性。
以下是必要的屬性:
資料存放區類型:選取 [外部]。
連線:從連線清單中選取 Amazon S3 連線。 如果不存在連線,請選取 [新增],以建立新的 Amazon S3 連線。
連線類型:針對連線類型選取 [Amazon S3]。
檔案路徑類型:您可以選擇 [檔案路徑]、[前置詞]、[萬用字元檔案路徑] 或 [檔案清單] 作為檔案路徑類型。 每個設定的組態如下:
檔案路徑:如果選擇此類型,可以從指定的貯體或指定的貯體和資料夾路徑複製資料。
前置詞:如果選擇此類型,請指定 [貯體] 和 [前置詞]。
貯體:指定 S3 貯體名稱。 此為必要。
前置詞:在指定貯體指定 S3 金鑰名稱前置詞,用於篩選來源 S3 檔案。 已選取名稱開頭為
bucket/this_prefix
的 S3 金鑰。 其利用 S3 的服務端篩選,提供比萬用字元篩選更好的效能。使用前置詞,並選擇使用保留階層複製至檔案型目的地時,請注意:將保留前置詞中最後一個 "/" 後的子路徑。 例如:您有來源
bucket/folder/subfolder/file.txt
且將前置詞設為folder/sub
,保留的檔案路徑則為subfolder/file.txt
。
萬用字元檔案路徑:如果您選擇此類型,請指定 [貯體] 和 [萬用字元路徑]。
貯體:指定 S3 貯體名稱。 此為必要。
萬用字元路徑:指定給定貯體下含有萬用字元的資料夾或檔案路徑,用於篩選來源資料夾或檔案。
允許的萬用字元為:
*
(符合零或多個字元) 和?
(符合零或單一字元)。 若資料夾名稱具有萬用字元或逸出字元^
,則請使用此逸出字元進行逸出。 如需更多範例,請參閱資料夾和檔案篩選範例。 萬用字元資料夾路徑:指定貯體下具有萬用字元的資料夾路徑,用於篩選來源資料夾。萬用字元檔案名稱:指定貯體和資料夾路徑 (或萬用字元資料夾路徑) 下具有萬用字元的檔案名稱,用於篩選來源檔案。
檔案清單:如果您選擇此類型,請指定 [資料夾路徑] 和 [檔案清單的路徑] 以指示複製指定的檔案集。 指向含有要複製檔案清單的文字檔 (一行一個檔案),這是所設定路徑的相對路徑。 如需更多範例,請參閱<檔案清單範例>。
- 資料夾路徑:指定所指定貯體下資料夾的路徑。 此為必要。
- 檔案清單的路徑:指定文字檔 (其中包含要複製的檔案清單) 的路徑。
遞迴:指定是否從子資料夾或只從指定的資料夾,以遞迴方式讀取資料。 選取 [遞迴] 且目的地為檔案型存放區時,不會在目的地複製或建立空的資料夾或子資料夾。 預設為選取此屬性,而且設定 [檔案清單的路徑] 時,此屬性不適用。
檔案格式:從下拉式清單中選取套用的檔案格式。 選取 [設定] 以設定檔案格式。 對於不同檔案格式的設定,請參閱<支援的格式>中的文章來取得詳細資訊。
在 [進階] 下,可以指定下列欄位:
依上次修改日期篩選:根據您指定的上次修改日期篩選檔案。 將檔案路徑類型設定為「檔案清單」時,此屬性不適用。
- 開始時間 (UTC):如果檔案上次修改時間大於或等於設定的時間,則會選取這些檔案。
- 結束時間 (UTC):如果檔案上次修改時間小於設定的時間,則會選取這些檔案。
[開始時間 (UTC)] 具有日期時間值,但 [結束時間 (UTC)] 為 NULL 時,這表示系統將會選取上次修改時間屬性大於或等於此日期時間值的檔案。 [結束時間 (UTC)] 具有日期時間值,但 [開始時間 (UTC)] 為 NULL 時,這表示系統會選取上次修改時間屬性小於此日期時間值的檔案。 屬性可以是 NULL,這表示不會將任何檔案屬性篩選條件套用至資料。
啟用分割探索:指定是否要從檔案路徑剖析分割,並將分割新增為其他來源資料行。 預設未選取此項,且使用二進位檔案格式時不支援此項。
分割根路徑:啟用分割探索時,請指定絕對根路徑,將已分割的資料夾作為資料行進行讀取。
如果未指定,則根據預設,
- 使用檔案路徑或來源上的檔案清單時,分割根路徑是您所設定的路徑。
- 使用萬用字元資料夾篩選條件時,分割根路徑是第一個萬用字元前面的子路徑。
- 當您使用前置詞時,分割根路徑是最後一個 "/" 前的子路徑。
例如,假設將路徑設定為
root/folder/year=2020/month=08/day=27
:- 如果將分割根路徑指定為
root/folder/year=2020
,則除了檔案內的資料行之外,複製活動還會分別產生值為 "08" 和 "27" 的兩個月份和日資料行。 - 如果未指定分割根路徑,則不會產生額外的資料行。
並行連線數上限:在活動執行期間,與資料存放區建立的並行連線數上限。 僅在想要限制並行連線時,才需要指定值。
其他資料行:新增其他資料行來儲存來源檔案的相對路徑或靜態值。 後者支援運算式。
Destination
在複製活動的 [目的地] 索引標籤下,Amazon S3 支援下列屬性。
以下是必要的屬性:
- 資料存放區類型:選取 [外部]。
- 連線:從連線清單中選取 Amazon S3 連線。 如果不存在連線,請選取 [新增],以建立新的 Amazon S3 連線。
- 連線類型:針對連線類型選取 [Amazon S3]。
- 檔案路徑:將資料複製到指定的貯體或指定的貯體和資料夾路徑。
- 檔案格式:從下拉式清單中選取套用的檔案格式。 選取 [設定] 以設定檔案格式。 對於不同檔案格式的設定,請參閱<支援的格式>中的文章來取得詳細資訊。
在 [進階] 下,可以指定下列欄位:
複製行為:定義來源是來自檔案型資料存放區的檔案時的複製行為。 可以從下拉式清單中選擇行為。
- 扁平化階層:來自來源資料夾的所有檔案都在目的地資料夾的第一層中。 目的地檔案具有自動產生的名稱。
- 合併檔案:將來源資料夾的所有檔案合併為一個檔案。 若已指定檔案名稱,合併檔案的名稱會是指定的名稱。 否則,就會是自動產生的檔案名稱。
- 保留階層:保留目標資料夾中的檔案階層。 來源檔案到來源資料夾的相對路徑,與目標檔案到目標資料夾的相對路徑相同。
並行連線數上限:此屬性表示在活動執行期間,與資料存放區建立的並行連線數上限。 僅在想要限制並行連線時,才需要指定值。
對應
如需 [對應] 索引標籤組態,請移至在 [對應] 索引標籤下設定對應。如果您選擇 [二進位] 作為檔案格式,則不支援對應。
設定
對於 [設定] 索引標籤組態,請參閱<在 [設定] 索引標籤下進行其他設定>。
資料表摘要
下列資料表包含有關 Amazon S3 中複製活動的詳細資訊。
來源資訊
名稱 | 描述: | 值 | 必要 | JSON 指令碼屬性 |
---|---|---|---|---|
資料存放區類型 | 資料存放區類型。 | 外部 | 必要 | / |
[連接] | 與來源資料存放區的連線。 | <Amazon S3 連線> | 必要 | connection |
連線類型 | 選取連線類型。 | Amazon S3 | 必要 | / |
檔案路徑類型 | 用於取得來源資料的檔案路徑類型。 | • 檔案路徑 • 前置詞 • 萬用字元檔案路徑 • 檔案清單 |
必要 | / |
針對 [檔案路徑] | ||||
貯體 | S3 貯體名稱。 | <您的貯體名稱> | 必要 | bucketName |
目錄 | 指定貯體下的資料夾路徑。 | <您的資料夾名稱> | 不必要 | folderpath |
檔案名稱 | 指定貯體和資料夾路徑下的檔案名稱。 | <您的檔案名稱> | 不必要 | fileName |
針對 [前置詞] | ||||
貯體 | S3 貯體名稱。 | <您的貯體名稱> | 必要 | bucketName |
Prefix | 指定貯體下的 S3 金鑰前置詞,可篩選來源 S3 檔案。 | <您的前置詞> | 不必要 | prefix |
針對 [萬用字元檔案路徑] | ||||
貯體 | S3 貯體名稱。 | <您的貯體名稱> | 必要 | bucketName |
萬用字元資料夾路徑 | 所指定貯體下含有萬用字元的資料夾路徑,可用來篩選來源資料夾。 | <含有萬用字元的資料夾路徑> | 不必要 | wildcardFolderPath |
萬用字元檔案名稱 | 在所指定貯體和資料夾路徑 (或萬用字元資料夾路徑) 下具有萬用字元的檔案名稱,用來篩選來源檔案。 | <含有萬用字元的檔案名稱> | 必要 | wildcardFileName |
針對 [檔案清單] | ||||
貯體 | S3 貯體名稱。 | <您的貯體名稱> | 必要 | bucketName |
目錄 | 指定貯體下的資料夾路徑。 | <您的資料夾名稱> | 不必要 | folderpath |
檔案清單的路徑 | 表示要複製指定的檔案集。 指向含有要複製檔案清單的文字檔 (一行一個檔案)。 | <檔案清單路徑> | 不必要 | fileListPath |
檔案格式 | 來源資料的檔案格式。 如需有關不同檔案格式的資訊,請參閱<支援的格式>中的文章取得詳細資訊。 | / | 必要 | / |
遞迴 | 指出是否從子資料夾、或只有從指定的資料夾,以遞迴方式讀取資料。 請注意,當選取 [遞迴] 且目的地是檔案型存放區時,就不會在目的地上複製或建立空的資料夾或子資料夾。 設定 [檔案清單的路徑] 時,此屬性不適用。 | 已選取 (預設值) 或未選取 | 不必要 | 遞迴 |
依上次修改日期篩選 | 將篩選上次修改時間在 [開始時間,結束時間) 範圍內的檔案,以便進一步處理。 此時間會以 yyyy-mm-ddThh:mm:ss.fffZ 格式套用至 UTC 時區。 可以略過這些屬性,這表示不會套用任何檔案屬性篩選條件。 將檔案路徑類型設定為「檔案清單」時,此屬性不適用。 |
Datetime | 不必要 | modifiedDatetimeStart modifiedDatetimeEnd |
啟用分割探索 | 指出是否要從檔案路徑剖析分割,並將其新增為其他來源資料行。 | 已選取或未選取 (預設值) | 不必要 | enablePartitionDiscovery: true 或 false (預設值) |
分割根路徑 | 啟用分割區探索時,請指定絕對根路徑,將已分割的資料夾作為資料行進行讀取。 | <您的分割根路徑> | 不必要 | partitionRootPath |
並行連線數上限 | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | <並行連線數上限> | 不必要 | maxConcurrentConnections |
其他資料行 | 新增其他資料行來儲存來源檔案的相對路徑或靜態值。 後者支援運算式。 | • 名稱 • 值 |
不必要 | additionalColumns: • 名稱 • 值 |
目的地資訊
名稱 | 描述: | 值 | 必要 | JSON 指令碼屬性 |
---|---|---|---|---|
資料存放區類型 | 資料存放區類型。 | 外部 | 必要 | / |
[連接] | 與目的地資料存放區的連線。 | <Amazon S3 連線> | 必要 | connection |
連線類型 | 選取連線類型。 | Amazon S3 | 必要 | / |
檔案路徑 | 目的地檔案的資料夾/檔案路徑。 | <資料夾/檔案路徑> | 必要 | / |
貯體 | S3 貯體名稱。 | <您的貯體名稱> | 必要 | bucketName |
目錄 | 指定貯體下的資料夾路徑。 | <您的資料夾名稱> | 不必要 | folderpath |
檔案名稱 | 指定貯體和資料夾路徑下的檔案名稱。 | <您的檔案名稱> | 不必要 | fileName |
複製行為 | 定義來源是來自檔案型資料存放區的檔案時的複製行為。 | • 扁平化階層 • 合併檔案 • 保留階層 |
不必要 | copyBehavior: • FlattenHierarchy • MergeFiles • PreserveHierarchy |
並行連線數上限 | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | <並行連線數上限> | 不必要 | maxConcurrentConnections |