各位大佬 有没有遇到过这样一个问题 flink cdc 读取oracle ,表中原本数据可以正常读取,在使用oracle客户端插入数据时,flink cdc 报错 com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.DataException: file is not a valid field name
flink 1.15.3
oracle 19c
flink cdc 2.3.0
oracle建表语句:
CREATE TABLE hcuser.HCTEST(
PERSON_ID NUMBER NOT NULL,
FIRST_NAME VARCHAR2(50) NOT NULL,
LAST_NAME VARCHAR2(50) NOT NULL,
PRIMARY KEY(PERSON_ID)
);
oracle插入数据:
insert into hcuser.HCTEST values (3,’hc’,’hc’);
flink建表语句:
set execution.checkpointing.interval=3000;
CREATE TABLE hctest (
PERSON_ID INT NOT NULL,
FIRST_NAME STRING NOT NULL,
LAST_NAME STRING NOT NULL,
PRIMARY KEY(PERSON_ID) NOT ENFORCED
) WITH (
‘connector’ = ‘oracle-cdc’,
‘scan.startup.mode’ = ‘initial’,
‘hostname’ = ‘xxx’,
‘port’ = ‘1521’,
‘username’ = ‘xxx’,
‘password’ = ‘xxx’,
‘database-name’ = ‘oatest’,
‘schema-name’ = ‘hcuser’,
‘table-name’ = ‘HCTEST’
);
这个错误可能与数据类型或字段名有关。具体来说,可能是因为 Flink CDC 在读取 Oracle 数据库表时,无法解析新插入数据的字段名或数据类型,导致了该错误的发生。
为了解决这个问题,您可以尝试以下几个方法:
检查数据类型和字段名:请检查您新插入的数据的数据类型和字段名是否符合 Oracle 数据库表的定义。如果新插入的数据的数据类型或字段名与表定义不一致,可能会导致 Flink CDC 无法解析该数据,从而导致该错误的发生。
调整 Flink CDC 连接器的配置:请检查 Flink CDC 连接器的配置是否正确,包括批处理大小、最大事务延迟等参数。建议您参考 Flink 官方文档中的相关章节,优化 Flink CDC 连接器的配置。
升级 Flink 版本:如果您正在使用较旧版本的 Flink,可能会存在一些已知的问题和 bug。建议您升级至最新版本的 Flink,以获得更好的性能和稳定性。
database-name配置要大写,此回答整理自钉群“Flink CDC 社区”