Apache Parquet 형식으로 흐름 로그용 테이블 생성
다음은 Apache Parquet 형식으로 Amazon VPC 흐름 로그에 대한 Amazon VPC 테이블을 생성하는 절차입니다.
Parquet 형식으로 Amazon VPC 흐름 로그에 대한 Athena 테이블 생성
-
고려 사항 및 제한 섹션의 다음 지침에 따라 Athena 콘솔 쿼리 편집기에 다음과 같은 DDL 문을 입력합니다. 다음 샘플 문은 흐름 로그 레코드에 설명된 대로 Parquet 형식으로 Amazon VPC 흐름 로그 버전 2 ~ 5의 열을 포함하는 테이블을 만들며 Hive는 매시간 분할됩니다. 시간당 파티션이 없는 경우
hour
절에서PARTITIONED BY
를 제거합니다.CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs_parquet ( version int, account_id string, interface_id string, srcaddr string, dstaddr string, srcport int, dstport int, protocol bigint, packets bigint, bytes bigint, start bigint, `end` bigint, action string, log_status string, vpc_id string, subnet_id string, instance_id string, tcp_flags int, type string, pkt_srcaddr string, pkt_dstaddr string, region string, az_id string, sublocation_type string, sublocation_id string, pkt_src_aws_service string, pkt_dst_aws_service string, flow_direction string, traffic_path int ) PARTITIONED BY ( `aws-account-id` string, `aws-service` string, `aws-region` string, `year` string, `month` string, `day` string, `hour` string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/
prefix
/AWSLogs/' TBLPROPERTIES ( 'EXTERNAL'='true', 'skip.header.line.count'='1' ) -
로그 데이터가 포함된 Amazon S3 경로를 가리키도록 샘플
LOCATION 's3://amzn-s3-demo-bucket/
을 수정합니다.prefix
/AWSLogs/' -
Athena 콘솔에서 쿼리를 실행합니다.
-
데이터가 Hive 호환 형식인 경우 Athena 콘솔에서 다음 명령을 실행하여 메타스토어의 Hive 파티션을 업데이트 및 로드합니다. 쿼리가 완료되면
vpc_flow_logs_parquet
테이블에서 데이터를 쿼리할 수 있습니다.MSCK REPAIR TABLE vpc_flow_logs_parquet
Hive 호환 데이터를 사용하지 않는 경우 ALTER TABLE ADD PARTITION을 실행하여 파티션을 로드합니다.
Athena를 사용하여 Parquet 형식으로 Amazon VPC 흐름 로그를 쿼리하는 방법에 대한 자세한 내용은 AWS Big Data Blog의 Optimize performance and reduce costs for network analytics with VPC Flow Logs in Apache Parquet format