在使用Flink CDC 同步Oracle的时候,由于Oracle表名和列名是中文,报错如下:”Caused by: io.debezium.DebeziumException: com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.ConnectException: The Kafka Connect schema name 'oracle_logminer.hub.结算记录.Value' is not a valid Avro schema name and its replacement 'oracle_logminer.ZLHIS.__.Value' conflicts with another different schema 'oracle_logminer.hub.费用记录.Value'
at io.debezium.relational.RelationalSnapshotChangeEventSource.lambda$createSchemaChangeEventsForTables$2(RelationalSnapshotChangeEventSource.java:277)
at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:297)
at io.debezium.relational.RelationalSnapshotChangeEventSource.createSchemaChangeEventsForTables(RelationalSnapshotChangeEventSource.java:272)
at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:125)
at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:69)
... 6 more
Caused by: com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.ConnectException: The Kafka Connect schema name 'oracle_logminer.hub.结算记录.Value' is not a valid Avro schema name and its replacement 'oracle_logminer.ZLHIS.__.Value' conflicts with another different schema 'oracle_logminer.hub.费用记录.Value'
at io.debezium.util.SchemaNameAdjuster.lambda$create$0(SchemaNameAdjuster.java:151)
at io.debezium.util.SchemaNameAdjuster.lambda$create$1(SchemaNameAdjuster.java:168)
at io.debezium.util.SchemaNameAdjuster$ReplacementOccurred.lambda$firstTimeOnly$0(SchemaNameAdjuster.java:103)
at io.debezium.util.SchemaNameAdjuster.validFullname(SchemaNameAdjuster.java:331)
at io.debezium.util.SchemaNameAdjuster.lambda$create$5(SchemaNameAdjuster.java:201)
at io.debezium.relational.TableSchemaBuilder.create(TableSchemaBuilder.java:104)
at io.debezium.relational.RelationalDatabaseSchema.buildAndRegisterSchema(RelationalDatabaseSchema.java:130)
at io.debezium.c”请问 Flink CDC是不支持Oracle中文表名列名的同步吗?
是的,Flink CDC不支持Oracle中文表名列名的同步。在处理Oracle数据库时,如果表名或列名包含非ASCII字符(如中文),可能会导致Kafka Connect抛出异常。为了解决这个问题,可以尝试以下方法:
将Oracle表名和列名转换为ASCII字符。可以使用Python或其他编程语言编写脚本来实现这一点。
修改Flink CDC的配置,允许使用非ASCII字符作为表名和列名。这可能需要修改Debezium Connector的源代码或配置文件。
使用其他支持Oracle中文表名和列名的CDC工具,如Apache NiFi、Talend等。这些工具可能已经解决了这个问题,或者提供了相应的解决方案。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。