zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    JPA-基本注解
    响应式、自适应式
    Spring boot传值注意事项
    Angular与Vue
    Java 时间转换
    SpringBoot 上传读取图片 巨坑
    前后端分离之 文件上传
    System.nanoTime与System.currentTimeMillis
    sqlserver 新增子段有默认值
    json转换
  • 原文地址:https://www.cnblogs.com/slankka/p/15349780.html
Copyright © 2011-2022 走看看