[AWS Athena] 45. Athena

2020. 12. 30. 09:30AWS

반응형

ㅇ Athena란?

    > 표준 SQL을 사용해 S3에 저장된 데이터를 간편하게 분석할 수 있는 쿼리 서비스

    > 사용한 쿼리에 대해서만 비용 지불

 

ㅇ Athena 사용

    > [Athena 서비스] - [Get Started] 선택

 

    > [Workgroup: test] - [Create workgroup] 선택해 Workgroup 생성

        * Workgroup: 수행할 Athena 결과를 어느 S3에 저장할 지 선택

 

    > Workgroup 이름과 결과가 저장될 S3 위치 설정

 

    > [Query Editor] 탭에서 쿼리문을 실행해 S3 분석이 가능하며, Query 사용을 위해 Table을 우선적으로 생성

        * DB에 사용될 Table을 생성, 수정, 검색을 각각 하나의 Query를 사용해서 수행

 

        * Table 생성 Query(CloudTrail에 기입되는 모든 정보를 출력하기 위한 Table)

CREATE EXTERNAL TABLE (Table 이름) (
eventversion STRING,
useridentity STRUCT<
               type:STRING,
               principalid:STRING,
               arn:STRING,
               accountid:STRING,
               invokedby:STRING,
               accesskeyid:STRING,
               userName:STRING,
sessioncontext:STRUCT<
attributes:STRUCT<
               mfaauthenticated:STRING,
               creationdate:STRING>,
sessionissuer:STRUCT<  
               type:STRING,
               principalId:STRING,
               arn:STRING,
               accountId:STRING,
               userName:STRING>>>,
eventtime STRING,
eventsource STRING,
eventname STRING,
awsregion STRING,
sourceipaddress STRING,
useragent STRING,
errorcode STRING,
errormessage STRING,
requestparameters STRING,
responseelements STRING,
additionaleventdata STRING,
requestid STRING,
eventid STRING,
resources ARRAY<STRUCT<
               ARN:STRING,
               accountId:STRING,
               type:STRING>>,
eventtype STRING,
apiversion STRING,
readonly STRING,
recipientaccountid STRING,
serviceeventdetails STRING,
sharedeventid STRING,
vpcendpointid STRING
)
PARTITIONED BY (region string, year string, month string, day string)
ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde'
STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION '(분석할 S3 위치)';

 

    > 이후 "Ctrl + Enter"을 통해 쿼리문을 수행할 수 있으며, Table 생성에 성공했을 경우 좌측 "Tables"에 새로운 Table이 생성됨을 확인 가능

 

    > 쿼리문 처리를 위해 스캔하는 데이터 양을 제한하여 성능을 향상시키고, 비용을 절감시키기 위해 데이터 파티셔닝이 가능

        * 파티셔닝: 어떤 키를 기준으로 데이터를 분류하는 작업으로, 이번 실습에서는 지역, 연, 월, 일 로 진행

 

    > 해당 Table의 모든 데이터 출력

 

    > Query문 작성란 하단부에 해당 Query의 결과가 출력됨

 

    > 해당 결과문은 .csv 파일로 다운이 가능

 

반응형

'AWS' 카테고리의 다른 글

[AWS Route53] 47. Record 마이그레이션  (0) 2021.01.01
[AWS] 46. Apache 서버 인증서 변경 및 적용  (0) 2020.12.31
[AWS] 40. NTP 설정  (0) 2020.10.05
[AWS VPC] 39. VPC EndPoint  (0) 2020.09.25
[AWS EC2] 38. AutoScaling 정책  (0) 2020.09.24