从 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-0000
、part-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