目前,我的 S3 存储桶中有一个 .csv 文件,我想使用 Python 脚本将其附加到 Redshift 数据库中的表中。我有一个单独的文件解析器并上传到 S3,工作得很好。
我用于连接/复制到表中的代码如下。我收到以下错误消息:
操作错误:(psycopg2.OperationalError) 无法连接到服务器:连接超时 (0x0000274C/10060) 服务器是否在主机“redshift_cluster_name.unique_here.region.redshift.amazonaws.com”(18.221.51.45) 上运行并接受 TCP/IP端口 5439 上的连接?
我可以确认以下几点:
端口是5439
未加密
集群名称/数据库名称/用户名/密码均正确
公开访问设置为“是”
我应该修复什么才能确保我可以将 S3 中的文件连接到 Redshift?感谢大家提供的任何帮助。
我还查看了 Stack Overflow 和ServerFault,但这些似乎要么适用于 MySQL 到 Redshift,要么解决方案(如链接的 ServerFault CIDR 解决方案)不起作用。
感谢您的任何帮助!
DATABASE = "db"
USER = "user"
PASSWORD = "password"
HOST = "redshift_cluster_name.unique_here.region.redshift.amazonaws.com"
PORT = "5439"
SCHEMA = "public"
S3_FULL_PATH = 's3://bucket/file.csv'
#ARN_CREDENTIALS = 'arn:aws:iam::aws_id:role/myRedshiftRole'
REGION = 'region'
############ CONNECTING AND CREATING SESSIONS ############
connection_string = f"redshift+psycopg2://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}"
engine = sa.create_engine(connection_string) …Run Code Online (Sandbox Code Playgroud)