Apache Parquet 形式でフローログのテーブルを作成する
以下の手順では、Apache Parquet 形式で Amazon VPC フローログ用の Amazon VPC テーブルを作成します。
Parquet 形式で Amazon VPC フローログ用の Athena テーブルを作成するには
-
考慮事項と制限 セクションのガイドラインに従って、次のような DDL ステートメントを Athena コンソールクエリエディタに入力します。サンプルステートメントは、「フローログレコード」に記載されているように、1 時間ごとに Hive パーティションされる Parquet 形式で Amazon VPC フローログのバージョン 2 から 5 の列を持つテーブルを作成します。1 時間ごとのパーティションがない場合は、
PARTITIONED BY
句からhour
を削除します。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 ビッグデータ ブログの記事「Apache Parquet 形式の VPC フローログを使用して、ネットワーク分析のパフォーマンスを最適化し、そのコストを削減する