我正在尝试为oracle数据库运行Kafka连接接收器。 kafka中的avro消息是嵌套的。
消息看起来像这样:
{
"header" : {
"id" : "",
"source" : "",
"name" : ""
},
"somefields" : {
"something" : "value",
"other" : "its value",
}
}
我的问题是:
使用Kafka连接可以实现吗?如果是这样的话?我记得在某处不能支持嵌套结构。如果是这样,为什么会这样? 我收到一个错误说:
org.apache.kafka.connect.errors.ConnectException:(STRUCT) type doesn't have a mapping to the SQL database column type
at io.confluent.connect.jdbc.sink.dialect.DbDialect.getSqlType(DbDialect.java:202)
at io.confluent.connect.jdbc.sink.dialect.OracleDialect.getSqlType(OracleDialect.java:73)
at io.confluent.connect.jdbc.sink.dialect.DbDialect.writeColumnSpec(DbDialect.java:140)
at io.confluent.connect.jdbc.sink.dialect.DbDialect$3.apply(DbDialect.java:132)
at io.confluent.connect.jdbc.sink.dialect.DbDialect$3.apply(DbDialect.java:128)
at io.confluent.connect.jdbc.sink.dialect.StringBuilderUtil.joinToBuilder(StringBuilderUtil.java:54)
at io.confluent.connect.jdbc.sink.dialect.StringBuilderUtil.joinToBuilder(StringBuilderUtil.java:37)
at io.confluent.connect.jdbc.sink.dialect.DbDialect.writeColumnsSpec(DbDialect.java:128)
at io.confluent.connect.jdbc.sink.dialect.DbDialect.getCreateQuery(DbDialect.java:96)
at io.confluent.connect.jdbc.sink.DbStructure.create(DbStructure.java:87)
at io.confluent.connect.jdbc.sink.DbStructure.createOrAmendIfNecessary(DbStructure.java:62)
at io.confluent.connect.jdbc.sink.BufferedRecords.add(BufferedRecords.java:66)
at io.confluent.connect.jdbc.sink.JdbcDbWriter.write(JdbcDbWriter.java:62)
非常感谢任何帮助或建议。