Apache kafka 通过卡夫卡主题创建的主题是否应自动创建相关主题?
我试图模拟“confluent load”(不建议在生产中使用),添加连接器,自动创建主题、主题等,从而允许创建ksql流和表。我使用curl与rest接口交互Apache kafka 通过卡夫卡主题创建的主题是否应自动创建相关主题?,apache-kafka,avro,confluent-schema-registry,ksqldb,kafka-rest,Apache Kafka,Avro,Confluent Schema Registry,Ksqldb,Kafka Rest,我试图模拟“confluent load”(不建议在生产中使用),添加连接器,自动创建主题、主题等,从而允许创建ksql流和表。我使用curl与rest接口交互 使用卡夫卡主题创建主题时,是否也会为“topicName value”等创建相关主题 什么也看不出来。但是,执行卷曲: curl -X POST -H "Content-Type: application/vnd.kafka.avro.v2+json" -H "Accept: application/vnd.kafka.v2
“topicName value”
等创建相关主题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中的主题创建流kafka topics
创建主题时,是否也会为“topicName value”等创建相关主题
不,主题不是自动创建的。(卡夫卡主题
今天甚至不允许您传递Avro模式。)
可能值得一次功能请求?卡夫卡主题仅与Zookeeper和卡夫卡交互。它不知道存在模式注册表 创建Avro模式/主题的过程是通过生产者的Avro序列化程序配置。如果Kafka Connect源配置了AvroConverter,它将在获取数据时注册模式本身,所以假设您对生成的模式满意,您不需要curl 据我所知,没有办法阻止KSQL在注册表中自动注册模式 似乎需要主题“topicName value/key”对来为KSQL中的主题创建流 如果您想使用Avro,可以。但是,对于KSQL支持的其他数据格式来说,不需要 另外,我上次检查时,KSQL无法处理Avro密钥 无法使用ksql流和表进一步执行转换
你需要更明确地说明原因。你有错误吗 对Apache或Confluent的功能请求会修补所述脚本吗?这将是对Confluent的功能请求,因为Apache Kafka的功能不包括模式注册表,因此AK不会接受修补程序来改进自己的
Kafka主题。sh
。您的回答很好顺便说一句:-)谢谢Michael和cricket!对于具有Confluent功能的潜在商业功能,功能请求是如何工作的?:)@HTL我想它需要一个PR来处理TopicCommand
wrapper类,该类接受一个schema注册表URL——我最后做的是清除环境的所有元数据,并使用curl重新创建连接器。Curl似乎只允许json格式,但我将avro作为属性文件的一部分嵌入其中,如:Kafka Connect和schema registry API只接受json,因此,其想法是:加载连接器(Oracle)>创建主题>使用纯avro作为标准格式的KSQL操作。有人成功了吗?1.加载连接器(使用confluent load也会创建主题。例如:confluent load connector\u OracleSource\u TABLE1-d source\u oracle\u TABLE1.properties)----curl-X POST-H“Content Type:application/json”-data@source\u oracle\u TABLE1.properties---------properties(avro):{“name”:“connector\u OracleSource\u TABLE1”,“config”:“connector.class:“io.confluent.connect.jdbc.JdbcSourceConnector”,“topic.prefix:“topic\u OracleSource\u TABLE1”/“key.converter:“io.confluent.connect.avro.AvroConverter”,“key.converter.schema.registry.url:”,“value.converter:“io.confluent.connect.avro.AvroConverter”,“value.schema.registry.url:”,“}”curl与json一起使用,但主体属性文件为avro,这似乎有效,但不确定其含义?!这次创建主题:------curl-X GET | jq%Total%Received%Xferd平均速度时间当前数据加载上载总花费的左速度100 53 10053 0 0 2960 0--:---:---:---:---3117[“Connector\u OracleSource\u TABLE1”]如果下面的答案之一解决了您的问题,请将其标记为已接受。
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"
]