Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 通过卡夫卡主题创建的主题是否应自动创建相关主题?_Apache Kafka_Avro_Confluent Schema Registry_Ksqldb_Kafka Rest - Fatal编程技术网

Apache kafka 通过卡夫卡主题创建的主题是否应自动创建相关主题?

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

我试图模拟“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+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中的主题创建流
  • 没有主题,我只能看到创建基于avro的连接器时遇到的数据,但无法使用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"
    ]