Postgresql 批量加载AWS S3至Postgres流媒体标准
目标是将s3 bucket中的csv加载到RDS中postgres中的表中。寻找“最佳实践”,我发现AWS推荐他们的“数据管道”产品。他们为您提供了一个启动模板,用于将csv批量加载到rds mysql。该模板如下面的屏幕截图所示。我的反应是“哇-所有这些框和箭头只是为了将csv加载到表中?” 所以我的问题是“我们能找到一个更简单的方法来实现同样的目标吗?”。假设我的bucket、我的数据库和一个空闲层T2.micro EC2实例位于同一区域。假设AWS CLI和postgres客户端安装在EC2上 我可以运行以下命令,将CSV从bucket读取到stdout,并将流输送到postgres bulk load命令:Postgresql 批量加载AWS S3至Postgres流媒体标准,postgresql,amazon-web-services,amazon-s3,amazon-rds,Postgresql,Amazon Web Services,Amazon S3,Amazon Rds,目标是将s3 bucket中的csv加载到RDS中postgres中的表中。寻找“最佳实践”,我发现AWS推荐他们的“数据管道”产品。他们为您提供了一个启动模板,用于将csv批量加载到rds mysql。该模板如下面的屏幕截图所示。我的反应是“哇-所有这些框和箭头只是为了将csv加载到表中?” 所以我的问题是“我们能找到一个更简单的方法来实现同样的目标吗?”。假设我的bucket、我的数据库和一个空闲层T2.micro EC2实例位于同一区域。假设AWS CLI和postgres客户端安装在E
aws s3 cp s3://mybucket/dummy.csv-| psql-d mydb-p 5432-c“使用(csv格式)从标准文本复制虚拟(f1,f2);”
^^^这适用于50MB文件!它似乎不需要大量的内存缓冲。它不显示进度。这种方法适用于10GB的超大文件吗?100GB?等这是健壮的还是我真的需要使用数据管道产品?我最终使用DMS进行设计,S3作为源,postgres作为目标。DMS应采用cli脚本,以使过程可重复和按需进行,这可能会涉及到。但是,如果您需要偶尔加载一次数据,那么脚本在从便携式实用程序获得一致结果方面会有所回报。FWIW以类似方式将300MB的文件从S3上传到RedShift。不过,我想知道是否有限制。@StuartLC redshift通过COPY命令对s3提供本机支持。这适用于TB级的平面文件。Postgres RDS没有对s3的本机支持,这就是我从STDIN获得管道的原因