apache-kafka - Kafka Teradata 源连接器获取列标题
问题描述
使用 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)
尝试了多个选项,并提出了以下在属性文件中提供查询的解决方法,这按预期工作。但问题是我们有 100 多个表要从 Teradata 中提取,通过这种解决方法,我们需要为每个表创建单独的属性文件,并且必须明确提及所有列。从维护的角度来看,这使得复杂化。
query=SELECT EMP_ID AS EMP_ID, CRET_TS AS CRET_TS FROM schema.table
希望有人可以帮助解决这个问题。
解决方案
将 COLUMN_NAME=ON 选项附加到 Teradata URL
jdbc:teradata://mytdname/COLUMN_NAME=ON,
推荐阅读
- angular - 具有多个表单组的Angular 6动态表单
- android - 库可以依赖并从另一个多风格库中读取资源吗?
- java - Apache Tomcat 无法在 Mac 上启动
- rest - 使用 groovy 脚本在 SoapUI 中比较 JDBC 响应和 REST API 响应
- kubernetes - StatefulSet、ReplicaSet 或 DaemonSet。单个 Pod 最好的是什么?
- r - LaTeX 错误:CRAN Debian 版本上包 xcolor 的选项冲突
- angular - Azure 广告 B2C 密码重置链接默认使用注册/登录策略端点重定向
- powershell - 祖父母文件夹名称到文件名
- javascript - 如何使用 webpack 从项目根目录导入外部文件?
- warnings - 记录 MarkLogic 中显示的警告:清除过期的 DatabaseQueryPath MarkLogic