我在 AWS S3 上有一个大的(5-10 GB)二进制文件,需要自定义解析,可能在 python 中。它本质上是由数百万个数据帧组成的序列集,所有数据帧都具有相同的结构。将这些数据导入无服务器/托管 AWS Aurora PostgreSQL 实例的最佳方式是什么?到目前为止,我已经想到: 1. 我可以写入 CSV 文件并使用 COPY,但大小将是天文数字 2. 我可以通过网络分批发送它 3. 使用 AWS Glue,尽管我还在学习。
我在 AWS S3 上有一个大的(5-10 GB)二进制文件,需要自定义解析,可能在 python 中。它本质上是由数百万个数据帧组成的序列集,所有数据帧都具有相同的结构。将这些数据导入无服务器/托管 AWS Aurora PostgreSQL 实例的最佳方式是什么?到目前为止,我已经想到: 1. 我可以写入 CSV 文件并使用 COPY,但大小将是天文数字 2. 我可以通过网络分批发送它 3. 使用 AWS Glue,尽管我还在学习。
您可以将 CSV 数据流写入管道而不是文件:
或者
不是我推荐的通用解决方案,但我写了一个类似的东西,可以即时转换数据并使用有线格式(例如使用的相同格式
COPY
)将它们写出来。它是在 Java 中并使用内部PGWriter
类,所以你需要找到一种方法在 Python 中做同样的事情。不过,它的速度非常快,比批量插入要快一个数量级。虽然我不确定rewritebatchedinserts是否会使正常的批量插入足够快。