[アップデート] Amazon Redshift の COPY コマンド用の再利用可能なテンプレートを試してみました

[アップデート] Amazon Redshift の COPY コマンド用の再利用可能なテンプレートを試してみました

2026.05.02

クラウド事業本部の石川です。Amazon Redshift で、COPY コマンドのパラメータを再利用可能なテンプレートとして保存・参照できる機能がリリースされました。頻繁に使う COPY 操作のパラメータをテンプレートとして一元管理できるようになり、データ取り込み運用の標準化と保守性の向上が期待できます。

https://aws.amazon.com/about-aws/whats-new/2026/03/amazon-redshift-reusable-templates-copy/

COPY コマンド用の再利用可能なテンプレートとは

Amazon Redshift が COPY コマンド用のテンプレート機能をサポートしました。よく使う COPY パラメータを「テンプレート」というデータベースオブジェクトとして保存しておき、COPY 実行時にそのテンプレートを参照することで、毎回同じパラメータを書き並べる必要がなくなります。

  • COPY コマンド用の再利用可能なテンプレートを作成できる
  • ファイルタイプやデータソースごとに標準化された設定をテンプレートとしてチーム間で共有できる
  • テンプレートを更新すれば、それを参照する以降の COPY 操作に自動的に反映される
  • COPY コマンド側でテンプレートと同じパラメータを指定した場合は、コマンド側の値が優先される(オーバーライド可能)
  • マニフェストファイルの指定はテンプレートには含められない

COPY コマンド用のテンプレートを試す

テンプレートの作成

CREATE TEMPLATE ステートメントで COPY コマンド用のテンプレートを作成します。テンプレートには、データフォーマット、ファイル圧縮、データ変換、データロード操作に関するパラメータを定義できます。

下記のテンプレート例は、TSV(タブ区切りファイル)のテンプレートの例です。

CREATE TEMPLATE public.tsv_template
FOR COPY
AS
FORMAT AS CSV
DELIMITER '\t'
IGNOREHEADER 1
ENCODING UTF8
TIMEFORMAT 'auto'
DATEFORMAT 'auto'
EMPTYASNULL
BLANKSASNULL
MAXERROR 0;

amazon-redshift-reusable-templates-copy-2

テンプレートを用いてデータをロードする

USING TEMPLATE 句でテンプレートを参照します。テンプレート内のパラメータが COPY コマンドに適用されます。指定するのは以下の通りです。

  • ロード先テーブル: "public"."orders_jp"
  • データフォルダ: 's3://<my_bucket>/orders_jp/'
  • IAMロール: default
  • テンプレート名: public.tsv_template
COPY "public"."orders_jp"
FROM 's3://<my_bucket>/orders_jp/'
IAM_ROLE default
USING TEMPLATE public.tsv_template;

amazon-redshift-reusable-templates-copy-3

テンプレートのパラメータのオーバーライド

テンプレートを一部だけ変更することも可能です。その場合は、値を追加 もしくは 上書きします。先ほど作成したテンプレートは、TSV(タブ区切りファイル)のテンプレートですが、CSV(カンマ区切りファイル)に変更したい場合は、DELIMITERを変更するだけで済みます。

COPY "public"."orders_jp"
FROM 's3://<my_bucket>/orders_jp/'
DELIMITER ','
IAM_ROLE default
USING TEMPLATE public.tsv_template;

上の例では、COPY コマンドで指定した DELIMITER ',' が使用されます。

amazon-redshift-reusable-templates-copy-4

テンプレートの更新と削除

テンプレートの更新には ALTER TEMPLATEを使用します。

ALTER TEMPLATE public.tsv_template SET DELIMITER TO ',';

削除には DROP TEMPLATE を使用します。

DROP TEMPLATE public.tsv_template;

必要な権限

COPY コマンドでテンプレートを利用するには、COPY 実行に必要な権限に加えて、以下のいずれかが必要です。

  • テンプレートに対する USAGE 権限と、テンプレートが格納されているスキーマに対する USAGE 権限
  • スーパーユーザー権限

ベストプラクティス

  • 目的が分かるテンプレート命名規則を採用する
  • GRANT USAGE FOR TEMPLATES で最小権限の原則に基づいたアクセス制御を行う
  • sys_redshift_template システムビューでテンプレートの使用状況を追跡する
  • テンプレートの所有者や変更履歴をドキュメント化する
  • 開発環境では寛容なエラー閾値(例: MAXERROR 1000)、本番環境では厳格な値(例: MAXERROR 0)といった、環境別のテンプレートを用意する

最後に

Amazon Redshift で COPY コマンド用の再利用可能なテンプレートが利用できるようになりました。COPY パラメータをテンプレートとして一元管理することで、データ取り込み操作の標準化、保守性の向上、入力ミスの低減が見込めます。

複数チームで繰り返し COPY 操作を実行している環境で、運用負荷の軽減やパラメータの一貫性確保に課題を感じている方は、テンプレート機能の導入を検討してみてはいかがでしょうか。

合わせて読みたい

https://aws.amazon.com/jp/blogs/big-data/standardize-amazon-redshift-operations-using-templates/

この記事をシェアする

関連記事