我在执行copy命令时遇到问题,无法从S3将数据从S3加载到Amazon的Redshift.
我有以下复制命令:
copy moves from 's3://<my_bucket_name>/moves_data/2013-03-24/18/moves'
credentials 'aws_access_key_id=<key_id>;aws_secret_access_key=<key_secret>'
removequotes
delimiter ',';
Run Code Online (Sandbox Code Playgroud)
当我使用SQL Workbench/j执行此命令时,一切都按预期工作,但是当我尝试使用python和psycopg2执行此命令时,命令传递OK但没有加载数据且没有抛出错误.
尝试了以下两个选项(假设psycopg2连接正常,因为它是):
cursor.execute(copy_command)
cursor.copy_expert(copy_command, sys.stdout)
Run Code Online (Sandbox Code Playgroud)
两者都没有发出警告,但未加载数据
想法?
谢谢
在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) python postgresql sqlalchemy amazon-web-services amazon-redshift