从 Amazon EMR 执行 COPY 操作 - Amazon Redshift

从 Amazon EMR 执行 COPY 操作

您可以使用 COPY 命令从一个具有如下配置的 Amazon EMR 集群并行加载数据:将文本文件以固定宽度文件、字符分隔文件、CSV 文件、JSON 格式文件或 Avro 文件的形式写入到集群的 Hadoop Distributed File System (HDFS)。

语法

FROM 'emr://emr_cluster_id/hdfs_filepath' authorization [ optional_parameters ]

示例

以下示例从一个 Amazon EMR 集群加载数据。

copy sales from 'emr://j-SAMPLE2B500FC/myoutput/part-*' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

参数

FROM

要加载的数据的源。

'emr://emr_cluster_id/hdfs_file_path'

Amazon EMR 集群的唯一标识符和引用 COPY 命令的数据文件的 HDFS 文件路径。HDFS 数据文件名不能包含通配符星号 (*) 和问号 (?)。

注意

在 COPY 操作完成前,Amazon EMR 集群必须持续运行。如果在 COPY 操作完成前更改或删除了任何 HDFS 数据文件,则您可能得到意外的结果,或者 COPY 操作可能会失败。

您可以使用通配符星号 (*) 和问号 (?) 作为 hdfs_file_path 参数的一部分来指定要加载的多个文件。例如,'emr://j-SAMPLE2B500FC/myoutput/part*' 标识文件 part-0000part-0001,等等。如果文件路径不包含通配符,则将其视为文字字符串。如果您仅指定一个文件夹名称,则 COPY 将尝试加载该文件夹中的所有文件。

重要

如果您使用通配符或仅使用文件夹名称,请确认将不会加载不需要的文件。例如,某些流程可能会将日志文件写入到输出文件夹。

有关更多信息,请参阅 从 Amazon EMR 中加载数据

授权

COPY 命令需要授权才能访问其他 AWS 资源(包括 Amazon S3 、Amazon EMR、Amazon DynamoDB 和 Amazon EC2)中的数据。您可通过引用附加到您的集群的 AWS Identity and Access Management (IAM) 角色(基于角色的访问控制)或者通过为用户提供访问凭证(基于密钥的访问控制)来提供授权。为了提高安全性和灵活性,我们建议使用基于 IAM 角色的访问控制。有关更多信息,请参阅 授权参数

支持的参数

对于从 Amazon EMR 执行 COPY 的操作,还可以指定以下参数:

不支持的参数

对于从 Amazon EMR 执行 COPY 的操作,不能使用以下参数:

  • ENCRYPTED

  • MANIFEST

  • REGION

  • READRATIO

  • SSH