在我们的系统中,我们想要将目标数据库迁移到 mongodb, 截至目前,我们正在使用 oracle 数据库,我们正在尝试从 ODI 连接 MongoDB,但我们遇到错误,因为 URL 错误,下面是格式化的 URL jdbc:mongodb:127.0.0.1:27017
我尝试使用 Cdata JDBC 驱动程序,我们能够在 MongoDB 和 Cdata JDBC 驱动程序之间创建连接,但是当尝试从 ODI 连接相同的 URL 时,我们收到以下错误
java.sql.SQLException:驱动程序类 [oracle.jdbc.OracleDriver] 不接受 URL [jdbc:datadirect:mongodb://127.0.0.1:27017] 在 oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:144) 在 oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:73) 在 com.sunopsis.sql.SnpsConnection.testConnection(SnpsConnection.java:1243) 在 com.sunopsis.graphical.dialog.SnpsDialogTestConnet.getLocalConnect(SnpsDialogTestConnet.java:173) 在 com.sunopsis.graphical.dialog.SnpsDialogTestConnet.access 400 美元(SnpsDialogTestConnet.java:51) 在 com.sunopsis.graphical.dialog.SnpsDialogTestConnet$5.doInBackground(SnpsDialogTestConnet.java:629) 在 com.sunopsis.graphical.dialog.SnpsDialogTestConnet$5.doInBackground(SnpsDialogTestConnet.java:625) 在 oracle.odi.ui.framework.AbsUIRunnableTask.run(AbsUIRunnableTask.java:258) 在 oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:947) 在 java.lang.Thread.run(Thread.java:745) 导致:java.sql.SQLException:驱动程序类 [oracle.jdbc.OracleDriver] 不接受 URL [jdbc:datadirect:mongodb://127.0.0.1:27017] 在 oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:144) 在 oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:73) 在 oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter.getConnection(OnConnectOnDisconnectDataSourceAdapter.java:87) 在 oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter$ConnectionProcessor.run(LoginTimeoutDatasourceAdapter.java:228) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ... 1 更多 导致:java.sql.SQLException:驱动程序类 [oracle.jdbc.OracleDriver] 不接受 URL [jdbc:datadirect:mongodb://127.0.0.1:27017] 在 oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver (DriverManagerDataSource.java:408) 在 oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver (DriverManagerDataSource.java:385) 在 oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver (DriverManagerDataSource.java:352) 在 oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:331) ...还有6个
您提供的网址似乎不正确。对于 CData MongoDB JDBC,格式如下所示:
jdbc:mongodb:Server=127.0.0.1;Port=27017;Database=test;User=test;Password=test;
确保 CData MongoDB JDBC 驱动程序 .jar 文件放置在适当的目录中,以便 ODI 加载它。对于 ODI,通常的目录是:
<ODI_HOME>/userlib
在 ODI 中注册 JDBC 驱动程序
打开ODI Studio。转到拓扑 > 物理架构。
展开技术并选择 JDBC。
右键单击 JDBC 并选择“创建新数据源”。填写详细信息:名称:MongoDB_CData(或类似名称)。驱动程序:cdata.jdbc.mongodb.MongoDBDriver(CData MongoDB 驱动程序的驱动程序类名称)。 URL:jdbc:mongodb:服务器=127.0.0.1;端口=27017;数据库=your_database。 用户名/密码:如果您的 MongoDB 实例需要身份验证,请输入凭据。
完成此操作后,您需要在 ODI 中测试连接 注册 JDBC 连接后,在 ODI 中测试它,方法是导航到拓扑 > 物理架构,选择新创建的 MongoDB 数据服务器,然后单击测试连接。
还要检查映射和模型是否已更新以针对新的 MongoDB 连接。