当基础 JSON 文件中的时间戳格式发生变化时,在 Athena 中查询时间戳数据

Querying timestamp data in Athena when the timestamp format in the underlying JSON files has changed

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

的 JSON 文件中发生了变化
2018-03-23 15:00:30.998

2018-08-29T07:59:50.568Z

所以 table 最终有这样的条目

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)中容纳它,以便在查询时不必拆分数据?我已经尝试研究自定义分类器,但我不确定如何在这种特殊情况下使用它们。

提前致谢。

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