Apache kafka Kafka Connect JDBC接收器连接器嵌套avro
我正在尝试为oracle数据库运行Kafka连接接收器。卡夫卡中的avro消息是嵌套的 该消息如下所示:Apache kafka Kafka Connect JDBC接收器连接器嵌套avro,apache-kafka,apache-kafka-connect,confluent-platform,Apache Kafka,Apache Kafka Connect,Confluent Platform,我正在尝试为oracle数据库运行Kafka连接接收器。卡夫卡中的avro消息是嵌套的 该消息如下所示: { "header" : { "id" : "", "source" : "", "name" : "" }, "somefields" : { "something" : "value", "other" : "its value", } }
{
"header" : {
"id" : "",
"source" : "",
"name" : ""
},
"somefields" : {
"something" : "value",
"other" : "its value",
}
}
我的问题是:
使用Kafka connect是否可以实现这一点?如果是,怎么做?我记得读到过一些不支持嵌套结构的地方。是真的吗?为什么?
我得到一个错误,说:
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)
非常感谢您的任何帮助或建议。它没有映射,因为Oracle中的哪种数据类型支持嵌套数据?我想如果我们使用Postgres,你会得到最好的结果,那能解决我们的问题吗?我不能回答这个问题,但这也不是我想问的问题。Oracle在这个过程中没有什么不好的地方。但是,您需要一个外部Kafka Connect消息转换来扁平化数据,或者您需要一个单独的Kafka流程来为您完成这项工作,并生成一个单独的主题,您将其放入ConnectUse中使用什么?转换记录在这里和合流博客中