본문 바로가기

카테고리 없음

[Athena] 테이블 생성 및 수동 파티셔닝 방법 (웹)

아테나 쿼리를 위한 쿼리용 테이블 생성 및 파티셔닝 방법

  • 테이블 생성 방법
  1. 오른쪽 상단의 쿼리 편집기 탐색을 클릭한다.

image



  1. 편집기 > 메뉴 가운데 부분의 테이블 및 보기생성 클릭 후, S3 버킷 데이터를 클릭한다.



  1. 테이블 세부 정보를 작성해야한다. 여기서 말하는 테이블은, 아테나 서비스에서 쿼리를 하기 위해 한번더 재정의하는 아테나 테이블이다.

image



  1. 데이터 베이스 생성이다. 3번과 동일하게 아테나 서비스에서 사용할 데이터베이스를 생성하는 것이다. 필요하다면 데이터베이스 생성을 진행 후, 해당 데이터베이스를 사용해도 된다.

아래 사진은 test_db라는 데이터베이스를 사전에 생성하였다.

image



  1. 아테나 서비스가 쿼리할 대상(데이터 파일)의 위치를 지정하는 부분이다.

내가 사용한 백업데이터 S3 버킷명은 elastic-backup이다.

따라서, s3://elastic-backup을 작성한다.

파일은 s3://elastic-backup/GROUP_GUID/YYYY/MM/DD/EVENT 에 위치한다.

그런데 위와 같이 데이터 세트의 위치를 elastic-backup까지 작성하는 이유는,

GROUP_GUID/YYYY/MM/DD/EVENT 부분은 매번 바뀌며, 이후 파티셔닝에 사용하는 부분이다.

image



  1. 데이터 형식은 Parquet로 선택한다.

image



  1. 아테나 서비스에서 사용될 테이블의 컬럼을 정의한다.

열 대량 추가 후, 사용하고자 하는 컬럼 정의를 추가 한다.

imageimage



  1. 이후 파티셔닝에 사용될 부분을 정의한다. 이후, 테이블 생성을 클릭한다.

아래와 같이 열이름을 적은 이유는,
파일은 s3://elastic-backup/GROUP_GUID/YYYY/MM/DD/EVENT 에 위치한다.
GROUP_GUID/YYYY/MM/DD/EVENT가 파티셔닝에 필요한 경로이기에 파티셔닝 열로 작성한다.

추가로, 참고 내용으로 알아두면 좋은 것이 있다.

파티션 정의에서 사용되는 컬럼은 7번에서 정의한 컬럼과 이름이 중복되어서는 안된다.

image



  1. 아래와 같이 테이블 (1)에 추가됨을 확인할 수 있다.



  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 저장소에 해당하는 값들을 의미한다.
이후 실행을 클릭한다.



  1. 아테나 쿼리 서비스를 활용하기 위한 준비과정은 다 끝났다.

이제 원하는 쿼리를 사용하면 된다.

쿼리를 무작정 하지말자... 쿼리할때 읽는 파일의 크기 1TB당 $5의 비용이 발생한다.

(스캔한 데이터가 위 파일 크기를 뜻한다)

반응형