我遇到了正确读取时间戳的问题,在 EMR 上的 Presto 上没有任何自动转换。
示例:在 AWS Glue 目录中,我有一个表,其中包含 UTC 时间的时间戳列(数据类型时间戳)。在 Athena 中查询时,它们按预期返回。在 EMR 上的 Presto(EMR 5.26,Presto 0.220)中查询时,会自动转换到不同的时区。
Presto 文档在此处描述了一种禁用此行为的方法 - https://prestosql.io/docs/current/language/timestamp。
The legacy semantics can be enabled using the deprecated.legacy-timestamp config property. Setting it to true (the default) enables the legacy semantics, whereas setting it to false enables the new semantics.
他们概述了他们的结果差异,此选项在底部设置为 true vs false
Query: SELECT TIME '10:00:00 Asia/Kathmandu' AT TIME ZONE 'UTC'
Legacy result: 04:30:00.000 UTC
New result: 04:15:00.000 UTC
在我的 EMR 配置中包含deprecated.legacy-timestamp
设置后true
(在 presto-config 中),我仍然根据此测试查询获得新结果,(并且我的 UTC 时间戳仍在自动转换中)。
关于我还需要做什么来启用遗留时间戳行为的任何建议?