【问题标题】:Partitions for vpc flow logsvpc 流日志的分区
【发布时间】:2019-04-14 05:20:44
【问题描述】:

此查询按预期工作。

CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs3 (
  version int,
  account string,
  interfaceid string,
  sourceaddress string,
  destinationaddress string,
  sourceport int,
  destinationport int,
  protocol int,
  numpackets int,
  numbytes bigint,
  starttime int,
  endtime int,
  action string,
  logstatus string
)  
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
LOCATION 's3://todel162/AWSLogs/XXXXX/vpcflowlogs/us-east-1/'
TBLPROPERTIES ("skip.header.line.count"="1");

但是如果我按照文档中的建议添加分区子句,它不会读取一行。 (虽然表创建成功)

https://docs.aws.amazon.com/athena/latest/ug/vpc-flow-logs.html

换句话说,我无法在 create table 语句中使用此子句来使用分区。

PARTITIONED BY(dt 字符串)

如何为 vpc 流日志创建带有分区的表?

【问题讨论】:

    标签: amazon-athena


    【解决方案1】:

    创建分区表后,您还需要为其添加分区。对于分区表,LOCATION 属性不指向表的数据。新创建的分区表基本上是空的。

    有很多方法可以将分区添加到分区表中。 VPC 流日志不遵循 Hive 分区方案,这意味着您不能使用MSCK REPAIR TABLE 加载所有分区。相反,您必须手动列出所有分区并使用 Glue 的 BatchCreatePartition API 调用或通过运行 ALTER TABLE vpc_flow_logs3 ADD PARTITION … 使用 Athena 添加它们。您可以在链接到的指南的第 4 步中找到如何为流日志执行此操作的示例。

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 2020-06-08
      • 1970-01-01
      相关资源
      最近更新 更多