此查询按预期工作。
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");
但是,如果我按照文档中的建议添加parition子句,它不会读取一行。(表创建成功(
https://docs.aws.amazon.com/athena/latest/ug/vpc-flow-logs.html
换句话说,我无法在创建表语句中使用此子句使用分区。
分区依据(dt 字符串(
如何为 VPC 流日志创建包含分区的表?
创建分区表后,还需要向其添加分区。对于分区表,LOCATION
属性不指向表的数据。新创建的分区表实质上是空的。
方法可以将分区添加到分区表。VPC 流日志不遵循 Hive 分区方案,这意味着您无法使用 MSCK REPAIR TABLE
加载所有分区。相反,您必须手动列出所有分区并使用 Glue 的 BatchCreatePartition
API 调用或通过运行 Athena 来添加它们 ALTER TABLE vpc_flow_logs3 ADD PARTITION …
.您可以在链接到的指南的步骤 4 中找到有关如何对流日志执行此操作的示例。