Как преобразовать поле метки времени с определенным часовым поясом при использовании Kafka Connect?

#time #apache-kafka #apache-kafka-connect #timestamp-with-timezone

Вопрос:

Я использую соединение Кафки с базой данных MySQL для получения данных.

Мне нужно преобразовать определенный столбец с одним определенным часовым поясом.

Я пытаюсь это сделать, но получаю часовой пояс с UTC.

 transforms=convert_op_ts
transforms.convert_op_ts.type=org.apache.kafka.connect.transforms.TimestampConverter$Value
transforms.convert_op_ts.field=hour_field
transforms.convert_op_ts.format=HH:mmz
transforms.convert_op_ts.target.type=string
 

Я ищу, как определить формат в: https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html#timezone

Я хотел бы установить что-то подобное transforms.convert_op_ts.format=HH:mm 03 , чтобы указать часовой пояс, это возможно?

Комментарии:

1. Какие именно данные есть в базе данных? Каких записей Кафки вы ожидаете? Почему бы не изменить свой запрос JDBC, чтобы использовать некоторое преобразование в секунды или просто минуты после UTC этого дня? ИМО, часы и минуты сами по себе не должны иметь «часового пояса», так как дата также важна, потому что с течением истории часовые пояса изменились

2. Я делаю потоковую передачу многих таблиц из MySQL, поэтому я не изменяю запрос, потому что я использую свойство schema.whitelist для получения данных всех таблиц из схемы. У меня есть поля с датой, а другие-только с часами:минуты.

3. Если поля только HH:mm , то у них нет часового пояса, так что же вы пытаетесь преобразовать? Кроме того, зачем разделять столбцы, если вы можете использовать функции даты Mysql для извлечения их из полей меток времени?