【Flink SQL】Unable to convert to TimestampData from unexpected value of type java.lang.Long


需求

需要將Kafka的數據導入到Apache Druid,而Apache Druid的Ingestion時區是默認UTC+0的。

不能使用如下時間格式:

  • '2021-09-28 10:00:00', 會被當成'2021-09-28T10:00:00Z'。

總結

  1. MYSQL CDC source 必須是timestamp,不能是timestamp_ltz,否則Flink作業啟動后,CDC的connector報錯。
  2. MYSQL CDC source server-time-zone 加了UTC+8,報錯(說是找不到UTC+08:00這個TimeZone Entry),只能加 'server-time-zone' = 'GMT+8'
  3. Upsert Kafka 要加 ISO-8610 屬性,但是加了會把當前時間作為UTC+0,不加直接變成原始SQL時間戳。
  4. Upsert Kafka 時間列可以設置為 TIMESTAMP_LTZ,否則JSON依舊變成UTC+0。
  5. KAFKA Connector 屬性叫json.timestamp-format.standard,KAFKA UPSERT Connector 的屬性叫value.json.timestamp-format.standard(slankka注) 。

Kafka Upsert Connector:

  'value.json.timestamp-format.standard' = 'ISO-8601',
  'key.format' = 'json',
  'value.format' = 'json',
  'value.fields-include' = 'ALL' -- EXCEPT_KEY:key不出現kafka消息的value中, 默認ALL(slankka注)

附錄

如果CDC Source的列定義為timestamp_ltz,則報錯如下:
Mysql CDC


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM