gpt4 book ai didi

postgresql - 在使用 psql 在本地下载/保存之前,将表 gzip 到 AWS 实例上的 csv

转载 作者:行者123 更新时间:2023-11-29 12:53:21 26 4
gpt4 key购买 nike

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

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

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

类似于:

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

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

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

最佳答案

使用 psqlSTDOUT。此命令会将输出返回给客户端 并将其压缩:

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 ',';

关于postgresql - 在使用 psql 在本地下载/保存之前,将表 gzip 到 AWS 实例上的 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49000890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com