【发布时间】:2016-12-30 22:30:20
【问题描述】:
以编程方式从 S3 csv 文件复制到 Redshift 表的推荐模块和语法是什么?我一直在尝试使用 psycopg2 模块,但没有成功(请参阅psycopg2 copy_expert() - how to copy in a gzipped csv file?)。我试过 cur.execute()、cur.copy_expert() 和 cur.copy_from() - 都没有成功。我阅读的经验和 cmets 使我得出结论,虽然 psycopg2 足以对 postgres 数据库进行 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;'''
【问题讨论】:
标签: python amazon-web-services psycopg2