[英]Copy Redshift table from S3 csv file using Python?
从编程将S3 csv文件复制到Redshift表中的推荐模块和语法是什么? 我一直在尝试使用psycopg2模块,但是没有成功(请参阅psycopg2 copy_expert()-如何在gzip压缩的csv文件中进行复制? )。 我尝试了cur.execute(),cur.copy_expert()和cur.copy_from()-均未成功。 我的经验和评论使我得出结论,psycopg2虽然足以对postgres DB进行python编程,但由于某种原因无法用于Redshift表。 那么,如果我想让Python脚本执行此复制,该如何解决?
这是我要运行的COPY语句。 源是带有管道定界符的gzip压缩csv文件。 在像DBeaver这样的SQL接口中,这可以正常工作,但是我不知道它将如何转换为Python:
'''COPY <destination_table> from 's3://bucket/my_source_file.csv.gz' CREDENTIALS <my credentials> delimiter '|' IGNOREHEADER 1 ENCODING UTF8 IGNOREBLANK LINES NULL AS 'NULL' EMPTYASNULL BLANKSASNULL gzip ACCEPTINVCHARS timeformat 'auto' dateformat 'auto' MAXERROR 100 compupdate on;'''
我成功使用pyODBC库使用ODBC。 只需调用.execute(copy-command),就不会有问题。
在线有很多示例,它们介绍了如何从Python连接到Amazon Redshift。 例如:
它们通常看起来像:
conn = psycopg2.connect(...)
cur = conn.cursor()
cur.execute("COPY...")
conn.commit()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.