S3 Select
간단한 SQL을 이용해 객체에서 필요한 데이터만 가져올 수 있도록 하는 서비스이다.
CSV, JSON, Apache Parquet 형식으로 또는 압축되어 저장된 객체를 대상으로 사용할 수 있고, 결과는 CSV, JSON 형식으로 설정할 수 있다.
S3 Select를 사용하기 위해서는 s3:GetObject 권한이 필요하다.
콘솔을 통해 사용
1. 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