试图从Python脚本建立到Amazon红移的连接

2024-04-26 09:47:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试连接到亚马逊红移表。我使用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 

谢谢


Tags: 数据代码fromimport脚本数据库redshiftsql
1条回答
网友
1楼 · 发布于 2024-04-26 09:47:27

使用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上)发出的。它还适用于私有子网中的红移数据库

相关问题 更多 >