■ はじめに
Redshift で、S3上のデータを COPYコマンドを使って ロードしているコードがあったので、メモしておく。 なお、COPYコマンドの使用例は、以下の関連記事を参照のこと。
Hiveテーブルデータ を Redshift に移行するには
https://dk521123.hatenablog.com/entry/2021/09/01/200818
目次
【1】COPYコマンド 【2】構文 【3】データ形式 【4】その他の事項 1)COMPUPDATE - 自動圧縮ON/OFF 2)STATUPDATE - 統計情報自動更新ON/OFF 【5】サンプル 【6】トラブル
【1】COPYコマンド
* COPY コマンドを使用して、 以下のデータをRedshiftのテーブルに並列でロードする [1] Amazon S3 [2] Amazon EMR クラスタ [3] Amazon DynamoDB [4] リモートホストから SSH 接続
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/t_Loading_tables_with_the_COPY_command.html
より抜粋 (i)注記 大量のデータをロードする場合、COPY コマンドを使うことをお勧めします。 個々に INSERT ステートメントを使ってテーブルにデータを入力すると 著しく時間がかかる場合があります。
公式サイト
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_COPY.html
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/t_loading-tables-from-s3.html
【2】構文
* 主に、以下の 3 つのパラメータで COPY コマンドを実行する。 [1] テーブル名 (<table_name>) [2] データソース (<data_source>) [3] データにアクセスするための許可 (<authorization>)
構文
COPY <table_name>
FROM <data_source>
<authorization>
;
【3】データ形式
* CSV、JSON、GZIPなどがある。 * 詳細は、以下の公式サイトを参照のこと。
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/copy-parameters-data-format.html
【4】その他のロード操作
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/copy-parameters-data-load.html
1)COMPUPDATE - 自動圧縮ON/OFF
* 自動圧縮(COMP; compression)して更新(UPDATE)するかどうか
2)STATUPDATE - 統計情報自動更新ON/OFF
* 統計情報(STAT; statistics)を自動的に更新(UPDATE)するかどうか
【5】サンプル
-- パイプ区切りの GZIP ファイルから sample_table テーブルをロードする COPY sample_table FROM 's3://your-s3-bucket/xxxx/sample_db/sample_table' iam_role 'arn:aws:iam::XXXXXXXXXXX:role/for-redshift-role' GZIP DELIMITER '|' COMPUPDATE OFF STATUPDATE OFF ;
【6】トラブル
* 以下の公式サイトを参照のこと。
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/t_Troubleshooting_load_errors.html
S3ServiceException エラー
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/s3serviceexception-error.html
参考文献
https://www.task-notes.com/entry/20150907/1441594800
関連記事
Amazon Redshift ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/04/07/124519
Amazon Redshift ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/22/002139
Amazon Redshift ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/08/31/171754
Hiveテーブルデータ を Redshift に移行するには
https://dk521123.hatenablog.com/entry/2021/09/01/200818
Hiveテーブルデータ を Redshift に移行時のCOPYコマンドエラー
https://dk521123.hatenablog.com/entry/2021/09/03/134359
COPY コマンド ~ COPY FROM / TO ~
https://dk521123.hatenablog.com/entry/2020/06/11/112650