使用資訊清單指定資料檔案 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用資訊清單指定資料檔案

您可以使用資訊清單來確保 COPY 命令會載入所有必要檔案 (且只有必要檔案) 進行資料載入。您可以使用資訊清單從不同儲存貯體載入檔案,或載入不共用相同字首的檔案。不要為 COPY 命令提供物件路徑,而是提供明確列出要載入之檔案的 JSON 格式文字檔案名稱。資訊清單檔案中的 URL 必須指定儲存貯體名稱以及檔案的完整物件路徑,而不只是字首。

如需資訊清單檔案的詳細資訊,請參閱使用資訊清單來指定資料檔案 COPY 範例。

下列範例顯示的 JSON 會從不同的儲存貯體載入檔案,並具有開頭為日期戳記的檔案名稱。

{ "entries": [ {"url":"s3://mybucket-alpha/2013-10-04-custdata", "mandatory":true}, {"url":"s3://mybucket-alpha/2013-10-05-custdata", "mandatory":true}, {"url":"s3://mybucket-beta/2013-10-04-custdata", "mandatory":true}, {"url":"s3://mybucket-beta/2013-10-05-custdata", "mandatory":true} ] }

選用的 mandatory 旗標會指定找不到檔案時 COPY 是否應該傳回錯誤。mandatory 的預設值為 false。不考慮任何必要設定,只要找不到檔案,COPY 就會終止。

下列範例會執行 COPY 命令並搭配上一個範例中的資訊清單,名為 cust.manifest

copy customer from 's3://mybucket/cust.manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;

使用 UNLOAD 建立的資訊清單

UNLOAD 操作使用 MANIFEST 參數建立的資訊清單可能會有 COPY 操作不需要的索引鍵。例如,下列項目UNLOAD清單包含meta索引鍵,針對 Amazon Redshift Spectrum 外部資料表,還有載入資料檔案時,都需要此索引鍵。ORC或者Parquet檔案格式。meta 索引鍵包含的 content_length 索引鍵具有的值為檔案的實際大小 (以位元組為單位)。COPY 操作僅需要 url 索引鍵和選用的 mandatory 索引鍵。

{ "entries": [ {"url":"s3://mybucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }}, {"url":"s3://mybucket/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }} ] }

如需資訊清單檔案的詳細資訊,請參閱Example: COPY from Amazon S3 using a manifest