AWS

[AWS] S3 Select - 객체 내 데이터 쿼리

비번변경 2022. 11. 7. 21:53

S3 Select

S3 Select

간단한 SQL을 이용해 객체에서 필요한 데이터만 가져올 수 있도록 하는 서비스이다. 

CSV, JSON, Apache Parquet 형식으로 또는 압축되어 저장된 객체를 대상으로 사용할 수 있고, 결과는 CSV, JSON 형식으로 설정할 수 있다.

 

S3 Select를 사용하기 위해서는 s3:GetObject 권한이 필요하다.

 

 

콘솔을 통해 사용

1. S3 버킷에 저장된 객체 중 S3 Select를 사용할 객체를 선택 > 열기 > S3 Select를 사용한 쿼리 클릭

S3 버킷에 저장된 객체 중 S3 Select를 사용할 객체를 선택 > 열기 > S3 Select를 사용한 쿼리 클릭

 

2. 쿼리 결과를 출력할 형식을 설정한다.

쿼리 결과 출력 형식 설정

 

3. 쿼리를 작성하고 실행한다.

쿼리 작성 및 실행

 

SQL

기본적으로 SELECT ~ FROM ~ WHERE 절을 사용할 수 있다.

SELECT projection [ AS column_alias | column_alias ] [, ...]
FROM s3object
WHERE condition
LIMIT number

s3object가 JSON 객체인 경우, FROM 절에 JMESPath을 사용할 수도 있다. 

SELECT id 
FROM S3Object[*].Rules[*].id

데이터베이스가 아니기 때문에 복잡한 기능은 제공하지 않지만, 기본적인 집계 함수, 조건 함수, 형변환, Date, 문자열 함수 등은 제공하고 있다.

  • 집계 함수 : AVG, COUNT, SUM, MAX, MIN 등 
  • 조건 함수 : CASE, COALESCE, NULLIF
  • 변환 함수 : CAST
  • Date : DATE_ADD, DATE_DIFF, EXTRACT, TO_STRING 등
  • 문자열 함수 : LOWER, SUBSTRING, TRIM, UPPER 등

함수 부분은 SQL 함수를 참고한다.

 

💡
SQL문은 개행 없이 한 줄로 작성해야 한다.
ORDER BY는 지원하지 않는다.

 

 

참고 문서

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/selecting-content-from-objects.html

https://towardsaws.com/how-aws-s3-select-query-in-place-helps-reduce-data-transfer-costs-5cb08a060130