从python将数据推送到redshift数据库时语句太大
Posted
技术标签:
【中文标题】从python将数据推送到redshift数据库时语句太大【英文标题】:statement too large while pushing data into redshift database from python 【发布时间】:2018-11-26 13:25:15 【问题描述】:我在 redshift 表中推送 pandas 数据框并出现以下错误
cur.execute("INSERT INTO sir_main VALUES " + str(args_str))
psycopg2.ProgrammingError: Statement is too large. Statement Size: 58034743
bytes. Maximum Allowed: 16777216 bytes`
它会停止执行。推入数据库时有什么方法可以配置限制吗?
【问题讨论】:
不,如果这是您的常规流程,您应该考虑更改方法,以便先将数据加载到 s3,然后使用 aws copy 命令。 【参考方案1】:如果您要加载的行数超过几百行,则应将数据帧作为平面文件保存到 S3,然后使用 COPY
将其加载到 Redshift。 https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html
【讨论】:
以上是关于从python将数据推送到redshift数据库时语句太大的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Kinesis 将数据从 Lambda (Python) 发送到 Redshift
如何使用 AWS Kinesis Firehose 将嵌套结构推送到 Redshift
我可以使用 AWS Glue 将 S3 上的 json 数据转换为列格式并将其推送到 Redshift 吗?