Apache kafka Kafka Connect JDBC接收器连接器嵌套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", } }

我正在尝试为oracle数据库运行Kafka连接接收器。卡夫卡中的avro消息是嵌套的

该消息如下所示:

    {
      "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中使用什么?转换记录在这里和合流博客中