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

2024-01-01

我是 PostgreSQL 和 psql CLI 的新手。我的带宽极其有限,这导致从 AWS 实例下载每个表(每个表 1 - 5 GB)需要几个小时。使用 psql 登录数据库后,我使用的当前命令:

\copy (SELECT * FROM table) TO table.csv CSV DELIMITER ','

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

就像是:

\copy (SELECT * FROM table) TO csv.zip CSV DELIMITER ',' TO table.csv.zip

我遇到了这个gist https://gist.github.com/brock/7a7a70300096632cec30,但列出的命令似乎是所有表/整个数据库的完整转储。我希望能够对表和子集查询执行相同的操作。

编辑:解决方案=\copy (SELECT * FROM table) TO PROGRAM 'gzip > Users/username/folder/folder/my_table.gz' DELIMITER ','登录 psql 后


Using psqlSTDOUT。该命令会将输出返回到client并将其压缩:

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 ',';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐