Kafka Teradata源连接器获取列标题

时间:2020-05-05 21:24:46

标签: apache-kafka teradata apache-kafka-connect

使用Kafka Confluent Teradata源连接器将表中的数据读取到Kafka主题中。只要Teradata表中不包含“列标题”,它就可以按预期工作。如果存在“列标题”,则是指列标题而不是列名称,并得到错误。在错误消息中,“ Emp ID”是列标题,“ EMP_ID”是列名。

Error:
Caused by: org.apache.avro.SchemaParseException: Illegal character in: Emp ID
        at org.apache.avro.Schema.validateName(Schema.java:1532)
        at org.apache.avro.Schema.access$400(Schema.java:87)
        at org.apache.avro.Schema$Field.<init>(Schema.java:520)
        at org.apache.avro.Schema$Field.<init>(Schema.java:559)

尝试了多个选项,并提出了以下在属性文件中进行查询的解决方法,该方法可以正常工作。但是问题是我们要从Teradata中提取100个表,采用这种解决方法时,我们需要为每个表创建单独的属性文件,并且必须明确提及所有列。从维护的角度来看这很复杂。

query=SELECT EMP_ID AS EMP_ID, CRET_TS AS CRET_TS FROM schema.table

希望有人可以帮助解决这个问题。

1 个答案:

答案 0 :(得分:1)

将COLUMN_NAME = ON选项附加到Teradata URL

jdbc:teradata://mytdname/COLUMN_NAME=ON,