Клей AWS: сканер неправильно интерпретирует метки времени как строки.GLUE ETL, предназначенный для преобразования строк в метки времени, делает их пустыми - PullRequest
0 голосов
/ 27 августа 2018

Я поигрался с AWS Glue для быстрой аналитики, следуя инструкции здесь

Хотя я смог успешно создавать сканеры и обнаруживать данныев Афине у меня были проблемы с типами данных, созданными сканером.Типы данных date и timestamp считываются как типы данных string.

Вслед за этим я создал задание ETL в GLUE, используя источник данных, созданный искателем, в качестве входных данных ицелевая таблица в Amazon S3

В рамках преобразования преобразования я преобразовал типы данных даты и отметки времени как string в timestamp, но, к сожалению, ETL преобразовал эти столбцынабирает NULLS.Я обдумывал использование классификаторов с GROK выражениями, но затем решил преобразовать их как часть ETL в GLUE.

Формат отметки времени: 1/08/2010 6:15:00 PM

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Ниже приведены встроенные классификаторы для данных отметки времени.Как видите, имеющиеся у вас данные не соответствуют ни одному из них.Вам нужно будет создать собственный классификатор, а затем добавить его в новый сканер (обновление существующего сканера не работает)

 TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?

 TZ (?:[PMCE][SD]T|UTC)

 DATESTAMP_RFC822 %{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME} %{TZ}

 DATESTAMP_RFC2822 %{DAY}, %{MONTHDAY} %{MONTH} %{YEAR} %{TIME} %{ISO8601_TIMEZONE}

 DATESTAMP_OTHER %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{TZ} %{YEAR}

 DATESTAMP_EVENTLOG %{YEAR}%{MONTHNUM2}%{MONTHDAY}%{HOUR}%{MINUTE}%{SECOND}

 CISCOTIMESTAMP %{MONTH} %{MONTHDAY} %{TIME}
0 голосов
/ 29 августа 2018

Я не знаю, какой формат метки времени вы используете, поэтому я предположил, что формат следующий:

2018-05-30T12:22:07.000Z

В этом случае вы можете установить параметр serde в определении таблицы, как показано ниже:

'timestamp.formats'='yyyy-MM-dd\'T\'HH:mm:ss.SSSZ'
...