通过Postgresql连接器在Azure数据工作室中连接到Amazon Redshift

3
我最近加入了一家公司,他们使用了多种数据库,包括Redshift集群和一些SQL数据库。我想使用一个单一的IDE来访问这两种数据库以进行分析报告,这样我就不必在工具之间切换。我目前正在使用Workbench,它可以正常工作,但是我还没有完全适应它。
我确实喜欢Azure Data Studio,但它只支持SQL Server和Postgres。考虑到Redshift和Postgres之间的相似性,我想看看是否可以使用Postgres驱动程序连接Redshift。
我已经安装了Postgres扩展并可以“连接”到数据库。但是当我尝试使用树形视图浏览数据库时,我会收到“无法展开节点”的错误消息。当我运行在Workbench中可以正常工作的简单查询时,例如:
    Select * from [server].[database].[table]

我收到以下错误信息:

在第1行开始执行查询

游标仅可在创建它们的事务内使用。

总执行时间:00:00:00.019

我知道我正在尝试做一些不应该做的事情。如果我做不到,那就做不到了。但是这里有没有人成功在Azure Data Studio中建立Redshift连接?
顺便说一下,我找到了一个GitHub存储库,可能是Data Studio的Redshift驱动程序 - 但这看起来像Postgres驱动程序的克隆版本,自三月以来没有任何活动(甚至没有将“Postgres”标题重命名为Redshift)...因此我持怀疑态度。

2
Redshift基于旧版Postgresql,自那以后它们已经分道扬镳。我怀疑您尝试使用专门为Postgresql设计的工具和驱动程序时会得到良好的体验。我建议找到一个支持标准JDBC驱动程序的工具,这将适用于几乎任何数据库平台,例如DBeaver https://dbeaver.io/ - 然后从AWS下载支持的Redshift JDBC驱动程序。 - Nathan Griffiths
@NathanGriffiths - 谢谢,我也怀疑是这样。我使用workbench和KNIME(都是JDBC),但会尝试使用beaver,因为我还没有适应workbench。我相当确定答案是否定的,但这是一个未提出的问题,我认为值得一试。 - EILNP
2个回答

0

虽然不是直接的答案,但我在使用ADS(Azure Data Studio)时遇到了同样的问题。

我发现在像ADS这样的桌面应用程序中查询Redshift数据库的最佳解决方案是DBeaver。它几乎是一种即插即用的体验 - Redshift在默认连接选项中列出,当您首次尝试连接时,DBeaver会自动识别所需的驱动程序,然后只需单击即可安装它们。它还有一个漂亮的“对象浏览器”手风琴,因此您可以查看模式/表/视图等。

比AWS推荐的解决方案SQL Workbench/J要容易得多,后者设置起来很麻烦,并且开箱即用的用户友好性不如DBeaver。


0
我在Azure数据工作室中使用Redshift时遇到了使用临时表的困难。你可以明确地开始和结束一个事务,从而绕过这个问题。你可以像这样做:
BEGIN;

Select * from [server].[database].[table];

SELECT [column] 
INTO TEMP TABLE #ReallyTempTable 
FROM [server].[database].[table];

SELECT *
FROM  #ReallyTempTable ;

END;


在撰写本文时,您无法在Azure Data Studio中执行最后的select语句而不将其包装在事务中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接