Kafka Connect JDBC sink连接器嵌套avro

时间:2018-05-30 23:24:28

标签: apache-kafka apache-kafka-connect confluent

我正在尝试为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)

非常感谢任何帮助或建议。

0 个答案:

没有答案