如何将数据文件从s3导入postgresql rds
我对AWS和Postgresql非常陌生如何将数据文件从s3导入postgresql rds,postgresql,amazon-s3,amazon-ec2,Postgresql,Amazon S3,Amazon Ec2,我对AWS和Postgresql非常陌生 我已经创建了一个Postgresql数据库(在was上使用rds) 我已将几个文档上载到多个s3存储桶 我有一个EC2(Amazon Linux 64位)正在运行 我试着使用一个数据管道,但似乎没有任何东西(模板)可用于Postgres。我不知道如何连接到我的RDS实例并从postgres导入/导出数据 我假设我可以使用EC2从我的S3 bucket中抓取数据并导入Postgres,而不必使用任何数据管道模板。如果可能的话,我不知道怎么做。。如果可能,请
我假设我可以使用EC2从我的S3 bucket中抓取数据并导入Postgres,而不必使用任何数据管道模板。如果可能的话,我不知道怎么做。。如果可能,请告知..如果您可以启动psql客户端并连接到EC2实例上的RDS,您应该能够使用以下命令:
\用分隔符“,”从“myfile.csv”复制客户订单。我希望AWS在RDS Postgresql中像在红移中那样扩展复制命令。但现在他们没有,我们必须自己做
awscli
(默认情况下可能已安装)awscli
aws s3 sync
或aws s3 cp
命令从s3下载到本地目录\复制到RDS中(需要\
从客户端目录复制)
aws s3 cp s3://bucket/file.csv /mydirectory/file.csv
psql -h your_rds.amazonaws.com -U username -d dbname -c '\COPY table FROM ''file.csv'' CSV HEADER'
先前的答案已被AWS最近的事件所取代 现在,通过数据管道服务(也可以用于许多其他数据转换任务,这只是一个示例)对S3到RDS数据库加载提供了极好的支持 这篇AWS文章是针对S3到RDS MySQL的。对于RDS研究生来说应该非常相似
S3->RDS直接加载现在可以作为
aws_S3
扩展,用于PostgreSQL Aurora和RDS PostgreSQL>=11.1
请注意,此功能不适用于较旧版本。理想情况下,Amazon希望扩展
COPY
命令以支持文件路径的S3 URL,但如果现在您必须通过客户端从S3获取数据,然后通过COPY
将数据提供给PostgreSQL,我不会感到惊讶。是的,使用RDS,通常需要从EC2实例加载。只有像Redshift这样的自定义数据库系统才允许从s3直接加载。谢谢你们。你们中的任何一个能提供一些例子来说明如何做到这一点吗?我能够将EC2连接到S3,并将EC2连接到RDS。我知道如何将文件从S3拉到EC2,但那时我不知道如何将文件从EC2加载到Postgresql数据库(在res上运行)。请帮助我或给我指一下说明。我已经在网上搜索了好几天了。这仍然是真的吗,或者亚马逊已经更新了红移的功能了吗?我有完全相同的问题,只是我需要自动执行此操作,并每周将文件(.csv)从S3导入我的PostGresql RDS实例。PostGresql基于community PostGresql,community PostGresql COPY语句在当前版本中不支持从/复制到S3。这不再是事实,RDS现在支持通过aws_S3
扩展从S3复制comamnd。请看下面@quiver的答案。有人能确认这在RDS Postgres中有效吗?Chris links的文档中根本不清楚是否支持S3到Postgres。“AWS数据管道支持所有Amazon RDS数据库,现在可用”,它在本地文件上运行,而不是在S3上运行。您能提供步骤吗?AWS文档有点不清楚,很少在psql中,很少是普通命令,在哪里运行这些命令?在cmd?您在这里给出的PSQL命令,它如何理解加载到哪个表?您知道如何在通过此S3导入加载时处理空csv吗。因为我有一个场景,从S3自动加载CSV文件到postgres RDS。有时候,我最终得到的是空的csv。这会导致连接故障。
psql=> SELECT aws_s3.table_import_from_s3(
'table_name', '', '(format csv)',
'BUCKET_NAME', 'path/to/object', 'us-east-2'
);