首页 > 解决方案 > 当底层 JSON 文件中的时间戳格式发生变化时在 Athena 中查询时间戳数据

问题描述

我正在从存储在 S3 中的 JSON 文件中查询 AWS Athena 中的数据。我已经使用 AWS Glue 将所有 JSON 文件加载到 Athena 中,到目前为止它运行良好。但是,JSON 文件中的时间戳格式已从

2018-03-23 15:00:30.998

2018-08-29T07:59:50.568Z

所以表格最终有这样的条目

2018-08-29T07:59:42.803Z
2018-08-29T07:59:42.802Z
2018-08-29T07:59:32.500Z
2018-03-23 15:03:43.232
2018-03-23 15:03:44.697
2018-03-23 15:04:11.951

当我尝试对整个数据库运行查询时,这会导致解析错误。

如何在 AWS Glue(或 Athena)中适应这一点,以便在查询时不必拆分数据?我试过研究自定义分类器,但我不确定如何在这种特殊情况下使用它们。

提前致谢。

标签: amazon-web-servicesamazon-athenaprestoaws-glue

解决方案


不幸的是,您必须统一数据。如果您决定使用“2018-08-29T07:59:50.568Z”格式,则可以使用具有以下 serde 属性的 org.apache.hive.hcatalog.data.JsonSerDe 库读取此类数据:'timestamp.formats'=' yyyy-MM-dd\'T\'HH:mm:ss.SSSZ'


推荐阅读