s3の多数のファイルからRedshiftにデータをコピーしようとしています。これらのファイルを含むs3バケットへの読み取り専用アクセス権があります。それらを効率的にコピーするために、コピーしなければならない各ファイルへのリンクを含むマニフェストファイルを作成しました。ここでs3からRedshiftへのデータコピー:マニフェストがダウンロードするファイルと異なるバケットにあります
Bucket 1:
- file1.gz
- file2.gz
- ...
Bucket 2:
- manifest
私はバケツ2でマニフェストを使用して、バケット1からのデータをコピーしようとしたコマンドです:
-- Load data from s3
copy data_feed_eval from 's3://bucket-2/data_files._manifest'
CREDENTIALS 'aws_access_key_id=bucket_1_key;aws_secret_access_key=bucket_1_secret'
manifest
csv gzip delimiter ',' dateformat 'YYYY-MM-DD' timeformat 'YYYY-MM-DD HH:MI:SS'
maxerror 1000 TRUNCATECOLUMNS;
このコマンドを実行するときしかし、私は次のエラーを取得する:
09:45:32 [COPY - 0 rows, 7.576 secs] [Code: 500310, SQL State: XX000] [Amazon](500310) Invalid operation: Problem reading manifest file - S3ServiceException:Access Denied,Status 403,Error AccessDenied,Rid 901E02533CC5010D,ExtRid tEvf/TVfZzPfSNAFa8iTYjTBjvaHnMMPmuwss58SwopY/sZSkhUBe3yMGHTDyA0yDhDCD7ybX9gl45pV/eQ=,CanRetry 1
Details:
-----------------------------------------------
error: Problem reading manifest file - S3ServiceException:Access Denied,Status 403,Error AccessDenied,Rid 901E02533CC5010D,ExtRid tEvf/TVfZzPfSNAFa8iTYjTBjvaHnMMPmuwss58SwopY/sZSkhUBe3yMGHTDyA0yDhDCD7ybX9gl45pV/eQ=,CanRetry 1
code: 8001
context: s3://bucket-2/data_files._manifest
query: 2611231
location: s3_utility.cpp:284
process: padbmaster [pid=10330]
-----------------------------------------------;
ここで私はCOPYコマンドでbucket_1の認証情報を渡していると思います。複数のバケット(実際のファイルとbucket_1、マニフェストを持つbucket_2)の資格情報をCOPYコマンドに渡すことは可能ですか? bucket_1への書き込みアクセス権がないと仮定して、これにどのようにアプローチすればよいですか?