Amazon Athena 쿼리 결과를 CSV 이외의 형식(예: JSON 또는 Parquet)으로 저장하고 싶습니다.
간략한 설명
Athena는 SELECT 쿼리를 실행할 때 CSV 출력 파일만 지원합니다. Athena의 출력을 CSV 이외의 형식으로 저장하려면 다음 옵션 중 하나를 선택합니다.
UNLOAD 문은 SELECT 쿼리의 출력을 다양한 데이터 형식 중 하나로 기록하지만 새 테이블을 생성하지는 않습니다. 또한 CTAS 쿼리는 출력을 다양한 데이터 형식으로 쓰지만 해당 출력으로 새 테이블을 생성합니다. UNLOAD와 CTAS는 모두 Apache Parquet, ORC, Apache Avro 및 JSON과 같은 형식을 지원합니다.
참고: UNLOAD와 CTAS 모두 파티셔닝을 지원하지만 CTAS만 버킷 작업을 지원합니다.
해결 방법
UNLOAD 쿼리 실행
UNLOAD 문을 사용하려면 UNLOAD 다음에 SELECT 쿼리를 괄호 안에 넣고 WITH 문에서 파일 형식을 지정합니다. 예를 들어, 다음 쿼리는 SELECT의 출력을 Amazon Simple Storage Service(Amazon S3) 버킷 amzn-s3-example-bucket에 JSON 파일로 저장합니다.
UNLOAD (SELECT col1, col2 FROM example_table)
TO 's3://amzn-s3-example-bucket/example_folder/'
WITH (format = 'JSON')
UNLOAD에서 파일 출력을 수정하는 방법에 대한 자세한 내용을 알아보려면 파라미터를 참조하십시오.
CTAS 쿼리 실행
CTAS 쿼리의 출력을 CSV 이외의 형식으로 저장하려면 WITH 문에서 format 속성을 구성하십시오. 예를 들어, 다음 쿼리는 SELECT에서 Parquet 형식으로 반환한 데이터에서 ctas-parquet-example이라는 새 테이블을 생성합니다.
`CREATE TABLE ctas_parquet_example WITH (format = '`_`PARQUET`_`') AS SELECT col1, col2, FROM example_table;`
CTAS 파라미터에 대한 자세한 내용을 알아보려면 CTAS 테이블 속성을 참조하십시오.
출력 데이터 파일만 유지하고 새 테이블은 보관하지 않아야 하는 경우, 쿼리가 완료된 후 CTAS 테이블을 삭제하십시오.
관련 정보
CTAS 쿼리에 대한 고려 사항 및 제한
CTAS 쿼리의 예