쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

UNLOAD - Amazon Redshift

UNLOAD

Amazon S3 서버 측 암호화(SSE-S3)를 사용하여 Amazon S3에서 하나 이상의 텍스트, JSON 또는 Apache Parquet 파일로 쿼리의 결과를 언로드합니다. AWS Key Management Service 키(SSE-KMS)를 사용하는 서버 측 암호화를 지정하거나 고객 관리형 키를 사용하는 클라이언트 측 암호화를 지정할 수도 있습니다.

기본적으로 언로드된 파일의 형식은 파이프로 구분된(|) 텍스트입니다.

MAXFILESIZE 파라미터를 설정하면 Amazon S3의 파일 크기를 비롯해 파일 수까지도 관리할 수 있습니다. S3 IP 범위가 허용 목록에 추가되었는지 확인합니다. 필요한 S3 IP 범위에 대한 자세한 내용은 네트워크 격리를 참조하세요.

이제 Amazon Redshift 쿼리 결과를 분석을 위한 효율적인 개방형 열 기반 스토리지 형식인 Apache Parquet의 Amazon S3 데이터 레이크에 언로드할 수 있습니다. Parquet 형식은 텍스트 형식에 비해 언로드 속도가 최대 2배 빠르고 Amazon S3에서 스토리지 사용량이 최대 6배 적습니다. 따라서 Amazon S3에서 Amazon S3 데이터 레이크로 데이터 변환 및 보강 작업의 결과물을 오픈 형식으로 저장할 수 있습니다. 그런 다음 Redshift Spectrum과 Amazon Athena, Amazon EMR, Amazon SageMaker AI 등의 기타 AWS 서비스를 사용하여 데이터를 분석할 수 있습니다.

UNLOAD 명령 사용에 대한 자세한 내용과 예제 시나리오는 Amazon Redshift에서 데이터 언로드 섹션을 참조하세요.

필수 권한

UNLOAD 명령이 성공하려면 Amazon S3 위치에 쓸 수 있는 권한과 함께 데이터베이스의 데이터에 대해 최소 SELECT 권한이 필요합니다. UNLOAD 명령의 AWS 리소스에 액세스할 수 있는 권한에 대한 자세한 내용은 다른 AWS 리소스에 대한 액세스 권한 섹션을 참조하세요.

최소 권한 권한을 적용하려면 다음 권장 사항에 따라 명령을 실행하는 사용자에게 필요한 권한만 부여합니다.

  • 사용자는 데이터에 대한 SELECT 권한이 있어야 합니다. 데이터베이스 권한을 제한하는 방법에 대한 자세한 내용은 GRANT 섹션을 참조하세요.

  • 사용자는 AWS 계정의 Amazon S3 버킷에 쓸 IAM 역할을 수임할 권한이 필요합니다. 데이터베이스 사용자가 역할을 수임하도록 액세스를 제한하려면 Amazon Redshift 관리 안내서IAM 역할에 대한 액세스 제한을 참조하세요.

  • 사용자는 Amazon S3 버킷에 대한 액세스 권한이 필요합니다. Amazon S3 버킷 정책을 사용하여 권한을 제한하려면 Amazon Simple Storage Service 사용 설명서 Amazon S3의 버킷 정책을 참조하세요.

구문

UNLOAD ('select-statement') TO 's3://object-path/name-prefix' authorization [ option, ...] where authorization is IAM_ROLE { default | 'arn:aws:iam::<AWS 계정-id-1>:role/<role-name>[,arn:aws:iam::<AWS 계정-id-2>:role/<role-name>][,...]' } where option is | [ FORMAT [ AS ] ] CSV | PARQUET | JSON | PARTITION BY ( column_name [, ... ] ) [ INCLUDE ] | MANIFEST [ VERBOSE ] | HEADER | DELIMITER [ AS ] 'delimiter-char' | FIXEDWIDTH [ AS ] 'fixedwidth-spec' | ENCRYPTED [ AUTO ] | BZIP2 | GZIP | ZSTD | ADDQUOTES | NULL [ AS ] 'null-string' | ESCAPE | ALLOWOVERWRITE | CLEANPATH | PARALLEL [ { ON | TRUE } | { OFF | FALSE } ] | MAXFILESIZE [AS] max-size [ MB | GB ] | ROWGROUPSIZE [AS] size [ MB | GB ] | REGION [AS] 'aws-region' } | EXTENSION 'extension-name'

파라미터

('select-statement')

SELECT 쿼리입니다. 쿼리의 결과가 언로드됩니다. 대부분의 경우 쿼리에 ORDER BY 절을 지정하여 정렬된 순서대로 데이터를 언로드할 만한 가치가 있습니다. 이런 접근 방식을 취하면 데이터를 다시 로드할 때 데이터 정렬 소요 시간이 단축됩니다.

다음에 표시된 것처럼 쿼리를 작은따옴표로 묶어야 합니다.

('select * from venue order by venueid')
참고

쿼리에 따옴표가 포함된 경우(예: 리터럴 값을 묶기 위해) 리터럴을 2개의 작은따옴표 집합 사이에 넣습니다. 쿼리도 작은따옴표로 묶어야 합니다.

('select * from venue where venuestate=''NV''')
TO 's3://object-path/name-prefix'

Amazon S3에서 Amazon Redshift가 출력 파일 객체(MANIFEST가 지정되어 있는 경우 매니페스트 파일 포함)를 작성할 위치의 전체 경로(버킷 이름 포함)입니다. 객체 이름에는 name-prefix가 접두사로 붙습니다. PARTITION BY를 사용하면 필요에 따라 슬래시(/)가 name-prefix 값의 끝에 자동으로 추가됩니다. 추가적인 보안을 위해, UNLOAD는 HTTPS 연결을 사용하여 Amazon S3에 연결합니다. 기본적으로, UNLOAD는 조각당 하나 이상의 파일을 작성합니다. UNLOAD는 다음과 같이 조각 번호와 부품 번호를 지정된 이름 접두사에 추가합니다.

<object-path>/<name-prefix><slice-number>_part_<part-number>.

MANIFEST가 지정되어 있는 경우 다음과 같이 매니페스트 파일이 작성됩니다.

<object_path>/<name_prefix>manifest.

PARALLEL을 OFF로 지정하면 데이터 파일은 다음과 같이 기록됩니다.

<object_path>/<name_prefix><part-number>.

UNLOAD는 Amazon S3 서버 측 암호화(SSE)를 사용하여 암호화된 파일을 자동 생성합니다(MANIFEST가 사용되는 경우 매니페스트 파일 포함). COPY 명령은 로드 작업 중에 서버 측 암호화 파일을 자동으로 읽습니다. Amazon S3 콘솔 또는 API를 사용하여 버킷에서 서버 측 암호화 파일을 투명하게 다운로드할 수 있습니다. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호 섹션을 참조하세요.

Amazon S3 클라이언트 측 암호화를 사용하려면 ENCRYPTED 옵션을 지정합니다.

중요

Amazon S3 버킷이 Amazon Redshift 데이터베이스와 같은 AWS 리전에 있지 않을 때는 REGION이 필요합니다.

권한 부여

UNLOAD 명령으로 Amazon S3에 데이터를 쓰려면 권한 부여가 필요합니다. UNLOAD 명령은 COPY 명령이 권한 부여를 위해 사용하는 것과 동일한 파라미터를 사용합니다. 자세한 내용은 COPY 명령 구문 참조 설명서에서 권한 부여 파라미터 섹션을 참조하세요.

IAM_ROLE { default | 'arn:aws:iam::<AWS 계정-id-1>:role/<role-name>'

기본 키워드를 사용하여 UNLOAD 명령이 실행될 때 Amazon Redshift에서 기본값으로 설정되고 클러스터와 연결된 IAM 역할을 사용하도록 합니다.

클러스터가 인증 및 권한 부여에 사용하는 IAM 역할의 Amazon 리소스 이름(ARN)을 사용합니다. IAM_ROLE을 지정하면 ACCESS_KEY_ID 및 SECRET_ACCESS_KEY, SESSION_TOKEN 또는 CREDENTIALS는 사용할 수 없습니다. IAM_ROLE을 연결할 수 있습니다. 자세한 내용은 Amazon Redshift 관리 가이드IAM 역할 연결을 참조하세요.

[ FORMAT [AS] ] CSV | PARQUET | JSON

기본 형식을 재정의하는 언로드 형식을 지정하는 키워드입니다.

CSV의 경우 쉼표(,) 문자를 기본 구분 기호로 사용하여 텍스트 파일을 CSV 형식으로 언로드합니다. 필드에 구분 기호, 큰따옴표, 줄 바꿈 또는 캐리지 리턴이 포함된 경우 언로드된 파일의 필드가 큰따옴표로 묶입니다. 데이터 필드 내의 큰따옴표는 추가 큰따옴표로 이스케이프됩니다. 행 0개가 언로드되면 Amazon Redshift는 빈 Amazon S3 객체를 기록할 수 있습니다.

PARQUET의 경우 Apache Parquet 버전 1.0 형식으로 파일에 언로드합니다. 기본적으로 각 행 그룹은 SNAPPY 압축을 사용하여 압축됩니다. Apache Parquet 형식에 대한 자세한 내용은 Parquet을 참조하세요.

JSON을 사용하는 경우 쿼리 결과의 전체 레코드를 나타내는 JSON 객체가 각 행에 포함된 JSON 파일로 언로드합니다. Amazon Redshift는 쿼리 결과에 SUPER 열이 포함된 경우 중첩된 JSON 작성을 지원합니다. 유효한 JSON 객체를 만들려면 쿼리의 각 열 이름이 고유해야 합니다. JSON 파일에서 부울 값은 t 또는 f로 언로드되고 NULL 값은 null로 언로드됩니다. 행 0개가 언로드되면 Amazon Redshift는 Amazon S3 객체를 기록하지 않습니다.

FORMAT 및 AS 키워드는 선택 사항입니다. CSV는 ESCAPE, FIXEDWIDTH 또는 ADDQUOTES와 함께 사용할 수 없습니다. PARQUET은 DELIMITER, FIXEDWIDTH, ADDQUOTES, ESCAPE, NULL AS, HEADER, GZIP, BZIP2 또는 ZSTD와 함께 사용할 수 없습니다. PARQUET with ENCRYPTED는 AWS Key Management Service 키(SSE-KMS)를 사용하는 서버측 암호화에서만 지원됩니다. JSON은 DELIMITER, HEADER, FIXEDWIDTH, ADDQUOTES, ESCAPE 또는 NULL AS와 함께 사용할 수 없습니다.

PARTITION BY ( column_name [, ... ] ) [INCLUDE]

언로드 작업을 위한 파티션 키를 지정합니다. UNLOAD는 Apache Hive 규칙에 따라 파티션 키 값을 기반으로 출력 파일을 파티션 폴더로 자동 분할합니다. 예를 들어 파티션 연도가 2019년이고 월이 9월인 Parquet 파일의 접두사는 다음과 같습니다. s3://amzn-s3-demo-bucket/my_prefix/year=2019/month=September/000.parquet.

column_name의 값은 언로드 중인 쿼리 결과의 열이어야 합니다.

INCLUDE 옵션을 사용하여 PARTITION BY를 지정하면 파티션 열이 언로드된 파일에서 제거되지 않습니다.

Amazon Redshift는 PARTITION BY 절에서 문자열 리터럴을 지원하지 않습니다.

MANIFEST [ VERBOSE ]

UNLOAD 프로세스에 의해 생성되는 데이터 파일의 세부 정보를 명시적으로 나열하는 매니페스트 파일을 생성합니다. 매니페스트란 Amazon S3에 작성한 개별 파일의 URL을 나열한 JSON 형식의 텍스트 파일을 말합니다.

MANIFEST가 VERBOSE 옵션을 사용해 지정된 경우 매니페스트에는 다음 세부 정보가 포함됩니다.

  • 열 이름 및 데이터 형식 그리고 CHAR, VARCHAR 또는 NUMERIC 데이터 형식의 경우 각 열에 대한 차원. CHAR 및 VARCHAR 데이터 형식의 경우 차원은 길이입니다. DECIMAL 또는 NUMERIC 데이터 형식의 경우 차원은 정밀도 및 배율입니다.

  • 각 파일로 언로드되는 행 수. HEADER 옵션이 지정되면 행 수에는 헤더 행이 포함됩니다.

  • 언로드되는 모든 파일의 총 파일 크기 및 모든 파일로 언로드되는 총 행 수. HEADER 옵션이 지정되면 행 수에는 헤더 행이 포함됩니다.

  • 작성자. 작성자는 항상 "Amazon Redshift"입니다.

VERBOSE는 MANIFEST 다음에만 지정할 수 있습니다.

매니페스트 파일은 같은 Amazon S3 경로 접두사에 <object_path_prefix>manifest 형식의 언로드 파일로 작성됩니다. 예를 들어 UNLOAD가 Amazon S3 경로 접두사 's3://amzn-s3-demo-bucket/venue_'를 지정하는 경우 매니페스트 파일 위치는 's3://amzn-s3-demo-bucket/venue_manifest'가 됩니다.

HEADER

각 출력 파일의 맨 위에 열 이름을 포함하는 헤더 줄을 추가합니다. 또한 CSV, DELIMITER, ADDQUOTES, ESCAPE와 같은 텍스트 변환 옵션이 헤더 줄에 적용됩니다. HEADER는 FIXEDWIDTH와 함께 사용할 수 없습니다.

DELIMITER AS 'delimiter_character'

파이프 문자(|), 쉼표(,) 또는 탭(\t) 같이 출력 파일에서 필드를 구분할 때 사용할 단일 ASCII 문자를 지정합니다. 텍스트 파일의 기본 구분 기호는 파이프 문자입니다. CSV 파일의 기본 구분 기호는 쉼표 문자입니다. AS 키워드는 옵션입니다. DELIMITER는 FIXEDWIDTH와 함께 사용할 수 없습니다. 데이터에 구분 기호 문자가 포함되는 경우 ESCAPE 옵션을 지정하여 구분 기호를 이스케이프하거나 ADDQUOTES를 사용하여 데이터를 큰따옴표로 묶어야 합니다. 또는 데이터에 포함되지 않은 구분 기호를 지정합니다.

FIXEDWIDTH 'fixedwidth_spec'

각각의 열 너비가 구분 기호로 구분되지 않고 고정된 길이인 파일로 데이터를 언로드합니다. fixedwidth_spec은 열 개수와 열의 너비를 지정하는 문자열입니다. AS 키워드는 옵션입니다. FIXEDWIDTH는 데이터를 자르지 않으므로 UNLOAD 문에서 각 열에 대한 사양은 최소한 그 열에 대해 가장 긴 항목의 길이만큼은 되어야 합니다. fixedwidth_spec의 형식이 아래에 표시되어 있습니다.

'colID1:colWidth1,colID2:colWidth2, ...'

FIXEDWIDTH는 DELIMITER 또는 HEADER와 함께 사용할 수 없습니다.

ENCRYPTED [AUTO]

Amazon S3의 출력 파일은 Amazon S3 서버 측 암호화 또는 클라이언트 측 암호화를 사용하여 암호화될 것임을 지정하는 절입니다. MANIFEST가 지정되어 있는 경우 매니페스트 파일도 암호화됩니다. 자세한 내용은 암호화된 데이터 파일 언로드 섹션을 참조하세요. ENCRYPTED 파라미터를 지정하지 않는 경우 UNLOAD는 AWS 관리형 암호화 키를 사용하는 Amazon S3 서버 측 암호화(SSE-S3)를 사용하여 암호화된 파일을 자동 생성합니다.

ENCRYPTED의 경우 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)를 사용하여 Amazon S3에 언로드할 수 있습니다. 이 경우 KMS_KEY_ID 파라미터를 사용하여 키 ID를 제공합니다. KMS_KEY_ID 파라미터와 함께 CREDENTIALS 파라미터를 사용할 수 없습니다. KMS_KEY_ID를 사용하여 데이터에 대해 UNLOAD 명령을 실행하면 키를 지정하지 않고 동일한 데이터에 대해 COPY 작업을 수행할 수 있습니다.

고객이 제공하는 대칭 키를 사용한 클라이언트 측 암호화를 사용하여 Amazon S3에 언로드하려면 두 가지 방법 중 하나로 키를 제공합니다. 키를 제공하려면 MASTER_SYMMETRIC_KEY 파라미터 또는 CREDENTIALS 자격 증명 문자열의 master_symmetric_key 부분을 사용합니다. 루트 대칭 키를 사용하여 데이터를 언로드하는 경우 암호화된 데이터에 대해 COPY 작업을 수행할 때 동일한 키를 제공해야 합니다.

UNLOAD는 고객 입력식 키를 사용하는 Amazon S3 서버 측 암호화(SSE-C)는 지원하지 않습니다.

ENCRYPTED AUTO를 사용하는 경우 UNLOAD 명령은 대상 Amazon S3 버킷 속성에서 기본 AWS KMS 암호화 키를 가져와서 AWS KMS 키로 Amazon S3에 기록된 파일을 암호화합니다. 버킷에 기본 AWS KMS 암호화 키가 없는 경우 UNLOAD는 AWS에서 관리하는 암호화 키(SSE-S3)를 사용한 Amazon Redshift 서버 측 암호화를 사용하여 암호화된 파일을 자동으로 생성합니다. 이 옵션은 KMS_KEY_ID, MASTER_SYMMETRIC_KEY, 또는 master_symmetric_key가 포함된 CREDENTIALS와 함께 사용할 수 없습니다.

KMS_KEY_ID 'key-id'

Amazon S3에서 데이터 파일 암호화에 사용할 AWS Key Management Service(AWS KMS) 키의 키 ID를 지정합니다. 자세한 내용은 AWS Key Management Service란 무엇입니까?를 참조하세요. KMS_KEY_ID를 지정하는 경우 ENCRYPTED 파라미터도 지정해야 합니다. KMS_KEY_ID를 지정하는 경우 CREDENTIALS 파라미터를 사용하여 인증할 수 없습니다. 대신에 IAM_ROLE 또는 ACCESS_KEY_ID and SECRET_ACCESS_KEY를 사용하세요.

MASTER_SYMMETRIC_KEY 'root_key'

Amazon S3에서 데이터 파일을 암호화할 때 사용되는 루트 대칭 키를 지정합니다. MASTER_SYMMETRIC_KEY를 지정하는 경우 ENCRYPTED 파라미터도 지정해야 합니다. MASTER_SYMMETRIC_KEY를 CREDENTIALS 파라미터와 함께 사용할 수는 없습니다. 자세한 내용은 Amazon S3에서 암호화된 데이터 파일 로드 섹션을 참조하세요.

bzip2

조각당 하나 이상의 bzip2 압축 파일로 데이터를 언로드합니다. 각각의 결과 파일에는 .bz2 확장명이 추가됩니다.

GZIP

조각당 하나 이상의 gzip 압축 파일로 데이터를 언로드합니다. 각각의 결과 파일에는 .gz 확장명이 추가됩니다.

ZSTD

조각당 하나 이상의 Zstandard 압축 파일로 데이터를 언로드합니다. 각각의 결과 파일에는 .zst 확장명이 추가됩니다.

ADDQUOTES

Amazon Redshift가 구분 기호 자체를 포함하는 데이터 값을 언로드할 수 있도록 언로드되는 각각의 데이터 필드 주변에 따옴표를 배치합니다. 예를 들어, 구분 기호가 쉼표인 경우 다음 데이터를 성공적으로 언로드하고 다시 로드할 수 있습니다.

"1","Hello, World"

따옴표를 추가하지 않을 경우 문자열 Hello, World는 두 개의 개별 필드로 구문 분석됩니다.

일부 출력 형식은 ADDQUOTES를 지원하지 않습니다.

ADDQUOTES를 사용하는 경우 데이터를 다시 로드하면 COPY에 REMOVEQUOTES를 지정해야 합니다.

NULL AS 'null-string'

언로드 파일에서 null 값을 나타내는 문자열을 지정합니다. 이 옵션이 사용되는 경우 모든 출력 파일에는 선택한 데이터에서 발견되는 null 값의 자리에 지정된 문자열이 있습니다. 이 옵션을 지정하지 않으면 null 값이 다음으로 언로드됩니다.

  • 구분 기호로 분리된 출력에 대해 제로 길이의 문자열

  • 고정 너비 출력을 위한 공백 문자열

Null 문자열이 고정 폭의 언로드에 대해 지정되어 있고 출력 열의 폭이 null 문자열의 폭보다 작은 경우 다음 동작이 이루어집니다.

  • 비문자 열의 경우 빈 필드가 출력됨

  • 문자 열의 경우 오류가 보고됨

사용자 정의 문자열이 null 값을 나타내는 다른 데이터 형식과 달리 Amazon Redshift는 JSON 형식을 사용하여 SUPER 데이터 열을 내보내고 JSON 형식에 따라 null로 나타냅니다. 결과적으로 SUPER 데이터 열은 UNLOAD 명령에 사용된 NULL [AS] 옵션을 무시합니다.

ESCAPE

구분 기호로 분리된 언로드 파일에 있는 CHAR 및 VARCHAR 열의 경우, 다음 문자가 나올 때마다 그 앞에 이스케이프 문자(\)가 배치됩니다.

  • 라인 피드: \n

  • 캐리지 리턴: \r

  • 언로드된 데이터에 대해 지정되는 구분 기호 문자.

  • 이스케이프 문자: \

  • 따옴표: " 또는 '(UNLOAD 명령에 ESCAPE와 ADDQUOTES가 모두 지정된 경우).

중요

COPY 문에 ESCAPE 옵션을 사용해 데이터를 로드한 경우에는 UNLOAD 명령에서도 ESCAPE 옵션을 지정하여 역수 출력 파일을 생성해야 합니다. 마찬가지로 ESCAPE 옵션을 사용해 UNLOAD 작업을 하는 경우에도 동일한 데이터에 대해 COPY 작업을 하면서 ESCAPE 파라미터를 사용해야 합니다.

ALLOWOVERWRITE

기본적으로, UNLOAD는 덮어쓸 가능성이 있는 파일을 찾을 경우에 실패합니다. ALLOWOVERWRITE가 지정된 경우 UNLOAD는 매니페스트 파일을 포함한 기존 파일을 덮어씁니다.

CLEANPATH

CLEANPATH 옵션은 지정된 위치로 파일을 언로드하기 전에 TO 절에 지정된 Amazon S3 경로에 있는 기존 파일을 제거합니다.

PARTITION BY 절을 포함하면 UNLOAD 작업으로 생성된 새 파일을 수신하기 위해 파티션 폴더에서만 기존 파일이 제거됩니다.

Amazon S3 버킷에 대해 s3:DeleteObject 권한이 있어야 합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon S3의 정책 및 권한을 참조하세요. CLEANPATH 옵션을 사용하여 제거한 파일은 영구적으로 삭제되며 복구할 수 없습니다. 대상 Amazon S3 버킷에 버전 관리가 활성화되어 있는 경우 CLEANPATH 옵션을 사용하여 UNLOAD 작업을 수행해도 파일의 이전 버전은 제거되지 않습니다.

ALLOWOVERWRITE 옵션을 지정하면 CLEANPATH 옵션을 지정할 수 없습니다.

PARALLEL

기본적으로 UNLOAD는 클러스터의 조각 수에 따라 다수의 파일에 병렬 방식으로 데이터를 작성합니다. 기본 옵션은 ON 또는 TRUE입니다. PARALLEL이 OFF 또는 FALSE인 경우 UNLOAD는 하나 이상의 데이터 파일에 직렬 방식으로 작성하여 절대적으로 ORDER BY 절(사용하는 경우)에 따라 정렬됩니다. 데이터 파일의 최대 크기는 6.2GB입니다. 예를 들어, 13.4GB의 데이터를 언로드하는 경우 UNLOAD는 다음 3개의 파일을 생성합니다.

s3://amzn-s3-demo-bucket/key000 6.2 GB s3://amzn-s3-demo-bucket/key001 6.2 GB s3://amzn-s3-demo-bucket/key002 1.0 GB
참고

UNLOAD 명령은 병렬 처리를 사용하도록 설계되었습니다. 따라서 대부분의 경우 특히, COPY 명령을 사용하여 테이블을 로드하는 데 파일이 사용되는 경우 PARALLEL을 활성화하는 것이 좋습니다.

MAXFILESIZE [AS] max-size [ MB | GB ]

UNLOAD가 Amazon S3에서 생성하는 파일의 최대 크기를 지정합니다. 5MB와 6.2GB 사이에서 소수 값을 지정하세요. AS 키워드는 옵션입니다. 기본 단위는 MB입니다. MAXFILESIZE를 지정하지 않을 경우 최대 파일 크기의 기본값은 6.2GB입니다. 이 값을 지정하더라도 매니페스트 파일의 크기는 MAXFILESIZE의 영향을 받지 않습니다.

ROWGROUPSIZE [AS] size [ MB | GB ]

행 그룹의 크기를 지정합니다. 더 큰 크기를 선택하면 행 그룹 수를 줄여 네트워크 통신량을 줄일 수 있습니다. 32~128MB의 정수 값을 지정합니다. AS 키워드는 옵션입니다. 기본 단위는 MB입니다.

ROWGROUPSIZE가 지정되지 않은 경우 기본 크기는 32MB입니다. 이 파라미터를 사용하려면 스토리지 형식이 Parquet이어야 하고 노드 유형은 ra3.4xlarge, ra3.16xlarge 또는 dc2.8xlarge여야 합니다.

REGION [AS] 'aws-region'

대상 Amazon S3 버킷이 위치한 AWS 리전을 지정합니다. Amazon Redshift 데이터베이스와 동일한 AWS 리전에 있지 않은 Amazon S3 버킷에 대한 UNLOAD의 경우 REGION이 필요합니다.

aws_region의 값은 AWS 일반 참조Amazon Redshift 리전 및 엔드포인트 표에 나와 있는 AWS 리전과 일치해야 합니다.

기본적으로 UNLOAD는 대상 Amazon S3 버킷이 Amazon Redshift 데이터베이스와 동일한 AWS 리전에 있다고 가정합니다.

EXTENSION 'extension-name'

언로드된 파일의 이름에 추가할 파일 확장자를 지정합니다. Amazon Redshift는 검증을 실행하지 않으므로, 지정된 파일 확장자가 올바른지 직접 확인해야 합니다. 확장자를 제공하지 않고 압축 방법을 지정하면 Amazon Redshift는 파일 이름에 압축 방법의 확장자만 추가합니다. 확장자를 제공하지 않고 압축 방법을 지정하지 않으면 Amazon Redshift는 파일 이름에 아무 것도 추가하지 않습니다.

사용 노트

구분 기호로 분리된 모든 텍스트 UNLOAD 작업을 위해 ESCAPE 사용

구분 기호를 사용하여 UNLOAD하는 경우 데이터에는 ESCAPE 옵션 설명에 나와 있는 모든 문자 또는 구분 기호가 포함될 수 있습니다. 이 경우 UNLOAD 문과 함께 ESCAPE 옵션을 사용해야 합니다. UNLOAD와 함께 ESCAPE 옵션을 사용하지 않을 경우 언로드된 데이터를 사용하는 이후의 COPY 작업이 실패할 수 있습니다.

중요

ESCAPE는 UNLOAD 및 COPY 문 둘 다와 함께 사용하는 것이 좋습니다. 데이터가 구분 기호 또는 이스케이프될 필요가 있을 수 있는 다른 문자를 포함하고 있지 않은 경우는 예외입니다.

부동 소수점 정밀도의 상실

연속으로 언로드되었다가 다시 로드되는 부동 소수점 데이터의 정밀도가 상실되는 경우가 발생할 수 있습니다.

Limit 절

SELECT 쿼리는 외부 SELECT에 LIMIT 절을 사용할 수 없습니다. 예를 들어, 다음 UNLOAD 문은 실패합니다.

unload ('select * from venue limit 10') to 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

대신, 다음 예와 같이 중첩된 LIMIT 절을 사용하세요.

unload ('select * from venue where venueid in (select venueid from venue order by venueid desc limit 10)') to 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

또는 LIMIT 절을 사용하는 SELECT…INTO 또는 CREATE TABLE AS를 사용하여 테이블을 채운 다음 그 테이블에서 언로드할 수 있습니다.

GEOMETRY 데이터 형식의 열 언로드

GEOMETRY 열은 텍스트 또는 CSV 형식으로만 언로드할 수 있습니다. FIXEDWIDTH 옵션을 사용하여 GEOMETRY 데이터를 언로드할 수는 없습니다. 데이터는 EWKB(Extended Well-Known Binary) 형식의 16진수로 언로드됩니다. EWKB 데이터의 크기가 4MB를 초과하면 나중에 데이터를 테이블에 로드할 수 없으므로 경고가 발생합니다.

HLLSKETCH 데이터 형식 언로드

HLLSKETCH 열을 텍스트 또는 CSV 형식으로만 온로드할 수 있습니다. FIXEDWIDTH 옵션을 사용하여 HLLSKETCH 데이터를 언로드할 수는 없습니다. 데이터는 고밀도 HyperLogLog 스케치의 경우 Base64 형식으로, 희소 HyperLogLog 스케치의 경우 JSON 형식으로 언로드됩니다. 자세한 내용은 HyperLogLog 함수 섹션을 참조하세요.

다음 예에서는 HLLSKETCH 열이 포함된 테이블을 파일로 내보냅니다.

CREATE TABLE a_table(an_int INT, b_int INT); INSERT INTO a_table VALUES (1,1), (2,1), (3,1), (4,1), (1,2), (2,2), (3,2), (4,2), (5,2), (6,2); CREATE TABLE hll_table (sketch HLLSKETCH); INSERT INTO hll_table select hll_create_sketch(an_int) from a_table group by b_int; UNLOAD ('select * from hll_table') TO 's3://amzn-s3-demo-bucket/unload/' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' NULL AS 'null' ALLOWOVERWRITE CSV;

VARBYTE 데이터 유형의 열 언로드

VARBYTE 열은 텍스트 또는 CSV 형식으로만 언로드할 수 있습니다. 데이터는 16진수 형식으로 언로드됩니다. FIXEDWIDTH 옵션을 사용하여 VARBYTE 데이터를 언로드할 수는 없습니다. CSV로 UNLOAD의 ADDQUOTES 옵션은 지원되지 않습니다. VARBYTE 열은 PARTITIONED BY 열이 될 수 없습니다.

FORMAT AS PARQUET 절

FORMAT AS PARQUET을 사용할 경우 다음을 고려하세요.

  • Parquet에 언로드할 때 파일 수준 압축을 사용하지 않습니다. 각 행 그룹이 SNAPPY로 압축됩니다.

  • MAXFILESIZE를 지정하지 않을 경우 최대 파일 크기의 기본값은 6.2GB입니다. MAXFILESIZE를 사용하여 파일 크기를 5MB–6.2GB로 지정할 수 있습니다. 파일을 쓸 때 실제 파일 크기는 근사값이므로 지정한 숫자와 정확히 같지 않을 수 있습니다.

    스캔 성능을 최대화하기 위해에서 Amazon Redshift는 크기가 32MB로 동일한 행 그룹을 포함하는 Parquet 파일을 생성하려고 합니다. 지정한 MAXFLESZEE 값은 32MB의 가장 가까운 배수로 자동으로 내림됩니다. 예를 들어 MAXFILESIZE 200 MB를 지정한 경우 언로드되는 각 Parquet 파일은 약 192MB(32MB 행 그룹 x 6 = 192MB)입니다.

  • 열에서 TIMESTAMPTZ 데이터 형식을 사용하는 경우 타임스탬프 값만 언로드됩니다. 시간대 정보는 언로드되지 않습니다.

  • 밑줄(_) 또는 마침표(.) 문자로 시작하는 파일 이름 접두사를 지정하지 마세요. Redshift Spectrum에서는 이러한 문자로 시작하는 파일을 숨김 파일로 간주하고 무시합니다.

PARTITION BY 절

PARTITION BY를 사용할 경우 다음을 고려하세요.

  • 파티션 열은 출력 파일에 포함되지 않습니다.

  • UNLOAD 문에 사용되는 SELECT 쿼리에 파티션 열을 포함해야 합니다. UNLOAD 명령에서 원하는 수의 파티션 열을 지정할 수 있습니다. 하지만 파일의 일부가 될 파티션이 아닌 열이 하나 이상 있어야 한다는 제한이 있습니다.

  • 파티션 키 값이 null이면 Amazon Redshift에서 해당 데이터를 partition_column=__HIVE_DEFAULT_PARTITION__이라는 기본 파티션으로 자동으로 언로드합니다.

  • UNLOAD 명령은 외부 카탈로그를 호출하지 않습니다. 새 파티션을 기존 외부 테이블의 일부로 등록하려면 별도의 ALTER TABLE ... ADD PARTITION ... 명령을 사용합니다. 또는 CREATE EXTERNAL TABLE 명령을 실행하여 언로드된 데이터를 새 외부 테이블로 등록할 수 있습니다. AWS Glue 크롤러를 사용하여 Data Catalog를 채울 수도 있습니다. 자세한 내용은 AWS Glue Developer GuideDefining Crawlers 섹션을 참조하세요.

  • MANIFEST 옵션을 사용하는 경우 Amazon Redshift는 루트 Amazon S3 폴더에 매니페스트 파일을 하나만 생성합니다.

  • 파티션 키로 사용할 수 있는 열 데이터 형식은 SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, BOOLEAN, CHAR, VARCHAR, DATE 및 TIMESTAMP입니다.

ASSUMEROLE 권한을 사용하여 UNLOAD 작업에 대한 IAM 역할에 대한 액세스 권한 부여

UNLOAD 작업을 위해 IAM 역할에 대한 액세스 권한을 특정 사용자 및 그룹에 제공하려면 슈퍼 사용자는 IAM 역할에 대한 ASSUMEROLE 권한을 사용자 및 그룹에 부여할 수 있습니다. 자세한 내용은 GRANT을 참조하세요.

UNLOAD는 Amazon S3 액세스 포인트 별칭을 지원하지 않습니다.

UNLOAD 명령에는 Amazon S3 액세스 포인트 별칭을 사용할 수 없습니다.

예시

UNLOAD 명령을 사용하는 방법을 보여주는 예제는 UNLOAD 예 섹션을 참조하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.