首页 > 解决方案 > 无法为 kafka 设置 connection.url 为 oracle 设置连接设置

问题描述

我正在尝试设置一个管道以从 oracle 数据库中流式传输数据并将其放入主题中。我使用本地的 tnsnames.ora 文件连接到该数据库。请注意,此数据库不在本地主机上。

tnsnames.ora:

DV06 = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =dev-db.uc.com)(PORT = 5222))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = devdbsc.uc.com)))

我正在lensesio/fast-data-dev为所有必需的 Kafka 服务使用映像,并在 Docker 下运行所有​​内容。

创建连接器的步骤:

步骤1 :

识别 jar 路径:

当我尝试连接到 oracle 数据库时,我首先尝试查找 Kafka-connect-jdbc*,以便我可以下载 odbc jar 并将其放在同一文件夹中。

root@fast-data-dev / $  find / -name kafka-connect-jdbc\*.jar
/opt/landoop/connectors/third-party/kafka-connect-jdbc/kafka-connect-jdbc-5.2.3.jar
root@fast-data-dev / $

第2步:

放置jar文件:

下一步是下载 odbc jar 并放在相同的路径中。我已经从 Maven 存储库下载了它并将它放在同一个文件夹中:ojdbc8-12-2.0.1.jar

root@fast-data-dev / $ ls opt/landoop/connectors/third-party/kafka-connect-jdbc/
audience-annotations-0.5.0.jar  jline-0.9.94.jar              mariadb-java-client-2.2.1.jar  postgresql-9.4.1212.jar  sqlite-jdbc-3.25.2.jar
common-utils-5.2.3.jar          jtds-1.3.1.jar                netty-3.10.6.Final.jar         sample-config            zkclient-0.10.jar
doc                             kafka-connect-jdbc-5.2.3.jar  ojdbc8-12-2.0.1.jar            slf4j-api-1.7.25.jar     zookeeper-3.4.13.jar
root@fast-data-dev / $

第 3 步:

创建连接器:

我尝试了两个选项connection.url

选项1:

 curl -X POST "http://localhost:8083/connectors" -H "Content-type:application/json" --data \
    '{
        "name" : "orc_source",
        "config" : {
            "connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector",
            "connection.url" : "jdbc:oracle:thin:@dev-db.uc.com:5222,
            "connection.user":"FG",
            "connection.password":"1234",
            "mode":"bulk",
            "topic.prefix": "oracle_",
            "table.whitelist":"DRVR_TBL",
            "poll.interval.ms":10000
            }
    }'

选项 2:

curl -X POST "http://localhost:8083/connectors" -H "Content-type:application/json" --data \
        '{
            "name" : "orc_source",
            "config" : {
                "connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector",
                "connection.url" : "jdbc:oracle:thin:@dev-db.uc.com:5222/devdbsc.uc.com,
                "connection.user":"FG",
                "connection.password":"1234",
                "mode":"bulk",
                "topic.prefix": "oracle_",
                "table.whitelist":"DRVR_TBL",
                "poll.interval.ms":10000
                }
        }'

但在这两种情况下,我都得到以下错误:

"error_code":400,"message":"Connector configuration is invalid and contains the following 2 error(s):\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@dev-db.uc.com:5222 for configuration Couldn't open connection to jdbc:oracle:thin:@dev-db.uc.com:5222\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@dev-db.uc.com:5222 for configuration Couldn't open connection to jdbc:oracle:thin:@dev-db.uc.com:52221\nYou can also find the above list of errors at
the endpoint `/{connectorType}/config/validate`"}.

我传递connection.url的方式似乎存在一些问题,但不确定哪里出错了。请建议。

标签: apache-kafkaapache-kafka-connectojdbc

解决方案


推荐阅读