Flink CDC / Kafka Connect 自动转换 Debezium 的 DataTime / Timpstamp 时间格式

news/2024/11/20 21:32:04/

不管是用 Flink CDC 还是 Kafka Connect (Debezium Connector),在实时获取数据库的 CDC 数据并以 Json 格式写入 Kafak 中时,都会遇到 DataTime / Timpstamp 类型的转换问题,即:原始数据库中的 DataTime / Timpstamp 的字面量是 2021-12-14 00:00:00 这种形式,但是,转换为 Json 后就变成了 1639411200000 (带毫秒位的 epoch 时间),这带来的问题是:下游表基于 Json 数据建表时,对应的字段/列不能直接声明为 DataTime / Timpstamp 类型,而是必须先声明 bigint / long 类型后再进行格式转换,这带来了很大的不变,更坏的影响是,在 Flink SQL 中就不能使用 like 子句来建表了,导致手写大量的 SQL。

这个问题的解法不 Flink CDC / Kafka Connect 上,而在 Debezium 自身,对于 Flink CDC 和 Kafka Connect 是通用的,就是:开发 Debezium 的 Custom Converter,自动对时间类型的数据进行格式转换。需要注意的是:Debezium 的 Custom Converter 机制做过重大升级,编写自定义的 Converter 时要注意你所使用的 Debezium 的版本!

首先,我们看一下 Debzium 官方文档对于自定义时间格式转化给出的方案:https://debezium.io/documentatio


http://www.ppmy.cn/news/1443580.html

相关文章

UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动

UEFI安全启动模式下安装ubuntu的nvidia显卡驱动 实践设备:华硕FX-PRO(NVIDIA GeForce GTX 960M) 一、NVIDIA官网下载驱动 1.1在浏览器地址栏输入https://www.nvidia.cn/drivers/lookup/进入网站,接着手动驱动搜索,并…

数据结构-二叉树-堆

一、物理结构和逻辑结构 在内存中的存储结构,逻辑结构为想象出来的存储结构。 二、完全二叉树的顺序存储结构 parent (child - 1)/2 leftchild 2*parent 1; rightchild 2*parent 2 上面的顺序结构只适合存储完全二叉树。如果存储,会浪费很多的空…

链路层安全扩展——L2TP协议

链路层安全扩展——L2TP协议 PPP协议 协议概念 说到数据链路层的安全协议,我们不得不先提一下PPP协议,后面的PAP、CHAP与L2TP协议都是围绕它展开的。(PPP不是本文重点,很多细节没有提到,到时候会专开一篇文章讲PPP&…

ROS常用命令详解

摘要:ROS(Robot Operating System,机器人操作系统)是一个为机器人软件开发提供灵活框架的开源系统。在ROS中,常用命令是开发者进行机器人软件开发和调试的重要工具。本文将对ROS的常用命令进行详细介绍,包括节点管理、话题操作、消息查看、服务调用以及包管理等方面的命令…

【算法】基础算法003之二分

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.二分查找 朴素二…

Kafka重点笔记

Kafka重点笔记 默认端口号 9092 一、kafka将数据保存在哪里? kafka是将数据保存在磁盘。 二、离线计算、实时计算 离线计算:T1模式。处理的数据是静态数据,有界限,知道什么时候开始也知道什么时候结束。 实时计算&#xff1…

【数据结构】第二章 线性数据结构.线性表.单链表

第二章 线性数据结构.线性表.单链表 [5] 单链表的定义 1.单链表 逻辑结构:是一种线性表。 顺序表(顺序存储): 优点:可随机存取,存储密度高缺点:要求大片连续空间,改变容量不方便…

【idea】idea 中 git 分支多个提交合并一个提交到新的分支

一、方法原理讲解 我们在 dev 分支对不同的代码文件做了多次提交。现在我们想要把这些提交都合并到 test 分支。首先我们要明白四个 git 操作, commit:命令用于将你的代码变更保存到本地代码仓库中,它创建了一个新的提交(commit…