我试图模拟“汇合加载”(不建议在生产中使用)来添加连接器,该连接器自动创建主题、主题等,从而允许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流和表进一步执行转换。
2条答案
按热度按时间nimxete21#
什么时候
kafka-topics
用于创建主题,这是否也为“topicname value”等创建关联主题。?不,主题不是自动创建的(
kafka-topics
今天甚至不允许您传递avro模式。)可能值得一个功能请求?
bxpogfeg2#
kafka-topics
只与Zookeeper和Kafka互动。它不知道是否存在模式注册表。创建avro模式/主题的过程是通过producer的avro序列化程序配置。如果kafka connect源配置了avroconverter,那么它将在获取数据时注册一个模式本身,因此您不需要curl,前提是您对生成的模式满意
据我所知,没有办法阻止ksql在注册表中自动注册模式。
似乎需要主题“topicname value/key”对来为ksql中的主题创建流。
如果你想用avro,是的。但是,对于ksql支持的其他数据格式,不需要
另外,上次我检查时,ksql不能处理avro密钥
无法使用ksql流和表进一步执行转换。
你需要更明确地说明原因。你有错误吗?