COPY JOB - Amazon Redshift

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

COPY JOB

このコマンドの使用の詳細については、「S3 イベント統合を作成して Amazon S3 バケットからファイルを自動的にコピーする」を参照してください。

データをテーブルにロードする COPY コマンドを管理します。COPY JOB コマンドは COPY コマンドの拡張であり、Amazon S3 バケットからのデータロードを自動化します。COPY ジョブを作成すると、Amazon Redshift は、指定されたパスに新しい Amazon S3 ファイルが作成されたことを検出し、ユーザーの操作なしで自動的にロードします。データをロードするときには、元の COPY コマンドで使用されているのと同じパラメータが使用されます。Amazon Redshift は、ロードされたファイルを (ファイル名に基づいて) 追跡し、ロードされたのが 1 回だけであることを確認します。

注記

使用方法、パラメータ、権限など、COPY コマンドの詳細については、「COPY」を参照してください。

必要なアクセス許可

COPY JOB コマンドを使用するには、COPY を使用するために必要なすべてのアクセス許可に加えて、以下のいずれかのアクセス許可が必要です。

  • スーパーユーザー

  • 以下のすべて:

    • COPY 先のデータベース内の COPY JOBS に関連する CREATE、ALTER、または DROP の範囲指定されたアクセス許可。

    • COPY 先のスキーマの USAGE アクセス許可、または COPY 先のデータベース内のスキーマに対する USAGE の範囲指定されたアクセス許可。

    • COPY 先のテーブルの INSERT アクセス許可、または COPY 先のスキーマまたはデータベース内のテーブルに対する INSERT の範囲指定されたアクセス許可。

COPY コマンドで指定した IAM ロールにはロードするデータへのアクセス権限が必要です。詳細については、「COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可」を参照してください。

構文

コピージョブを作成します。COPY コマンドのパラメータは、コピージョブと共に保存されます。

トランザクションブロックの範囲内で COPY JOB CREATE を実行することはできません。

COPY copy-command JOB CREATE job-name [AUTO ON | OFF]

コピージョブの設定を変更します。

COPY JOB ALTER job-name [AUTO ON | OFF]

コピージョブを実行します。保存されている COPY コマンドパラメータが使用されます。

COPY JOB RUN job-name

すべてのコピージョブを一覧表示します。

COPY JOB LIST

コピージョブの詳細を表示します。

COPY JOB SHOW job-name

コピージョブを削除します。

トランザクションブロックの範囲内で COPY JOB DROP を実行することはできません。

COPY JOB DROP job-name

パラメータ

copy-command

Amazon S3 から Amazon Redshift にデータをロードする COPY コマンドです。この句には、Amazon S3 バケット、ターゲットテーブル、IAM ロール、およびデータをロードするときに使用されるその他のパラメータを定義する COPY パラメータが含まれています。Amazon S3 データロードの COPY コマンドパラメータは、以下を除いてすべてサポートされています。

  • COPY JOB は、COPY コマンドで指定されたフォルダー内の既存のファイルを取り込みません。COPY JOB 作成タイムスタンプ以降に作成されたファイルのみが取り込まれます。

  • COPY コマンドに対しては、MAXERROR オプションまたは IGNOREALLERRORS オプションを指定することはできません。

  • マニフェストファイルは指定できません。COPY JOB では、新しく作成されたファイルをモニタリングするために、指定された Amazon S3 ロケーションが必要です。

  • アクセスキーやシークレットキーなどの認可タイプで COPY コマンドを指定することはできません。この IAM_ROLE パラメータを認可に使用する COPY コマンドのみがサポートされます。詳細については、「認可パラメータ」を参照してください。

  • COPY JOB は、クラスターに関連付けられたデフォルトの IAM ロールをサポートしていません。COPY コマンド内で IAM_ROLE を指定する必要があります。

詳細については、「Amazon S3 からの COPY」を参照してください。

job-name

COPY ジョブを参照するために使用されるジョブの名前です。[job-name] にハイフン (‐) を含めることはできません。

[AUTO ON | OFF]

Amazon S3 データが Amazon Redshift テーブルに自動的にロードされるかどうかを示す句です。

  • ON の場合、Amazon Redshift はソースの Amazon S3 パスで新しく作成されたファイルをモニタリングし、見つかった場合は、ジョブ定義の COPY パラメータを使用して COPY コマンドが実行されます。これがデフォルトです。

  • OFF の場合、Amazon Redshift は COPY JOB を自動的に実行しません。

使用に関する注意事項

COPY コマンドのオプションは実行時まで検証されません。たとえば、無効な IAM_ROLE や Amazon S3 データソースがあると、COPY JOB の開始時にランタイムエラーが発生します。

クラスターが一時停止している場合、COPY JOB は実行されません。

ロードされた COPY コマンドファイルとロードエラーをクエリするには「STL_LOAD_COMMITSSTL_LOAD_ERRORSSTL_LOADERROR_DETAIL」を参照してください。詳細については、「データが正しくロードされたことを確認する」を参照してください。

次の例では、Amazon S3 バケットからデータをロードするための COPY JOB を作成しています。

COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' JOB CREATE my_copy_job_name AUTO ON;