이론, 개념잡기
<1> Athena를 사용하여 S3에 쿼리를 날려 확인해보자
<2> 원시 데이터 쿼리
<3> 압축된 데이터 쿼리 가능
<4> 분할된 데이터 쿼리
<5> 열 기반 데이터 쿼리
<6> 삭제
<10> 같이 보면 좋은 자료
<1> Athena를 사용하여 S3에 쿼리를 날려 확인해보자
아테나는 서버리스 서비스이다.
실행한 쿼리만큼 비용을 지불한다. 그래서 쿼리를 잘 실행해야 한다.
모든 쿼리를 대상으로 실행하면 그만큼 비용이 많이 나온다.
테스트 결과
1
압축된 데이터 쿼리 가능
압축은 시간이 좀 더 걸린다.
2
파티션을 해도 시간이 줄지 않는다.
6개까지만 병렬처리 한다.
3
열 기반으로 하면 빠르다.
시간이 더 안걸린다. 빠르다.
열 형식은 하나의 열(블럭)만 읽는다.
스캔 데이터도 줄었다.
// 열 기반으로 사용하는게 좋다~
<2> 원시 데이터 쿼리
serivces > athena
CREATE DATABASE seo
3
테이블 생성
생성 후 왼쪽에 table 만들어짐
CREATE EXTERNAL TABLE IF NOT EXISTS seo log1 (
xxxxxxxxxx
xxxxxxxxx
4
왼편 데이터 베이스를 seo로 변경
5
: 에서 pre view table 선택
결과 보기
6
다시 조회
SELECT
실행시간 저장
13초?
Time in queue:
0.141 sec
Run time:
13.152 sec
Data scanned:
90.72 GB
<3> 압축된 데이터 쿼리 가능
1
생성
2
조회
SELECT
3
시간
16초
Time in queue:
0.104 sec
Run time:
16.618 sec
Data scanned:
13.08 GB
<4> 분할된 데이터 쿼리
1
생성
2
스캔
MSCK REPAIR TABLE log1_partitioned;
3
14초
Time in queue:
0.241 sec
Run time:
14.99 sec
Data scanned:
432.47 MB
<5> 열 기반 데이터 쿼리
1
parquet 데이터 파일에서 외부 테이블 생성
2
재 스캔
3
SELECT
4
1초?
Time in queue:
0.153 sec
Run time:
1.633 sec
Data scanned:
1.97 MB
결과
아테나는 스캔된 바이트 수를 기초로 한다.
생성, 드롭 되는 데이터 , 실패는 비용 발생하지 않는다.
<6> 삭제
모든 테이블 삭제
DROP DATABASE seo xxxxxxxxx
<10> 같이 보면 좋은 자료
https://brunch.co.kr/@topasvga/1766
감사합니다.