Amazon Kinesis Data Firehose 示例 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Amazon Kinesis Data Firehose 示例

Kinesis Data Firehose 采用以下路径格式将数据存储在 Amazon S3 中:

s3://bucket/folder/yyyy/MM/dd/HH/file.extension

通常,要在不使用分区投影的情况下使用 Athena 查询 Kinesis Data Firehose 数据,您可以在 Athena 中为 Kinesis Data Firehose 日志创建表。之后,在 Kinesis Data Firehose 创建分区时,您必须每小时向 AWS Glue 数据目录 中的表添加一次分区。

通过使用分区投影,您可以使用一次性配置来将分区的驻留位置告知 Athena。以下 CREATE TABLE 示例假定开始日期为 2018 年 1 月 1 日午夜。请注意,通过对日期范围的上限使用 NOW,可让新数据在适当的 UTC 时间自动变得可供查询。

CREATE EXTERNAL TABLE my_table ( ... ) ... PARTITIONED BY ( datehour STRING ) LOCATION "s3://bucket/prefix/" TBLPROPERTIES ( "projection.enabled" = "true", "projection.datehour.type" = "date", "projection.datehour.range" = "2018/01/01/00,NOW", "projection.datehour.format" = "yyyy/MM/dd/HH", "projection.datehour.interval" = "1", "projection.datehour.interval.unit" = "HOURS", "storage.location.template" = "s3://bucket/prefix/${datehour}" )

使用此表,您可以运行如下查询,而无需手动添加分区:

SELECT * FROM my_table WHERE datehour >= '2018/02/03/00' AND datehour < '2018/02/03/04'