Apache kafka Kafka Connect未输出JSON

Apache kafka Kafka Connect未输出JSON,apache-kafka,apache-kafka-connect,Apache Kafka,Apache Kafka Connect,我使用JDBC Kafka连接器将数据库中的数据读取到Kafka中。这是可行的,但它总是以Avro格式输出数据,即使我已经指定它应该使用JSON。我知道它是这样做的,因为当我在python中使用来自该主题的消息时,我会在每条消息的顶部看到模式 我按如下方式运行连接器: /usr/bin/connect-standalone /etc/schema-registry/connect-json-standalone.properties /etc/kafka-connect-jdbc/view.pr

我使用JDBC Kafka连接器将数据库中的数据读取到Kafka中。这是可行的,但它总是以Avro格式输出数据,即使我已经指定它应该使用JSON。我知道它是这样做的,因为当我在python中使用来自该主题的消息时,我会在每条消息的顶部看到模式

我按如下方式运行连接器:

/usr/bin/connect-standalone /etc/schema-registry/connect-json-standalone.properties /etc/kafka-connect-jdbc/view.properties
connect-json-standalone.properties文件的内容是:

bootstrap.servers=localhost:9092

key.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schema.registry.url=http://localhost:8081
key.converter.schemas.enable=true
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schema.registry.url=http://localhost:8081
value.converter.schemas.enable=true

internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false

# Local storage file for offset data
offset.storage.file.filename=/tmp/connect.offsets
/etc/kafka connect jdbc/view.properties的内容是:

name=view-small-jdbc-daily
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:teradata://domain.com/charset=UTF8,DBS_PORT=1025,DATABASE=test,USER=***,PASSWORD=***,LOB_SUPPORT=OFF
mode=bulk
table.whitelist=test_table
topic.prefix=view5-

配置中存在两个问题:

  • 如果您使用的是JSONConverter,则不需要配置模式注册表-这仅适用于AvroConverter。因此,您可以删除
    key.converter.schema.registry.url
    value.converter.schema.registry.url
  • 其次,您有
    key.converter.schemas.enable=true
    value.converter.schemas.enable=true
    ,因此JSON包含一个模式并不奇怪。你指定我们应该包括它。如果不需要架构,只需将其设置为
    false

  • 配置中存在两个问题:

  • 如果您使用的是JSONConverter,则不需要配置模式注册表-这仅适用于AvroConverter。因此,您可以删除
    key.converter.schema.registry.url
    value.converter.schema.registry.url
  • 其次,您有
    key.converter.schemas.enable=true
    value.converter.schemas.enable=true
    ,因此JSON包含一个模式并不奇怪。你指定我们应该包括它。如果不需要架构,只需将其设置为
    false

  • 您是否尝试过将converter.schmas.enable设置为false?是否尝试过将converter.schmas.enable设置为false?