매니페스트를 사용하여 데이터 파일 지정 - Amazon Redshift

매니페스트를 사용하여 데이터 파일 지정

매니페스트를 사용하여 COPY 명령이 데이터 로드에 필요한 파일만 모두 로드하도록 할 수 있습니다. 매니페스트를 이용하면 다른 버킷, 다른 리전이나 접두사가 다른 파일에서 파일을 불러올 수 있습니다. COPY 명령에 대해 객체 경로를 제공하는 대신 로드할 파일을 명시적으로 나열하는 JSON 형식 텍스트 파일의 이름을 제공합니다. 매니페스트의 URL은 접두사만이 아니라 파일의 버킷 이름과 전체 객체 경로를 지정해야 합니다.

매니페스트 파일에 대한 자세한 내용은 매니페스트를 사용한 데이터 파일 지정을 참조하십시오.

다음 예는 버킷이 서로 다르고 날짜 스탬프로 시작되는 파일 이름을 가진 파일을 로드하는 JSON을 보여 줍니다.

{ "entries": [ {"url":"s3://DOC-EXAMPLE-BUCKET1/2013-10-04-custdata", "mandatory":true}, {"url":"s3://DOC-EXAMPLE-BUCKET1/2013-10-05-custdata", "mandatory":true}, {"url":"s3://DOC-EXAMPLE-BUCKET2/2013-10-04-custdata", "mandatory":true}, {"url":"s3://DOC-EXAMPLE-BUCKET2/2013-10-05-custdata", "mandatory":true} ] }

선택 사항인 mandatory 플래그는 파일이 없을 때 의 오류 반환 여부를 결정합니다. mandatory의 기본값은 false입니다. 필수 설정에 상관없이 파일이 발견되지 않으면 COPY는 종료됩니다.

다음은 앞 예에서 사용한 cust.manifest 매니페스트를 이용해 명령을 실행하는 예입니다.

COPY customer FROM 's3://DOC-EXAMPLE-BUCKET/cust.manifest' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' MANIFEST;

UNLOAD에 의해 생성된 매니페스트 사용

MANIFEST 파라미터를 사용하여 UNLOAD 작업에 의해 생성된 매니페스트에는 COPY 작업에 필요하지 않은 키가 포함될 수 있습니다. 예를 들어 다음 UNLOAD매니페스트는 Amazon Redshift Spectrum 외부 테이블에 필요하고, ORC 또는 Parquet 파일 형식의 데이터 파일을 로드하는 데 필요한 meta 키를 포함합니다. meta 키에는 파일의 실제 크기(바이트 단위)인 값과 함께 content_length 키가 포함되어 있습니다. COPY 작업에는 url 키와 선택 사항인 mandatory 키만 필요합니다.

{ "entries": [ {"url":"s3://DOC-EXAMPLE-BUCKET/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }}, {"url":"s3://DOC-EXAMPLE-BUCKET/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }} ] }

매니페스트 파일에 대한 자세한 내용은 Example: COPY from Amazon S3 using a manifest 단원을 참조하세요.