Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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
无法确定kafka JdbcSourceConnector.java是否正在向主题写入数据_Java_Apache Kafka_Apache Kafka Connect - Fatal编程技术网

无法确定kafka JdbcSourceConnector.java是否正在向主题写入数据

无法确定kafka JdbcSourceConnector.java是否正在向主题写入数据,java,apache-kafka,apache-kafka-connect,Java,Apache Kafka,Apache Kafka Connect,这是我个人的研究 目标:将表中的数据流传输到卡夫卡主题,然后使用卡夫卡主题中的数据写入文件 使用的API:我目前正在尝试使用Kafka连接器,确切地说是JdbcSourceConnector类 约束:使用合流Java API,而不是通过CLI或执行提供的shell脚本来执行。 我所做的:创建JdbcSourceConnector.java类的实例,并通过提供Properties对象作为参数来调用该类的start(Properties)方法。此属性对象具有数据库连接属性、表白名单属性、主题前缀等

这是我个人的研究 目标:将表中的数据流传输到卡夫卡主题,然后使用卡夫卡主题中的数据写入文件

使用的API:我目前正在尝试使用Kafka连接器,确切地说是JdbcSourceConnector类

约束:使用合流Java API,而不是通过CLI或执行提供的shell脚本来执行。

我所做的:创建JdbcSourceConnector.java类的实例,并通过提供Properties对象作为参数来调用该类的start(Properties)方法。此属性对象具有数据库连接属性、表白名单属性、主题前缀等

问题:

  • 启动线程后,我无法从“主题前缀tablename”主题中读取数据。仅仅调用start()方法就足以将数据放入主题,还是应该实例化JdbCSourceTask类
  • 在使用JdbcSourceConnector类将数据放入主题之后,我们可以使用普通的Kafka使用者使用数据,还是需要编写JdbcSinkConnector类
  • 是否有一个简单的JavaAPI教程页面/示例代码可以参考,因为我看到的所有示例都使用CLI/shell脚本

  • 非常感谢您的帮助

    为什么您要直接使用Java API?JDBC源连接器和FileStream接收器连接器实现Kafka Connect API,并完全按照您的意愿进行操作。中的示例对此进行了说明

    如果要转换数据,则可以使用Kafka Streams或KSQL来使用正在写入的主题并应用所需的转换。您还可以查看是否要在Kafka Connect工作流本身中执行简单转换

    所以你会:

    [database] --- Kafka Connect 
                    JDBC source   --> [ Kafka topic A ]
                                             |
                                             |
                                        Kafka Streams 
                                           or KSQL
                                             |
                                             |
                                             V
                                      [ Kafka topic B] -- Kafka Connect --> [ /tmp/foo ]
                                                           File Sink
    

    所以,这不是一个你来找人做作业的地方。您发布了一个问题,给出了您迄今为止尝试的代码。然后人们试着参与进来。没有人坐在这里做作业。或者我们需要编写一个JdbcSinkConnector类嗯,你的问题中没有一部分想写入数据库,所以这是没有必要的。关于第3点-整个Kafka Connect API是开源的,这是您的示例代码。要求提供教程对你来说是离题的Stackoverflow@AbhisekRoy别以为这是家庭作业,我想请你帮个忙。当你不知道的时候,你要么帮助这个人,要么保持安静。我试过的东西很少,我会把它贴出来。@cricket\u 007 Italical\u好吧,你的问题没有一部分想写入数据库,所以这不是必要的\u Italical-我想我们需要使用JdbcSinkConnector类来阅读这个主题。我将试着看一下源代码中给出的示例。将“Sink to”外部系统转换为Kafka。“来源于”卡夫卡的外部系统。这就是术语的想法,即使用来自合流Kafka API的JdbcSourceConnector类。当数据从一个表传输到另一个主题时,在从主题读取数据之后,我希望执行某些转换逻辑(较小的数据更改)并将其写入文件。附言:你可能没有在答案中添加链接。请加上它,这样我就可以继续看了。谢谢你回答这个问题!添加了链接,对此表示抱歉,并根据您的评论修改了答案谢谢您的链接。但我想在Java代码中实现同样的功能,即添加了合流kafka maven依赖项,然后在一个简单的Java类main()方法中创建了一个JdbcSourceConnector.Java类的实例,并在该实例对象上调用start()方法。我对卡夫卡世界真的很陌生,不知道我在这里做什么。为什么?为什么要用Java编写已经为您完成的工作,只需要配置文件即可实现?我的限制是,我无法访问安装Confluent Kafka connect的系统。我所拥有的只是一台带有合流Kafka jar文件的windows机器,我可以在Java项目中使用这些文件。我不想在Java中再次重写JdbcSourceConnector。我想使用内置的汇合连接器来使用Java将数据写入主题。请帮忙。