我正在尝试连接到亚马逊红移表。我使用SQL创建了表,现在我正在编写一个Python脚本,将数据帧附加到数据库中。我无法连接到数据库,感觉语法有问题或其他问题。我的代码如下
from sqlalchemy import create_engine
conn = create_engine('jdbc:redshift://username:password@localhost:port/db_name')
这是我得到的错误
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string
谢谢
使用Python连接AmazonRedshift基本上有两个选项
选项1:JDBC连接
这是到数据库的传统连接。流行的选择往往是使用
psycopg2
来建立连接,因为amazonredshift类似于PostgreSQL数据库。你可以download specific JDBC drivers for Redshift此连接要求进行查询的计算机可以访问红移数据库,并且安全组需要允许访问端口5439。如果您试图从Internet上的计算机进行连接,则数据库需要位于公共子网中,并设置为
Publicly Accessible = Yes
见:Establish a Python Redshift Connection: A Comprehensive Guide - Learn | Hevo
选项2:红移数据API
您可以使用Boto3 library for Python直接查询Amazon红移数据库,包括查询数据的^{} 调用和检索结果的^{} 调用。这也适用于IAM身份验证,而不必创建其他“数据库用户”
无需为此方法配置安全组,因为请求是向AWS(在Internet上)发出的。它还适用于私有子网中的红移数据库
相关问题 更多 >
编程相关推荐