我希望使用 Athena Partition Projection 来分析来自 AWS 应用程序负载均衡器的日志文件和 Firehose 发出的日志。 S3 中的数据以年/月/日为前缀,也可能以小时为前缀。我已经能够使用消防水带示例 https://docs.aws.amazon.com/athena/latest/ug/partition-projection-kinesis-firehose-example.html;但是此示例使用字符串格式的分区列。
我正在寻找是否可以使用日期格式的分区列(使用分区项目和 firehose 发出的 s3 前缀格式),因为我们的查询编写器已经习惯了涉及日期列的大多数查询,并且它避免了需要相对日期查询的字符串格式。这是可能的还是需要更改 s3 前缀才能实现?
字符串列的表属性:WORKS
PARTITIONED BY (
`logdate` string)
TBLPROPERTIES (
'projection.enabled'='true',
'projection.logdate.format'='yyyy/MM/dd',
'projection.logdate.interval'='1',
'projection.logdate.interval.unit'='DAYS',
'projection.logdate.range'='NOW-2YEARS,NOW',
'projection.logdate.type'='date',
'storage.location.template'='s3://bucket/prefix/${logdate}')
日期分区列的表属性不起作用
PARTITIONED BY (
`logdate` date)
TBLPROPERTIES (
'projection.enabled'='true',
'projection.logdate.format'='yyyy/MM/dd',
'projection.logdate.interval'='1',
'projection.logdate.interval.unit'='DAYS',
'projection.logdate.range'='NOW-2YEARS,NOW',
'projection.logdate.type'='date',
'storage.location.template'='s3://bucket/prefix/${logdate}')
HIVE_INVALID_PARTITION_VALUE:DATE 分区键的分区值“2018/11/13”无效:logdate=2018%2F11%2F13