일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CloudFront
- dns
- CLI
- Storage
- security group
- RDS
- route table
- AWS
- Dedup
- Windows
- Jenkins
- ncp
- S3
- Athena
- 도메인
- NaCl
- lambda
- EC2
- AD
- 윈도우
- ALB
- terraform
- VPC
- storage gateway
- Linux
- Subnet
- 네이버 클라우드 플랫폼
- FSX
- 테라폼
- Python
- Today
- Total
끄적이는 보송
[AWS] Athena 사용해보기 본문
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 되지 않았다...라는 뜻의 쿼리다.
쿼리 입력 및 실행하기
'테이블' 칸을 확인해보면 좀 전에 입력한 열 정보와 함께 테이블 생성이 완료된 것을 볼 수 있다. 우측 상단 아이콘을 클릭하면 간단한 클릭질로 미리 설정된 쿼리를 날려 데이터를 로드할 수 있다.
'테이블 미리 보기' 쿼리 실행 결과다. 잘 출력됐다.
이번엔 내가 직접 수정해 쿼리를 날려보았다. 국적이 한국인인 사람만 출력해보았다.
끝.
'STUDY > AWS' 카테고리의 다른 글
[AWS] EBS, S3, EFS 차이 (Block Level Storage, Object Storage) (0) | 2022.04.18 |
---|---|
[AWS] EC2 에 Jenkins 설치 및 default 포트 변경 (0) | 2022.04.17 |
[AWS] QuickSight 란 (0) | 2022.04.10 |
[AWS] CloudFront OAI를 이용한 제한 (1) | 2022.04.03 |
[AWS] Route 53을 이용한 도메인 생성 및 연결 (0) | 2022.04.02 |