0

我正在使用 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-
4

1 回答 1

6

您的配置中有两个问题:

  1. 如果您使用 JSONConverter,则无需配置模式注册表 - 这仅适用于 AvroConverter。所以你可以删除key.converter.schema.registry.urlvalue.converter.schema.registry.url
  2. 其次,你有key.converter.schemas.enable=trueand value.converter.schemas.enable=true,所以你不应该对 JSON 包含一个模式感到惊讶。您指定我们应该包含它。如果您不想要架构,只需将其设置为false
于 2017-01-20T02:18:40.433 回答