WiseN

AWS S3 Select 신규 기능 추가

Sep 14,2018   |   AWS

작성자_김명수

페이스북 공유하기 트위터 공유하기
Blog thumbnail

여기서 다루는 내용


· 간단 소개
· Apache Parquet format 지원
· JSON Array 지원
· BZIP2으로 압축된 파일 지원
· 마무리


 

최근AWS에서 S3 Select의 추가 기능을 게시하였습니다.

추가된 기능은 Apache Parquet format 지원, JSON Arrays 지원 , BZIP2로 압축된 CSV와 JSON 객체 지원 입니다. (2018년 9월 14일 기준)

기존에는 CSV와 JSON 파일 형식만 읽을 수 있었지만 이제는 Parquet 파일 형식도 지원되기 때문에 이번 시간에 간략히 다뤄보겠습니다.

 




간단 소개







  • S3 Select

    • S3 및 Glacier에 저장된 데이터를 필터링하여 간단한 조회 가능

    • Object에 액세스하는 애플리케이션의 데이터 검색 성능 향상

    • CSV, JSON 형식 뿐만 아니라 Parquet 형식 지원

    • AWS SDK, SELECT Object Content REST API, AWS CLI, Amazon S3 콘솔에서 사용 가능

    • 모든 Region 사용 가능

    • 자세한 내용은 AWS 공식 개발자 문서 참고




 




Apache Parquet format 지원






:: S3 select 


※ 참고 : S3 console에서는 파일 최대 사이즈 제약(128MB)이 있으며, 추출되는 레코드의 사이즈 제약(40MB)이 있기 때문에 API나 SDK, CLI를 사용하는 걸 권장합니다.


 

먼저 S3 콘솔 화면에서 parquet 객체를 선택하여 Select from 화면으로 이동합니다.



File format을 Parquet으로 선택합니다.



Show file preview를 선택해보겠습니다.



parquet format의 데이터의 일부 내용 확인이 가능합니다.

NEXT를 눌러 SQL expression 화면이 나타나면 SQL editor를 수정하여 Run SQL을 눌러 결과를 확인 할 수 있으며, 결과를 파일로 다운로드 가능합니다.



 


 

 




JSON Array 지원






S3 Select 쿼리의 FROM 절에 경로 탐색을 지정하여 중첩 JSON 객체를 쿼리 가능합니다.

FROM clause:




FROM S3Object[*].path


FROM S3Object[*].path alias


FROM S3Object[*].path AS alias



 

S3에 아래와 같은 JSON 형식의 내용을 가진 파일이 있다고 합시다.



이중 transfers 에 해당하는 JSON array만 조회하고 싶을 경우

아래와 같이 Path 지정을 통해서 조회하면 정상 적으로 해당 Path의 데이터만 조회 가능합니다.



 

 




BZIP2으로 압축된 파일 지원






위에서 테스트한 JSON 형식의 파일을 BZIP2로 압축합니다. (2018/09/14기준 CSV, JSON 형식만 지원합니다.)



S3 Select from 화면으로 이동하여 BZIP2 로 선택하여 preview를 해보겠습니다.



조회문도 하나 만들어서 실행하면 아래와 같이 BZIP2로 압축된 파일에 대해서도 조회가 됨을 확인 가능합니다.



 

 




마무리






S3 Select는 향후 Athena, Redshift Spectrum 과 같은 서비스에서도 제공될 예정이라고 합니다.

추가적으로 Databrics에서는 S3 Select connecter를 별도 제공하고 있네요.

이상 간단하게 S3 Select에 추가된 신규 기능들을 알아보았습니다.