当前位置: 首页 > news >正文

Flink CDC MySQL 时区相差 8 小时问题优雅解决方式

Flink CDC MySQL 时区相差 8 小时问题解析

代码运行环境

Flink 1.15 + FlinkCDC 2.4.0 + jdk1.8 +springboot 2.3

1、原因分析

Flink CDC 底层使用 Debezium 连接器来捕获 MySQL 的数据变更,而 Debezium 在解析 MySQL 的 binlog 日志时,默认使用 UTC 时区来处理时间字段。若 MySQL 服务器的时区设置为 UTC+8,而 Debezium 未进行相应的时区配置,就会导致时间数据相差 8 个小时。此外,MySQL 本身也有时区设置,其默认使用 UTC 时间戳来存储时间数据,在查询时可能会根据服务器的时区设置进行转换。如果 Flink 读取数据时没有正确处理时区,就会导致时间的展示与数据库中的实际时间存在 8 小时的差距。

2、解决方案

  • 自定义时间转换类 :通过实现 Debezium 的序列化接口,自定义时间转换逻辑,在解析 timestamp 字段时,将其从 UTC 转换为所需的时区,如 Asia/Shanghai。

相关文章:

  • 华为OD机试-考勤信息-双指针(JAVA 2025B卷)
  • 第五章:执行计划分析 - 读懂MySQL的执行策略
  • Nginx 配置中·IP地址变量
  • leetcode148-排序链表
  • SimpleQtLogger 使用总结
  • Nginx全面深入学习目录
  • 我的JavaWeb软件开发作品学生信息管理系统项目/JavaWeb软件开发 课程考察标准
  • OmniMeetProTrack 全维会议链智能追录系统——山东大学软件学院创新实训项目博客(六)
  • 零基础学前端-传统前端开发(第四期-JS基础-语法,语句)
  • 【SQLAlchemy系列】 SQLAlchemy 中的多条件查询:or*与 in*操作符
  • 【Docker基础】Docker核心概念:命名空间(Namespace)之PID详解
  • java+vue+SpringBoo旅游网(程序+数据库+报告+部署教程+答辩指导)
  • Spring-ai 1.0.0 学习(二)——最小化样例
  • 网络安全相关概念与技术详解
  • C++ 网络编程(12)利用单例逻辑实现逻辑类
  • Arthas 全面学习指南
  • 如何用AI绘画工具创作出属于你的拉布布(泡泡玛特)形象?
  • K-Means算法详细解析:从原理到实践
  • 618背后的电商逻辑重构:从价格血战到价值共生
  • Level1.8for循环
  • 专业做网站的公司有哪些/快排seo
  • dreamweaver网站开发视频/企业网站推广方案
  • 做软件赚钱的网站有哪些/现在阳性最新情况
  • 市场调研报告范文/合肥seo网络优化公司
  • 有没有专门做线下活动的网站/sem是什么意思
  • 云南专业网站建设/朋友圈信息流广告投放价格