通过Kafka主题创建的主题是否应自动创建相关主题?

kzipqqlq  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(615)

我试图模拟“汇合加载”(不建议在生产中使用)来添加连接器,该连接器自动创建主题、主题等,从而允许ksql流和表的创建。我使用curl与rest接口交互。
当使用Kafka主题来创建主题时,是否也会为其创建相关主题 "topicName-value" 等等。?

$ curl -X GET http://localhost:8082/topics | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   199  100   199    0     0  14930      0 --:--:-- --:--:-- --:--:-- 15307
[
  "Topic_OracleSource2"
]

curl -X GET http://localhost:8081/subjects | jq

[]

什么也看不出来。但是,执行 curl :

curl -X POST -H "Content-Type: application/vnd.kafka.avro.v2+json"       -H "Accept: application/vnd.kafka.v2+json"       --data '{"value_schema": "{\"type\": \"record\", \"name\": \"User\", \"fields\": [{\"name\": \"name\", \"type\": \"string\"}]}", "records": [{"value": {"name": "testUser"}}]}'       "http://localhost:8082/topics/avrotest"

创建主题:

curl -X GET http://localhost:8081/subjects | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    18  100    18    0     0   2020      0 --:--:-- --:--:-- --:--:--  2250
[
  "avrotest-value"
]

据我所知,不建议这样做,因为主题是动态创建的,而不是在受控环境中预先创建的。
这个问题产生的原因是它似乎是一个主题 'topicName-value/key' 为ksql中的主题创建流需要pair。
如果没有主题,我只能看到创建的基于avro的连接器遇到的数据,但无法使用ksql流和表进一步执行转换。

nimxete2

nimxete21#

什么时候 kafka-topics 用于创建主题,这是否也为“topicname value”等创建关联主题。?
不,主题不是自动创建的( kafka-topics 今天甚至不允许您传递avro模式。)
可能值得一个功能请求?

bxpogfeg

bxpogfeg2#

kafka-topics 只与Zookeeper和Kafka互动。它不知道是否存在模式注册表。
创建avro模式/主题的过程是通过producer的avro序列化程序配置。如果kafka connect源配置了avroconverter,那么它将在获取数据时注册一个模式本身,因此您不需要curl,前提是您对生成的模式满意
据我所知,没有办法阻止ksql在注册表中自动注册模式。
似乎需要主题“topicname value/key”对来为ksql中的主题创建流。
如果你想用avro,是的。但是,对于ksql支持的其他数据格式,不需要
另外,上次我检查时,ksql不能处理avro密钥
无法使用ksql流和表进一步执行转换。
你需要更明确地说明原因。你有错误吗?

相关问题