쿠키 기본 설정 선택

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

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

CREATE TABLE AS

포커스 모드

이 페이지에서

CREATE TABLE AS - Amazon Athena

SELECT 쿼리의 결과로 채워지는 새 테이블을 생성합니다. 빈 테이블을 생성하려면 CREATE TABLE을 사용합니다. CREATE TABLE AS에서는 CREATE TABLE DDL 문을 SELECT DML 문과 결합하므로 기술적으로 DDL과 DML을 모두 포함합니다. CREATE TABLE AS가 다른 DDL 문과 함께 여기에 그룹화되어 있기는 하지만 Athena의 CTAS 쿼리는 Service Quotas을 위해 DML로 처리됩니다. Athena에서 Service Quotas에 대한 자세한 내용은 Service Quotas 섹션을 참조하세요.

참고

CTAS 문의 경우 예상 버킷 소유자 설정이 Amazon S3의 대상 테이블 위치에 적용되지 않습니다. 예상 버킷 소유자 설정은 Athena 쿼리 결과에 대해 지정한 Amazon S3 출력 위치에만 적용됩니다. 자세한 내용은 Athena 콘솔을 사용하여 쿼리 결과 위치 지정 단원을 참조하십시오.

이 참조 주제 외에 CREATE TABLE AS에 대한 추가 정보는 쿼리 결과에서 테이블 생성(CTAS) 섹션을 참조하세요.

시놉시스

CREATE TABLE table_name [ WITH ( property_name = expression [, ...] ) ] AS query [ WITH [ NO ] DATA ]

위치:

WITH ( property_name = expression [, ...] )

선택적 CTAS 테이블 속성입니다. 일부는 데이터 스토리지 형식과 관련이 있습니다. CTAS 테이블 속성 섹션을 참조하세요.

쿼리

새 테이블을 생성하는 데 사용되는 SELECT 쿼리입니다.

중요

파티션을 사용하여 쿼리를 생성하려는 경우 SELECT 문에서 열 목록 마지막에 분할된 열의 이름을 지정합니다.

[ WITH [ NO ] DATA ]

WITH NO DATA가 사용되는 경우 원래 테이블과 스키마가 동일한 새로운 빈 테이블이 생성됩니다.

참고

쿼리 결과 출력에 열 머리글을 포함하려면 CTAS 쿼리 대신 간단한 SELECT 쿼리를 사용할 수 있습니다. 쿼리 결과 위치에서 결과를 검색하거나 Athena 콘솔을 사용하여 결과를 직접 다운로드할 수 있습니다. 자세한 내용은 쿼리 결과 및 최근 쿼리 작업 단원을 참조하십시오.

CTAS 테이블 속성

Athena의 각 CTAS 테이블에는 WITH (property_name = expression [, ...] )을 사용해 지정하는 선택적 CTAS 테이블 속성 목록이 있습니다. 이런 파라미터 사용에 대한 자세한 정보는 CTAS 쿼리 예제 단원을 참조하세요.

WITH (property_name = expression [, ...], )
table_type = ['HIVE', 'ICEBERG']

선택 사항입니다. 기본값은 HIVE입니다. 결과 테이블의 테이블 유형 지정

예시

WITH (table_type ='ICEBERG')
external_location = [location]
참고

Iceberg 테이블은 외부 테이블이 아니므로 이 속성은 Iceberg 테이블에 적용되지 않습니다. CTAS 문에서 Iceberg 테이블의 루트 위치를 정의하려면 이 단원의 뒷부분에 설명된 location 속성을 사용하세요.

선택 사항입니다. Athena가 Amazon S3에서 CTAS 쿼리를 저장하는 위치입니다.

예시

WITH (external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/')

Athena는 쿼리 결과에 동일한 경로를 두 번 사용하지 않습니다. 위치를 수동으로 지정한 경우, 지정한 Amazon S3 위치에 데이터가 없는지 확인하세요. Athena는 데이터 삭제를 시도하지 않습니다. 동일한 위치를 다시 사용하려는 경우에는 데이터를 수동으로 삭제하세요. 그렇지 않으면 CTAS 쿼리에 실패합니다.

쿼리 결과 위치를 강제하는 작업 그룹에서 external_location을 지정한 CTAS 쿼리를 실행할 경우 쿼리가 오류 메시지를 표시하며 실패합니다. 작업 그룹에 지정된 쿼리 결과 위치를 보려면 작업 그룹 세부 정보를 조회하세요.

작업 그룹이 쿼리 결과 위치에 대한 클라이언트 측 설정을 재정의하는 경우 Athena는 다음 위치에 테이블을 생성합니다.

s3://amzn-s3-demo-bucket/tables/query-id/

external_location 속성을 사용하여 위치를 지정하지 않으며 작업 그룹이 클라이언트 측 설정을 재정의하지 않는 경우, Athena는 쿼리 결과 위치에 대한 클라이언트 측 설정을 사용하여 다음 위치에 테이블을 생성합니다.

s3://amzn-s3-demo-bucket/Unsaved-or-query-name/year/month/date/tables/query-id/
is_external = [boolean]

선택 사항입니다. 테이블이 외부 테이블인지 나타냅니다. 기본값은 true입니다. Iceberg 테이블의 경우 이 값을 false로 설정해야 합니다.

예시

WITH (is_external = false)
location = [location]

Iceberg 테이블에 필요합니다. 쿼리 결과에서 생성될 Iceberg 테이블의 루트 위치를 지정합니다.

예시

WITH (location ='s3://amzn-s3-demo-bucket/tables/iceberg_table/')
field_delimiter = [delimiter]

선택 사항으로, 텍스트 기반 데이터 스토리지 형식과 관련이 있습니다. CSV, TSV 및 텍스트 파일의 단일 문자 필드 구분 기호입니다. 예: WITH (field_delimiter = ','). 현재 CTAS 쿼리에는 여러 문자로 된 필드 구분 기호가 지원되지 않습니다. 필드 구분 기호를 지정하지 않으면 기본적으로 \001이 사용됩니다.

format = [storage_format]

CTAS 쿼리 결과에 대한 스토리지 형식입니다(예: ORC, PARQUET, AVRO, JSON, ION 또는 TEXTFILE). Iceberg 테이블의 경우 허용되는 형식은 ORC, PARQUETAVRO입니다. 생략하면 기본값은 PARQUET입니다. 이 파라미터의 이름인 format은 소문자로 표시되어야 합니다. 그렇지 않으면 CTAS 쿼리에 실패합니다.

예시

WITH (format = 'PARQUET')
bucketed_by = ARRAY[ column_name[,…], bucket_count = [int] ]
참고

이 속성은 Iceberg 테이블에 적용되지 않습니다. Iceberg 테이블의 경우 파티셔닝을 버킷 변환과 함께 사용합니다.

데이터를 버킷팅할 버킷의 배열 목록입니다. 생략하면 Athena는 이 쿼리에 데이터를 버킷팅하지 않습니다.

bucket_count = [int]
참고

이 속성은 Iceberg 테이블에 적용되지 않습니다. Iceberg 테이블의 경우 파티셔닝을 버킷 변환과 함께 사용합니다.

데이터를 버킷팅할 버킷의 이름입니다. 생략하면 Athena는 데이터를 버킷팅하지 않습니다. 예시

CREATE TABLE bucketed_table WITH ( bucketed_by = ARRAY[column_name], bucket_count = 30, format = 'PARQUET', external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/' ) AS SELECT * FROM table_name
partitioned_by = ARRAY[ col_name[,…] ]
참고

이 속성은 Iceberg 테이블에 적용되지 않습니다. Iceberg 테이블에 대해 파티션 변환을 사용하려면 이 단원의 뒷부분에 설명된 partitioning 속성을 사용하세요.

선택 사항입니다. CTAS 테이블이 분할되는 기준이 되는 열의 배열 목록입니다. 분할된 열의 이름이 SELECT 문의 열 목록 마지막에 나열되어 있는지 확인하세요.

partitioning = ARRAY[partition_transform, ...]

선택 사항입니다. 생성할 Iceberg 테이블의 파티셔닝을 지정합니다. Iceberg는 다양한 파티션 변환과 파티션 진화를 지원합니다. 파티션 변환은 다음 표에 요약되어 있습니다.

변환 설명
year(ts) 매년 하나의 파티션을 생성합니다. 파티션 값은 ts ~ 1970년 1월 1일 사이 연도의 정수 차이입니다.
month(ts) 각 연도에 매월 하나의 파티션을 생성합니다. 파티션 값은 ts ~ 1970년 1월 1일 사이 월의 정수 차이입니다.
day(ts) 각 연도에 매일 하나의 파티션을 생성합니다. 파티션 값은 ts ~ 1970년 1월 1일 사이 날짜의 정수 차이입니다.
hour(ts) 매일 시간당 하나의 파티션을 생성합니다. 파티션 값은 분과 초가 0으로 설정된 타임스탬프입니다.
bucket(x, nbuckets) 데이터를 지정된 수의 버킷으로 해시합니다. 파티션 값은 0과 nbuckets - 1(포함) 사이의 x 정수 해시입니다.
truncate(s, nchars) 파티션 값을 s의 첫 nchars자로 만듭니다.

예시

WITH (partitioning = ARRAY['month(order_date)', 'bucket(account_number, 10)', 'country']))
optimize_rewrite_min_data_file_size_bytes = [long]

선택 사항입니다. 데이터 최적화별 구성입니다. 최적화를 위해 지정된 값보다 작은 파일이 포함됩니다. 기본값은 write_target_data_file_size_bytes 값의 0.75배입니다. 이 속성은 Iceberg 테이블에만 적용됩니다. 자세한 내용은 Iceberg 테이블 최적화 단원을 참조하십시오.

예시

WITH (optimize_rewrite_min_data_file_size_bytes = 402653184)
optimize_rewrite_max_data_file_size_bytes = [long]

선택 사항입니다. 데이터 최적화별 구성입니다. 최적화를 위해 지정된 값보다 큰 파일이 포함됩니다. 기본값은 write_target_data_file_size_bytes 값의 1.8배입니다. 이 속성은 Iceberg 테이블에만 적용됩니다. 자세한 내용은 Iceberg 테이블 최적화 단원을 참조하십시오.

예시

WITH (optimize_rewrite_max_data_file_size_bytes = 966367641)
optimize_rewrite_data_file_threshold = [int]

선택 사항입니다. 데이터 최적화별 구성입니다. 최적화가 필요한 데이터 파일이 주어진 임계값보다 적으면 파일이 재작성되지 않습니다. 이를 통해 더 많은 데이터 파일을 누적하여 대상 크기에 더 가까운 파일을 생성하고 비용 절감을 위해 불필요한 계산을 건너뛸 수 있습니다. 기본값은 5입니다. 이 속성은 Iceberg 테이블에만 적용됩니다. 자세한 내용은 Iceberg 테이블 최적화 단원을 참조하십시오.

예시

WITH (optimize_rewrite_data_file_threshold = 5)
optimize_rewrite_delete_file_threshold = [int]

선택 사항입니다. 데이터 최적화별 구성입니다. 데이터 파일과 연관된 삭제 파일이 임계값보다 적으면 데이터 파일이 재작성되지 않습니다. 이를 통해 비용 절감을 위해 각 데이터 파일에 대해 더 많은 삭제 파일을 누적할 수 있습니다. 기본값은 2입니다. 이 속성은 Iceberg 테이블에만 적용됩니다. 자세한 내용은 Iceberg 테이블 최적화 단원을 참조하십시오.

예시

WITH (optimize_rewrite_delete_file_threshold = 2)
vacuum_min_snapshots_to_keep = [int]

선택 사항입니다. Vacuum 관련 구성입니다. 보존할 최신 스냅샷의 최소 수입니다. 기본 값은 1입니다. 이 속성은 Iceberg 테이블에만 적용됩니다. 자세한 내용은 VACUUM 단원을 참조하십시오.

참고

vacuum_min_snapshots_to_keep 속성을 사용하려면 Athena 엔진 버전 3이 필요합니다.

예시

WITH (vacuum_min_snapshots_to_keep = 1)
vacuum_max_snapshot_age_seconds = [long]

선택 사항입니다. Vacuum 관련 구성입니다. 보존할 스냅샷의 수명을 나타내는 기간(초)입니다. 기본값은 432,000(5일)입니다. 이 속성은 Iceberg 테이블에만 적용됩니다. 자세한 내용은 VACUUM 단원을 참조하십시오.

참고

vacuum_max_snapshot_age_seconds 속성을 사용하려면 Athena 엔진 버전 3이 필요합니다.

예시

WITH (vacuum_max_snapshot_age_seconds = 432000)
write_compression = [compression_format]

압축을 지정할 수 있는 모든 스토리지 형식에 사용할 압축 유형입니다. compression_format 값은 데이터가 테이블에 기록될 때 사용할 압축을 지정합니다. TEXTFILE, JSON, PARQUETORC파일 형식에 대한 압축을 지정할 수 있습니다.

예를 들어 format 속성이 PARQUET을 스토리지 형식으로 지정할 경우, write_compression의 값은 Parquet에 대한 압축 형식을 지정합니다. 이 경우 write_compression의 값을 지정하는 것은 parquet_compression의 값을 지정하는 것과 같습니다.

마찬가지로, format 속성이 ORC를 스토리지 형식으로 지정할 경우, write_compression의 값은 ORC에 대한 압축 형식을 지정합니다. 이 경우 write_compression의 값을 지정하는 것은 orc_compression의 값을 지정하는 것과 같습니다.

동일한 CTAS 쿼리에서 여러 압축 형식 테이블 속성을 지정할 수 없습니다. 예를 들어 write_compressionparquet_compression 모두를 동일한 쿼리에서 지정할 수는 없습니다. write_compressionorc_compression에도 동일하게 적용됩니다. 각 파일 형식에 지원되는 압축 유형에 대한 자세한 내용은 Athena에서 압축 사용 섹션을 참조하세요.

orc_compression = [compression_format]

ORC 데이터를 테이블에 쓸 때 ORC 파일 형식에 사용할 압축 유형입니다. 예: WITH (orc_compression = 'ZLIB'). ORC 파일의 청크(ORC Postscript 제외)가 지정한 압축을 사용하여 압축됩니다. 생략하면 ORC에 ZLIB 압축이 기본적으로 사용됩니다.

참고

일관성을 위해 orc_compression 대신 write_compression 속성을 사용하는 것이 좋습니다. format 속성을 사용하여 스토리지 형식을 ORC로 지정한 후 write_compression 속성을 사용하여 ORC가 사용할 압축 형식을 지정합니다.

parquet_compression = [compression_format]

Parquet 데이터를 테이블에 쓸 때 Parquet 파일 형식에 사용할 압축 유형입니다. 예: WITH (parquet_compression = 'SNAPPY'). 이 압축은 Parquet 파일 내의 열 청크에 적용됩니다. 생략하면 Parquet에 GZIP 압축이 기본적으로 사용됩니다.

참고

일관성을 위해 parquet_compression 대신 write_compression 속성을 사용하는 것이 좋습니다. format 속성을 사용하여 스토리지 형식을 PARQUET로 지정한 후 write_compression 속성을 사용하여 PARQUET가 사용할 압축 형식을 지정합니다.

compression_level = [compression_level]

사용할 압축 수준입니다. 이 속성은 ZSTD 압축에만 적용됩니다. 가능한 값은 1~22입니다. 기본값은 3입니다. 자세한 내용은 ZSTD 압축 수준 사용 단원을 참조하십시오.

예시

CTAS 쿼리의 예제는 다음 리소스를 참조하세요.

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