【问题标题】:Use Redshift as Pentaho PDI database repository使用 Redshift 作为 Pentaho PDI 数据库存储库
【发布时间】:2025-12-16 19:15:01
【问题描述】:

我在 PDI CE 7.0 上运行 Spoon 并尝试第一次设置我的数据库存储库。 我可以使用 SQL Server 作为我的数据库存储库,但我想知道是否可以使用我的 Redshift 服务器作为我的数据库存储库。

当我测试我的数据库连接时,它运行良好。 但是,当我尝试连接到存储库时,我收到一条错误消息,提示“您似乎没有连接到服务器。请检查您使用的路径并确保服务器已启动并正在运行” (Click to see error message)

我已经尝试更改我的 JDBC 驱动程序。我已经使用 Postgresql Driver 9.3 和 8.4 以及 Amazon 的 Redshift Driver 进行了测试。通过所有这些选项,我得到了相同的信息。

是否可以使用 Redshift 作为我的数据库存储库?

这是我从 Spoon 控制台收到的堆栈跟踪。

2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : Unable to connect to repository
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : 

org.pentaho.di.core.exception.KettleException:
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
 Error connecting to the repository!
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -

2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -

No repository exists on the specified connection.

To create a repository, select the Edit' button followed by the 'Create or upgra
de' button.
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -

2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -

2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.repository.kdr.delegates.KettleDatabaseRepositoryConne
ctionDelegate.connect(KettleDatabaseRepositoryConnectionDelegate.java:165)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.repository.kdr.KettleDatabaseRepository.connect(Kettle
DatabaseRepository.java:193)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.repository.kdr.KettleDatabaseRepository.connect(Kettle
DatabaseRepository.java:182)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryConnectController.connectToRepositor
y(RepositoryConnectController.java:217)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryConnectController.connectToRepositor
y(RepositoryConnectController.java:201)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryDialog$12.function(RepositoryDialog.
java:179)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.browser.WebSite.Invoke(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.browser.WebSite$7.method6(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source
)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryDialog.open(RepositoryDialog.java:25
4)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryDialog.open(RepositoryDialog.java:85
)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryDialog.open(RepositoryDialog.java:81
)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryDialog.openManager(RepositoryDialog.
java:263)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.repo.RepositoryConnectMenu$3$2.widgetSelected(Repos
itoryConnectMenu.java:176)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1359)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7990)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9290)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:685)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at java.lang.reflect.Method.invoke(Unknown Source)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
 Caused by: org.pentaho.di.core.exception.KettleException:
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -

No repository exists on the specified connection.

To create a repository, select the Edit' button followed by the 'Create or upgra
de' button.
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -

2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.repository.kdr.delegates.KettleDatabaseRepositoryConne
ctionDelegate.verifyVersion(KettleDatabaseRepositoryConnectionDelegate.java:213)

2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        at org.pentaho.di.repository.kdr.delegates.KettleDatabaseRepositoryConne
ctionDelegate.connect(KettleDatabaseRepositoryConnectionDelegate.java:151)
2017/07/04 13:48:00 - class org.pentaho.di.ui.repo.RepositoryConnectController -
        ... 31 more

【问题讨论】:

    标签: pentaho amazon-redshift kettle pentaho-spoon pdi


    【解决方案1】:

    您不应将 Redshift 用作存储库。 Redshift 是一个大型数据仓库,具有面向列的存储,而存储库是一个可操作的数据库,在面向行的存储中效果最好。

    话虽如此,您应该查看实际的日志消息(在 Spoon 中,它们将在控制台中)以确定原因。作为第一个猜测,我会检查您是否安装了 JDBC 驱动程序。

    【讨论】:

    • 感谢 nsousa。我知道将 Redshift 用作存储库并不是最佳选择,但由于我已经将它设置为作为我的数据仓库运行,我认为将它用作存储库也会更容易。此外,我的驱动程序似乎正在工作,因为我能够测试连接我正在设置连接并且它工作正常。我可以看到那里的模式和表。看起来在我第一次访问时创建存储库表时遇到了麻烦。
    • 我收到“您似乎没有连接到服务器。请检查您使用的路径并确保服务器已启动并正在运行”
    • 检查日志。这种类型的错误通常会产生相当大的描述性异常和堆栈跟踪。可能是 A) 不正确的主机; b) 不正确的数据库名称或端口; c) 未知用户 d):用户名/密码组合不正确; e) 其他。如果没有实际的日志,就无法确定是哪一个。
    最近更新 更多