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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Kinesis Data Firehose 示例

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

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

通常,要在不使用分区投影的情况下使用 Athena 查询 Kinesis 数据消防管数据,您可以在 Athena 中为 Kinesis 数据消防管日志创建表。然后,您必须在Amazon Glue Data Catalog当 Kinesis Data Firehose 创建一个分区时每隔一小时。

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

CREATE EXTERNAL TABLE my_table ( ... ) ... PARTITIONED BY ( datehour STRING ) LOCATION "s3://bucket/table-name/" 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/table-name/${datehour}" )

Kinesis Data Firehose 将分区前缀添加到table-name为您服务。在 Kinesis 控制台中,table-name显示在自定义前缀字段中返回的子位置类型。

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

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