繁体   English   中英

使用Python从S3 CSV文件复制Redshift表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM