RedshiftでCopyコマンドを使ってS3から取り込む際に気を付けること
S3を参照できるようにするための設定
/* hogeテーブルにCSVファイルを取り込むとき */ copy hoge from 's3://<取り込み元のCSVパス(ファイル名は含めない)>/' iam_role 'arn:aws:iam::123456789012:role/RedshiftS3CopyRole' delimiter ',';
フォルダ、ファイルあり/なしによる取り込み可否
1. フォルダあり、ファイルあり
/* 取り込まれる */ INFO: Load into table 'hoge' completed, 10 record(s) loaded successfully. COPY
2. フォルダあり、ファイルなし
/* 0件コピーとなり、エラーとならない */ INFO: Load into table 'hoge' completed, 0 record(s) loaded successfully. COPY
3. フォルダなし、ファイルなし
/* フォルダが見つからなくてエラーとなる */ ERROR: The specified S3 prefix 'hoge-dir/' does not exist DETAIL: ----------------------------------------------- error: The specified S3 prefix 'hoge-dir/' does not exist code: 8001 context: query: 875 location: s3_utility.cpp:658 process: padbmaster [pid=2227] -----------------------------------------------
というわけで、ファイルはなくとも、フォルダは必要なようです。