以 Apache 鑲木地板格式建立流程記錄的資料表 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

以 Apache 鑲木地板格式建立流程記錄的資料表

下列程序會以 Apache 實木複合地板格式為 Amazon VPC 流程日誌建立 Amazon VPC 資料表。

若要以鑲木地板格式建立 Amazon VPC 流程日誌的 Athena 表
  1. 依照考量與限制本節中的準則,在 Athena 主控台查詢編輯器中輸入類似下列的DDL陳述式。範例陳述式會建立一個資料表,其中包含 Amazon VPC 流程日誌版本 2 到 5 的資料行,如同 Parquet 格式的流程記錄 (Hive 每小時分區) 中所述。如果您沒有小時分割區,請從 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' )
  2. 修改 LOCATION 's3://amzn-s3-demo-bucket/prefix/AWSLogs/' 來指向包含日誌資料的 Amazon S3 路徑。

  3. 在 Athena 主控台中執行查詢。

  4. 如果您的資料採用 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流程日誌優化效能並降低網路分析成本一文。