끄적이는 보송

[AWS] Athena 사용해보기 본문

STUDY/AWS

[AWS] Athena 사용해보기

끄적이는 보송 2022. 4. 12. 00:26
반응형

AWS Athena 란

AWS Athena 서비스는 표준 SQL을 이용해 S3 Bucket 저장된 데이터를 직접 분석할 수 있는 대화식 서버리스 쿼리 서비스이다. Athena 서비스 자체만 보면 별도의 추가 인프라는 필요 없으며 실행한 쿼리당 과금이 발생한다. 원한다면 실행된 쿼리의 결과 창을 csv파일로 저장할 수도 있다. 요금은 작성일 기준으로 TB당 $5.00라고 한다. (https://aws.amazon.com/ko/athena/pricing/?nc=sn&loc=3)

 

준비물

1. Athena (별도의 준비 필요 없음)
2. S3 Bucket (테스트 데이터 저장용)
3. 테스트 CSV 파일 (테스트 데이터 파일은 하기와 같이 임의로 작성했다. 큰 의미는 없다.)

 

실습

준비물은 위와 같고, 실습 순서는 대략 'S3 버킷에 데이터 파일 업로드 > Athena에서 database 생성하기 > Table 생성하기 (데이터가 로드될 곳을 셋업 하는 과정) > 쿼리 입력 및 실행' 정도가 되겠다. 본 실습은 테스트 파일 생성 및 S3 버킷 업로드는 넘어가겠다.

Athena에서 database 생성하기

Athena 서비스 화면으로 이동해, 먼저 database를 생성해주자. 생성 방법은 쿼리 창에 'CREATE DATABASE your_db_name' 명령어를 입력해 주면 된다.

Table 생성하기

이제 데이터가 로드될 Table을 생성해줘야 한다. Table은 당연히 로드될 데이터 포맷에 맞추어 생성해준다. 내가 사용할 테스트 데이터 파일은 윗글을 참고하자. 밑의 작업은 직접 쿼리를 짤 필요 없이 콘솔 환경의 간단한 안내를 따라 S3 버킷에 있는 데이터 파일을 위한 테이블을 생성하는 과정이다. 직접 쿼리를 짤 수 있다면 이과정은 생략해도 된다.

'테이블 및 보기' > '생성' > 'S3 버킷 데이터' 선택

테이블 이름 입력

미리 생성해 둔 데이터베이스 선택. 새로 생성해줘도 된다.

데이터가 위치한 S3 버킷의 URL 입력. 반드시 끝에 '/'을 입력하는 것을 잊지 말자.

파일 형식은 CSV

이제 내 데이터 파일을 참고해, 데이터가 로드될 열을 생성해주는 단계다. 이 부분이 잘못되면 원하는 데이터를 불러올 수 없다. 직접 열을 한 줄 코드로 입력할 수도 있고, 아니면 하나하나 열을 추가해 입력할 수도 있다.

이 모든 과정을 거치면 위와 같이 긴(?) 쿼리가 완성되어 실행된 것을 볼 수 있다. 내용을 확인해보면 'my_test_database' 데이터베이스에서 'test_table' 테이블이 존재하지 않으면 설정대로 생성하고, Athena가 데이터를 테이블에 읽고 쓸 때 필요한 SerDe의 형식을 명시적으로 표준으로 지정했고, 데이터 파일의 S3 버킷 위치를 명시했고, 데이터는 encrypted 되지 않았다...라는 뜻의 쿼리다.

쿼리 입력 및 실행하기

'테이블' 칸을 확인해보면 좀 전에 입력한 열 정보와 함께 테이블 생성이 완료된 것을 볼 수 있다. 우측 상단 아이콘을 클릭하면 간단한 클릭질로 미리 설정된 쿼리를 날려 데이터를 로드할 수 있다. 

'테이블 미리 보기' 쿼리 실행 결과다. 잘 출력됐다.

이번엔 내가 직접 수정해 쿼리를 날려보았다. 국적이 한국인인 사람만 출력해보았다.

끝.

반응형
Comments