kafka连接JDBC接收器。拼合JSON记录时出错

时间:2019-09-10 11:45:11

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

我正在使用Kafka connect JDBC Sink Connector将主题中的数据存储到SQL Server表中。数据需要展平。我已经基于Confluent的示例provided创建了一个SQL Server表和JSON记录。

所以我的记录是这样的

positionCount

如您所见,我想拼合连接定界符“ _”的字段。因此,我的Sink Connector配置如下:

{
    "payload":{ 
        "id": 42,
        "name": {
          "first": "David"
        }
    },
    "schema": {
        "fields": [
            {
                "field": "id",
                "optional": true,
                "type": "int32"
            },
            {
                "name": "name",
                "optional": "false",
                "type": "struct",
                "fields": [
                    {
                        "field": "first",
                        "optional": true,
                        "type": "string"
                    }
                ]
            }
        ],
        "name": "Test",
        "optional": false,
        "type": "struct"
    }   
}

在主题中写入该记录时,出现以下异常:

connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
table.name.format=MyTable
transforms.flatten.type=org.apache.kafka.connect.transforms.Flatten$Value
topics=myTopic
tasks.max=1
transforms=flatten
value.converter.schemas.enable=true
value.converter=org.apache.kafka.connect.json.JsonConverter
connection.url=jdbc:sqlserver:[url]
transforms.flatten.delimiter=_

对于不需要展平的记录,接收器连接器可以正常工作。配置有什么问题吗?是否可以使用该模式展平JSON文件?

P.S。 Kafka Connect版本:5.3.0-css

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

好的,问题出在嵌套字段的字段名称上。正确的字段名称是“字段”,而不是“名称”:

google.maps.event.trigger(map, "center_changed");