Как работает deprecated.legacy-timestamp в Presto 0.220? - PullRequest
0 голосов
/ 23 сентября 2019

Я столкнулся с проблемой правильного чтения меток времени без каких-либо автоматических преобразований в Presto на EMR.

Пример: в каталоге AWS Glue есть таблица со столбцами меток времени во времени UTC (метка времени типа данных).Запрашивая в Афине, они возвращаются, как и ожидалось.При запросе в Presto к EMR (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 против false вbottom

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

После включения deprecated.legacy-timestamp, установленного в true, в мою конфигурацию EMR (в пределах presto-config), я все еще получаю новый результат в соответствии с этим тестовым запросом, (и мои метки времени UTC по-прежнему автоматически конвертируются).

Есть ли какие-либо предложения относительно того, что еще мне нужно сделать, чтобы включить устаревшее поведение меток времени?

1 Ответ

1 голос
/ 24 сентября 2019

Устаревшее поведение временных меток по-прежнему используется по умолчанию, текущее состояние можно отслеживать в https://github.com/prestosql/presto/issues/37. Очевидно, что Athena оценивает временные метки так же, как Presto, когда работает с зоной сеанса UTC.

Начиная с Presto 317 вы можете принудительноЗона сеанса клиента со свойством config:

 sql.forced-session-time-zone=UTC

Для всех версий Presto вы можете установить зону сеанса клиента.Как это сделать, зависит от конкретного используемого клиента.Например, с presto-cli вы обычно делаете

java -Duser.timezone=UTC -jar presto-cli.jar
...