JDBC Kafka与DB2连接

时间:2018-06-21 11:28:30

标签: jdbc db2 apache-kafka-connect confluent

我正在努力让Confluent的kafka连接器连接到DB2。

我正在docker内部运行ubuntu实例,以测试目的。该解决方案需要部署到kubernetes,因此也要部署到docker。

我已经使用apt-get安装了Confluent平台并添加了其存储库。所有服务都在运行,kafka,zookeeper,schema和kafka rest。

我已按照本文中的描述创建了我的kafka connect属性文件:https://www.progress.com/blogs/build-an-etl-pipeline-with-kafka-connect-via-jdbc-connectors

我假设这对于DB2也是一样的。在上面的教程中我缺少的步骤是这一步: java -jar PROGRESS_DATADIRECT_JDBC_POSTGRESQL_ALL.jar

我试图这样运行它: java -jar /usr/share/java/kafka-connect-jdbc/db2jcc.jar

我收到此错误: no main manifest attribute, in /usr/share/java/kafka-connect-jdbc/db2jcc.jar

无论如何,我还是继续,但是我当然得到了一个错误: No suitable driver found for jdbc:datadirect:db2://db2-server:50000;User=db2admin;Password=pwd;Database=test_db

这是我启动连接器的命令: /usr/bin/connect-standalone /etc/kafka/connect-standalone.properties /etc/kafka-connect-jdbc/db2.properties

这是我的属性文件:

name=test-db2-jdbc
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
 connection.url=jdbc:datadirect:db2://db2-server:50000;User=db2admin;Password=pwd;Database=test_db
mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=modified_time
topic.prefix=test_jdbc_
table.whitelist=data_log

我确定我已经接近了。我只需要让DB2驱动程序在Java内注册,或者让kafka connect接起它并能够使用它即可。

我尝试了connector.class的其他值,但是如果像其他Java应用程序中那样将其更改为类的名称,则会收到此错误: java.util.concurrent.ExecutionException: org.apache.kafka.connect.errors.ConnectException: Class com.ibm.db2.jcc.DB2Jcc does not implement Connector

任何帮助或建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

我是您提到的教程的作者,我刚刚注意到此线程,并且看到您正在将IBM提供的DB2驱动程序(db2cc.jar)与DataDirect IBM DB2连接字符串(jdbc:datadirect:db2://db2-server:50000;User=db2admin;Password=pwd;Database=test_db)一起使用,这就是为什么只要将连接字符串更改为IBM提供的驱动程序,便能够正确连接。