如何使用SQLAlchemy连接到Amazon Redshift中的集群?

Chr*_*ris 5 python postgresql sqlalchemy amazon-web-services amazon-redshift

在Amazon Redshift的入门指南中,提到您可以利用与PostgreSQL兼容的SQL客户端工具来连接到Amazon Redshift集群。

在教程中,他们利用SQL Workbench / J客户端,但是我想利用python(特别是SQLAlchemy)。我找到了一个相关的问题,但是问题是它没有涉及到细节或连接到Redshift集群的python脚本。

我已经可以通过SQL Workbench / J连接到群集,因为我拥有JDBC URL以及用户名和密码,但是我不确定如何与SQLAlchemy连接。

根据此文档,我尝试了以下操作:

from sqlalchemy import create_engine
engine = create_engine('jdbc:redshift://shippy.cx6x1vnxlk55.us-west-2.redshift.amazonaws.com:5439/shippy')
Run Code Online (Sandbox Code Playgroud)

错误:

Could not parse rfc1738 URL from string 'jdbc:redshift://shippy.cx6x1vnxlk55.us-west-2.redshift.amazonaws.com:5439/shippy'
Run Code Online (Sandbox Code Playgroud)

Joe*_*ris 7

我不认为 SQL Alchemy “本机”了解 Redshift。您需要更改 JDBC“URL”字符串以使用postgres.

jdbc:postgres://shippy.cx6x1vnxlk55.us-west-2.redshift.amazonaws.com:5439/shippy
Run Code Online (Sandbox Code Playgroud)

或者,您可能想尝试使用sqlalchemy-redshift他们提供的说明。

  • 结果,我尝试了 create_engine('jdbc:postgres://shippy.cx6x1vnxlk55.us-west-2.redshift.amazonaws.com:5439/shippy'),但出现以下错误:“sqlalchemy.exc.ArgumentError :无法从字符串 'jdbc:postgres://shippy.cx6x1vnxlk55.us-west-2.redshift.amazonaws.com:5439/shippy' 解析 rfc1738 URL" (5认同)

小智 6

我遇到了完全相同的问题,然后我记得包含我的 Redshift 凭据:

eng = create_engine('postgres://[LOGIN]:[PWORD]@shippy.cx6x1vnxlk55.us-west-2.redshift.amazonaws.com:5439/shippy
Run Code Online (Sandbox Code Playgroud)