Postgresql 在使用psql本地下载/保存之前,将AWS实例上的gzip表转换为csv

Postgresql 在使用psql本地下载/保存之前,将AWS实例上的gzip表转换为csv,postgresql,amazon-web-services,gzip,amazon-rds,psql,Postgresql,Amazon Web Services,Gzip,Amazon Rds,Psql,我不熟悉PostgreSQL和psql CLI。我的带宽非常有限,这导致从AWS实例下载每个表需要几个小时,每个表的带宽为1-5GB。使用psql登录数据库后,我使用的当前命令: \将SELECT*从表格复制到表格。csv分隔符“,” 在本地下载和保存之前,是否可以查询一个与上面类似的表,该表实际上在Amazon PostgreSQL实例上压缩csv文件,从而将1-5 GB的下载减少到~/my_table.zip'DELIMITER',';谢谢尝试时:将SELECT*从表格复制到程序“gzip>

我不熟悉PostgreSQL和psql CLI。我的带宽非常有限,这导致从AWS实例下载每个表需要几个小时,每个表的带宽为1-5GB。使用psql登录数据库后,我使用的当前命令:

\将SELECT*从表格复制到表格。csv分隔符“,”

在本地下载和保存之前,是否可以查询一个与上面类似的表,该表实际上在Amazon PostgreSQL实例上压缩csv文件,从而将1-5 GB的下载减少到<1 GB;显著减少下载时间

比如:

\将SELECT*FROM table复制到csv.zip csv分隔符“,”到table.csv.zip

我遇到了这个问题,但列出的命令似乎是所有表/整个数据库的完全转储。我希望能够对表和子集查询执行相同的操作

编辑:Solution=\copy SELECT*FROM table到程序'gzip>Users/username/folder/folder/my_table.gz'DELIMITER',在使用psql和标准输出登录到psql后。此命令将向客户端返回输出并将其压缩:

psql yourdb -c "\COPY (SELECT * FROM table) TO STDOUT;" | gzip > output.gz
或者使用您选择的客户机,直接在数据库服务器上将其压缩为压缩文件:

COPY (SELECT * FROM table) TO PROGRAM 'gzip > /var/lib/postgresql/my_table.gz' DELIMITER ',';

这是你要找的吗?将SELECT*从表格复制到程序'gzip>~/my_table.zip'DELIMITER',';谢谢尝试时:将SELECT*从表格复制到程序“gzip>/my_table.gz”DELIMITER“,”;它建议我改用\复制;当我改用“\copy”时,它返回sh:/my_table.gz:权限被拒绝。无法写入复制数据:管道破裂gzip>/my_table.gz:子进程已退出,退出代码为1。。。是否需要/var/lib/postgresql/部分?是否确保用户postgres具有在此文件夹中写入的权限?而不是/my_table.zip try/tmp/my_tyble.zip或任何其他文件夹postgres可以按inOkay排序写入;非常感谢您的跟进!我的问题是,虽然我在导入到的特定文件夹中打开了terminal,但在不进行压缩的情况下可以正常工作,但在压缩时,我需要指定该文件夹的完整文件路径。e、 g\copy SELECT*FROM table TO PROGRAM'gzip>Users/me/folder/folder/my_table.gz'DELIMITER',';