Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事
テンプレートを使用したコピー
Redshift テンプレートを COPY コマンドとともに使用して、コマンド構文を簡素化し、データロードオペレーション全体の一貫性を確保できます。同じ形式パラメータを繰り返し指定する代わりに、テンプレートで 1 回定義し、COPY コマンドでそのテンプレートを参照します。テンプレートを使用する場合、COPY コマンドはテンプレートのパラメータとコマンドで直接指定されたパラメータを結合します。テンプレートとコマンドの両方に同じパラメータが出現した場合、コマンドパラメータが優先されます。詳細については、「CREATE TEMPLATE」を参照してください。
COPY コマンドのテンプレートは、以下を使用して作成できます。
サポートされているパラメータの完全なリストについては、「COPY」コマンドを参照してください。
必要なアクセス許可
COPY コマンドでテンプレートを使用するには、次のものが必要です。
-
COPY コマンドを実行するために必要なすべてのアクセス許可 (「必要なアクセス許可」を参照)
-
次のいずれかのテンプレートアクセス許可。
-
スーパーユーザー権限
-
テンプレートに対する USAGE 権限と、テンプレートを含むスキーマに対する USAGE 権限
-
構文
COPY target_table FROM 's3://...' authorization [ option, ...] USING TEMPLATE [database_name.][schema_name.]template_name;
パラメータ
- database_name
-
(オプション) テンプレートが存在するデータベースの名前。指定しない場合は、現在のデータベースが使用されます。
- schema_name
-
(オプション) テンプレートが存在するスキーマの名前。指定しない場合は、現在の検索パスでテンプレートが検索されます。
- template_name
-
COPY で使用するテンプレートの名前。
使用に関する注意事項
コマンド固有のパラメータ (送信元、送信先、認証) は COPY コマンドで指定する必要があります。
テンプレートに COPY コマンドのマニフェストファイルの仕様を含めることはできません。
例
次の例は、テンプレートを作成し、COPY コマンドで使用する方法を示しています。
CREATE TEMPLATE public.test_template FOR COPY AS CSV DELIMITER '|' IGNOREHEADER 1 MAXERROR 100; COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' USING TEMPLATE public.test_template;
テンプレートとコマンドの両方にパラメータが存在する場合、コマンドパラメータが優先されます。この例では、テンプレート public.test_template に DELIMITER '|' が含まれているが、COPY コマンドで DELIMITER ',' が指定されている場合、テンプレートのパイプ区切り文字 (|) の代わりに、コマンドのカンマ区切り文字 (,) が使用されます。
COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' DELIMITER ',' USING TEMPLATE public.test_template;