아테나 쿼리를 위한 쿼리용 테이블 생성 및 파티셔닝 방법
- 테이블 생성 방법
- 오른쪽 상단의
쿼리 편집기 탐색
을 클릭한다.
- 편집기 > 메뉴 가운데 부분의
테이블 및 보기
의생성
클릭 후,S3 버킷 데이터
를 클릭한다.
- 테이블 세부 정보를 작성해야한다. 여기서 말하는 테이블은, 아테나 서비스에서 쿼리를 하기 위해 한번더 재정의하는 아테나 테이블이다.
- 데이터 베이스 생성이다. 3번과 동일하게 아테나 서비스에서 사용할 데이터베이스를 생성하는 것이다. 필요하다면
데이터베이스 생성
을 진행 후, 해당 데이터베이스를 사용해도 된다.
아래 사진은 test_db
라는 데이터베이스를 사전에 생성하였다.
- 아테나 서비스가 쿼리할 대상(데이터 파일)의 위치를 지정하는 부분이다.
내가 사용한 백업데이터 S3 버킷명은 elastic-backup
이다.
따라서, s3://elastic-backup
을 작성한다.
파일은 s3://elastic-backup/GROUP_GUID/YYYY/MM/DD/EVENT 에 위치한다.
그런데 위와 같이 데이터 세트의 위치를 elastic-backup까지 작성하는 이유는,
GROUP_GUID/YYYY/MM/DD/EVENT 부분은 매번 바뀌며, 이후 파티셔닝에 사용하는 부분이다.
- 데이터 형식은 Parquet로 선택한다.
- 아테나 서비스에서 사용될 테이블의 컬럼을 정의한다.
열 대량 추가
후, 사용하고자 하는 컬럼 정의를 추가
한다.
- 이후 파티셔닝에 사용될 부분을 정의한다. 이후,
테이블 생성
을 클릭한다.
아래와 같이 열이름을 적은 이유는,
파일은 s3://elastic-backup/GROUP_GUID/YYYY/MM/DD/EVENT 에 위치한다.
GROUP_GUID/YYYY/MM/DD/EVENT가 파티셔닝에 필요한 경로이기에 파티셔닝 열로 작성한다.
추가로, 참고 내용으로 알아두면 좋은 것이 있다.파티션 정의에서 사용되는 컬럼은
7번
에서 정의한 컬럼과 이름이 중복되어서는 안된다.
- 아래와 같이
테이블 (1)
에 추가됨을 확인할 수 있다.
- 오른쪽
작업 그룹
아래의+
를 클릭하여새 쿼리
창을 생성한다.
이후, 아래와 같이 쿼리를 작성한다.
(데이터 베이스 명, 테이블 명, 파티션 값, 저장소 위치 값들은 아래와 다를 수 있다.)
ALTER TABLE test_db.test_1500 ADD PARTITION (group_guid='값', year=2021, month=10, day=17, event=1500) LOCATION 's3://elastic-backup/{GROUPGUID값}/2021/10/17/1500/'
group_guid
, year
, month
, day
, event
는 S3 저장소에 해당하는 값들을 의미한다.
이후 실행
을 클릭한다.
- 아테나 쿼리 서비스를 활용하기 위한 준비과정은 다 끝났다.
이제 원하는 쿼리를 사용하면 된다.
쿼리를 무작정 하지말자... 쿼리할때 읽는 파일의 크기 1TB당 $5의 비용이 발생한다.
(스캔한 데이터가 위 파일 크기를 뜻한다)
반응형