oracle - 如何从 oracle origin 与 Streamsets 连接

标签 oracle ojdbc streamsets

我想从 oracle 创建一个原始源。所以我选择oracle cdc作为起源。然后我配置了每个参数:

  • 架构名称

  • 表格

  • 用户名

  • 密码

  • JDBC 连接字符串

    但是当我运行该过程时,我发现我的日志:

2017-08-22 11:07:22,447 test/testb156f588-dbd7-4e4c-8896-caf658d14d77   ERROR   Error while connecting to DB

com.streamsets.pipeline.api.StageException: JDBC_06 - Failed to initialize connection pool: java.lang.RuntimeException: Unable to get driver instance for jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION =
(ENABLE=BROKEN)
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = myport))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.WORLD)))
    at com.streamsets.pipeline.lib.jdbc.JdbcUtil.createDataSourceForRead(JdbcUtil.java:638)
    at com.streamsets.pipeline.stage.origin.jdbc.cdc.oracle.OracleCDCSource.init(OracleCDCSource.java:643)
    at com.streamsets.pipeline.api.base.BaseStage.init(BaseStage.java:52)
    at com.streamsets.pipeline.configurablestage.DStage.init(DStage.java:40)
    at com.streamsets.datacollector.runner.StageRuntime.init(StageRuntime.java:156)
    at com.streamsets.datacollector.runner.StagePipe.init(StagePipe.java:105)
    at com.streamsets.datacollector.runner.StagePipe.init(StagePipe.java:53)
    at com.streamsets.datacollector.runner.Pipeline.initPipe(Pipeline.java:299)
    at com.streamsets.datacollector.runner.Pipeline.init(Pipeline.java:214)
    at com.streamsets.datacollector.execution.runner.common.ProductionPipeline.run(ProductionPipeline.java:96)
    at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunnable.run(ProductionPipelineRunnable.java:79)
    at com.streamsets.datacollector.execution.runner.standalone.StandaloneRunner.start(StandaloneRunner.java:646)
    at com.streamsets.datacollector.execution.runner.common.AsyncRunner.lambda$start$3(AsyncRunner.java:143)
    at com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService$SafeCallable.call(SafeScheduledExecutorService.java:233)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Unable to get driver instance for jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION =
(ENABLE=BROKEN)
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = myport))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.WORLD)))
    at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:88)
    at com.zaxxer.hikari.pool.PoolElf.initializeDataSource(PoolElf.java:157)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:113)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:73)
    at com.streamsets.pipeline.lib.jdbc.JdbcUtil.createDataSourceForRead(JdbcUtil.java:630)
    ... 19 more
Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(DriverManager.java:315)
    at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:81)
    ... 23 more

你有什么想法吗?

最佳答案

我必须在存储库下添加 ojdbc jar

/opt/streamsets-extra/streamsets-datacollector-jdbc-lib/lib

关于oracle - 如何从 oracle origin 与 Streamsets 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45816197/

相关文章:

java - 无法在 pom.xml 中为 ojdbc14 添加 Maven 依赖项

kubernetes - 无法通过 K8s 上的 URL 访问 StreamSet

sql - 从 Oracle/Mysql 中的通用数据创建 [物化] View

linux - 从远程机器访问 Oracle Apex

ruby - 写密集型特征的架构

sql - XMLTABLE 提取元素的位置()

java - ClassA 无法转换为 ClassA : java. lang.ClassCastException

java - Hibernate 使用 hibernate.jdbc.batch_versioned_data 保存陈旧数据

streamsets - 我无法执行 sudo Streamets dc 来启动 Streamset

java - 在 StreamSets 版本 2.5 中使用 StreamSets 3.8 的 JDBC 元数据处理器