我可以使用psycopg2
将数据从s3存储桶复制到redshift表中:
import psycopg2
sql = """ copy table1 from 's3://bucket/myfile.csv'
access_key_id 'xxxx'
secret_access_key 'xxx' DELIMITER '\t'
timeformat 'auto'
maxerror as 250 GZIP IGNOREHEADER 1 """
cur.execute(sql)
如何为多个redshift语句添加字符串以完成以下三件事:
我尝试了以下操作:
sql = """ copy table1 from 's3://bucket/myfile.csv'
access_key_id 'xxxx'
secret_access_key 'xxx' DELIMITER '\t'
timeformat 'auto'
maxerror as 250 GZIP IGNOREHEADER 1
create table table2 as table1
drop table table1"""
我没有得到任何错误,但是没有创建表,只有副本在上面工作。我的SQL怎么了?
答案 0 :(得分:1)
以下代码通过创建重复的副本将Copy from Table1
至Table2
。然后,它删除Table1
。
import psycopg2
def redshift():
conn = psycopg2.connect(dbname='***', host='******.redshift.amazonaws.com', port='5439', user='****', password='*****')
cur = conn.cursor();
cur.execute("create table table2 as select * from table1;")
cur.execute(" drop table table1;")
print("Copy executed fine!")
redshift()