debezium 采集pg库表日期数据(字段类型:date/varchar)
表结构1 :
CREATE TABLE date_test (
whole_date varchar(255) NOT NULL,
simple_date int4 NULL,
cn_date varchar(255) NULL,
year_month varchar(255) NULL,
year_week varchar(255) NULL
)
表结构2 :
CREATE TABLE date_test (
whole_date date NOT NULL,
simple_date int4 NULL,
cn_date varchar(255) NULL,
year_month varchar(255) NULL,
year_week varchar(255) NULL
)
问题描述:
以上两个表差异:whole_date 字段类型不同
whole_date 字段类型是:测试环境是:varchar(255) ,生产环境是date, debezium 采集测试环境date_test ,且source 字段类型是 int , 打印输出发现 whole_date 输出是null ,表关联没有数据且代码已经上生产跑过没有问题
原因:
whole_date 已经默认是 date 类型, debezium 会转换为 int 或 bigint 类型, 因为字段类型不匹配转换为 null
解决:pg 表字段类型修改为 date ,且重新采集此表数据,问题解决