집계 함수
집계 함수 (Aggregate functions)
Amazon S3 Select의 집계 함수는 여러 행의 값을 하나로 묶어 요약해 주는 함수예요. SUM으로 폴더 안 객체의 총 크기를 구하는 예제까지 이 페이지에서 실제로 보여 드릴게요.
출처: 문서
본문
중대한 사항: Amazon S3 Select는 더 이상 신규 고객에게 제공되지 않아요. 기존 Amazon S3 Select 고객은 기존과 동일하게 기능을 계속 사용할 수 있어요.
Amazon S3 Select는 다음과 같은 집계 함수를 지원해요.
| 함수 | 인자 타입 | 반환 타입 |
|---|---|---|
| AVG( expression ) | INT , FLOAT , DECIMAL | INT 인자면 DECIMAL, 부동소수점 인자면 FLOAT; 그 외에는 인자 데이터 타입과 동일 |
| COUNT | - | INT |
| MAX( expression ) | INT , DECIMAL | 인자 타입과 동일 |
| MIN( expression ) | INT , DECIMAL | 인자 타입과 동일 |
| SUM( expression ) | INT , FLOAT , DOUBLE , DECIMAL | INT 인자면 INT, 부동소수점 인자면 FLOAT; 그 외에는 인자 데이터 타입과 동일 |
SUM 예제
S3 인벤토리(Inventory) 보고서에 있는 폴더의 총 객체 크기를 합산하려면 SUM 표현식을 사용해요.
다음 S3 인벤토리 보고서는 GZIP으로 압축된 CSV 파일이고, 세 개의 열이 있어요.
- 첫 번째 열은 인벤토리 보고서가 대상으로 하는 S3 버킷의 이름(
DOC-EXAMPLE-BUCKET)이에요. - 두 번째 열은 버킷 안의 객체를 유일하게 식별하는 객체 키 이름이에요. 첫 번째 행의
example-folder/값은example-folder폴더를 가리켜요. Amazon S3에서 버킷에 폴더를 만들면 S3가 사용자가 지정한 폴더 이름을 키로 하는 0바이트 객체를 만들거든요. 두 번째 행의example-folder/object1은example-folder폴더 안의object1객체를, 세 번째 행의example-folder/object2는example-folder폴더 안의object2객체를 나타내요. S3 폴더에 대한 자세한 내용은 "Amazon S3 콘솔에서 폴더를 사용해 객체 구성하기"를 참고해요. - 세 번째 열은 객체 크기(바이트)예요.
"DOC-EXAMPLE-BUCKET","example-folder/","0"
"DOC-EXAMPLE-BUCKET","example-folder/object1","2011267"
"DOC-EXAMPLE-BUCKET","example-folder/object2","1570024"
example-folder 폴더의 전체 크기를 SUM 표현식으로 계산하려면 Amazon S3 Select로 다음 SQL 쿼리를 실행해요.
SELECT SUM(CAST(_3 as INT)) FROM s3object s WHERE _2 LIKE 'example-folder/%' AND _2 != 'example-folder/';
쿼리 결과:
3581291