使用清单指定数据文件 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用清单指定数据文件

您可以对数据加载使用清单以确保 COPY 命令加载所有需要的文件,且仅加载需要的文件。您可以使用清单来加载不同桶或文件中的未共享相同前缀的文件。您可以提供明确列出要加载的文件的 JSON 格式的文本文件的名称,而不必提供 COPY 命令的对象路径。清单中的 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。如果未找到任何文件,则无论 mandatory 设置如何,COPY 都将终止。

以下示例将使用前一个示例中名为 cust.manifest 的清单来运行 COPY 命令。

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 外部表所必需的,并用于加载 ORCParquet 文件格式的数据文件。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