Amazon EMR からの COPY - Amazon Redshift

Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事を参照してください。

Amazon EMR からの COPY

COPY コマンドを使用することで、クラスターの Hadoop Distributed File System (HDFS) に、固定幅ファイル、文字区切りファイル、CSV ファイル、JSON 形式ファイル、または Avro ファイルでテキストファイルを書き込むように設定された Amazon EMR クラスターから、データを並列にロードできます。

Syntax

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 データファイル名には、ワイルドカード文字のアスタリスク (*) および疑問符 (?) を含めることはできません。

注記

Amazon EMR クラスターは、COPY 操作が完了するまで稼動している必要があります。COPY 操作が完了する前に HDFS データファイルのいずれかが変更または削除されると、予期しない結果を招いたり、COPY 操作が失敗したりする可能性があります。

ファイル名の引数には、ロードする複数のファイルを指定する hdfs_file_path 引数の一部としてアスタリスク (*) および疑問符 (?) を使用できます。たとえば、'emr://j-SAMPLE2B500FC/myoutput/part*'であれば、part-0000part-0001などのファイルが識別されます。ファイルパスにワイルドカード文字が含まれていない場合は、文字列リテラルとして処理されます。COPY コマンドでフォルダー名のみを指定した場合には、フォルダー内のすべてのファイルがロードされます。

重要

ワイルドカード文字を使用する場合、またはフォルダ名のみを使用する場合は、不要なファイルがロードされないことを確認してください。例えば、一部のプロセスでは出力フォルダにログファイルが書き込まれることがあります。

詳細については、「Amazon EMR からのデータのロード」を参照してください。

authorization

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