s3의 많은 파일에서 Redshift로 데이터를 복사하려고합니다. 이 파일이 들어있는 s3 버킷에 대한 읽기 전용 액세스 권한이 있습니다. 효율적으로 복사하기 위해 필자는 복사해야하는 각 파일에 대한 링크가 포함 된 매니페스트 파일을 만들었습니다. 이 명령을 실행할 때s3에서 Redshift로 데이터 복사 : 매니페스트가 다운로드해야하는 파일과 다른 버킷에 있음
-- 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;
그러나, 나는 다음과 같은 오류가 발생합니다 : :
여기Bucket 1:
- file1.gz
- file2.gz
- ...
Bucket 2:
- manifest
내가 버킷 2 매니페스트를 사용하여 버킷 1에서 데이터를 복사하려고 한 명령입니다
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 자격 증명을 전달한다는 것입니다. COPY 명령에 여러 버킷 (실제 파일이있는 bucket_1 및 매니페스트가있는 bucket_2)에 대한 자격 증명을 전달할 수 있습니까? bucket_1에 대한 쓰기 권한이 없다고 가정하면 어떻게해야합니까?