【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'。
总结
- MYSQL CDC source 必须是
timestamp
,不能是timestamp_ltz
,否则Flink作业启动后,CDC的connector报错。 - MYSQL CDC source
server-time-zone
加了UTC+8,报错(说是找不到UTC+08:00这个TimeZone Entry),只能加'server-time-zone' = 'GMT+8'
。 - Upsert Kafka 要加
ISO-8610
属性,但是加了会把当前时间作为UTC+0,不加直接变成原始SQL时间戳。 - Upsert Kafka 时间列可以设置为 TIMESTAMP_LTZ,否则JSON依旧变成UTC+0。
- 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,则报错如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-09-28 Spring跨系统转发HTTP请求的简易实现(支持下载文件二进制流)
2020-09-28 OpenFeign用自定义Decoder解决JSON下划线转驼峰的问题
2020-09-28 RestTemplate上传文件的相关基础和技巧