gzip table 到 AWS 实例上的 csv,然后使用 psql 在本地下载/保存
gzip table to csv on AWS instance, prior to downloading / saving locally with psql
我是 PostgreSQL 和 psql CLI 的新手。我的带宽非常有限,这导致从 AWS 实例下载每个 table 需要数小时,每个 1 - 5 GB。使用 psql 登录数据库后,我使用的当前命令:
\copy (SELECT * FROM table) TO table.csv CSV DELIMITER ','
是否可以查询一个 table,与上面类似,它实际上在 Amazon PostgreSQL 实例上压缩 csv 文件,然后在本地下载和保存,从而将 1 - 5 GB 的下载量减少到< 1 GB;显着减少下载时间?
类似于:
\copy (SELECT * FROM table) TO csv.zip CSV DELIMITER ',' TO table.csv.zip
我遇到了这个 gist,但列出的命令似乎是所有 table 的完整转储/整个数据库。我希望能够对 tables 和子集查询执行相同的操作。
编辑:登录 psql
后的解决方案 = \copy (SELECT * FROM table) TO PROGRAM 'gzip > Users/username/folder/folder/my_table.gz' DELIMITER ','
使用 psql
和 STDOUT
。此命令将 return 输出到 客户端 并将其压缩:
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 CLI 的新手。我的带宽非常有限,这导致从 AWS 实例下载每个 table 需要数小时,每个 1 - 5 GB。使用 psql 登录数据库后,我使用的当前命令:
\copy (SELECT * FROM table) TO table.csv CSV DELIMITER ','
是否可以查询一个 table,与上面类似,它实际上在 Amazon PostgreSQL 实例上压缩 csv 文件,然后在本地下载和保存,从而将 1 - 5 GB 的下载量减少到< 1 GB;显着减少下载时间?
类似于:
\copy (SELECT * FROM table) TO csv.zip CSV DELIMITER ',' TO table.csv.zip
我遇到了这个 gist,但列出的命令似乎是所有 table 的完整转储/整个数据库。我希望能够对 tables 和子集查询执行相同的操作。
编辑:登录 psql
后的解决方案 =\copy (SELECT * FROM table) TO PROGRAM 'gzip > Users/username/folder/folder/my_table.gz' DELIMITER ','
使用 psql
和 STDOUT
。此命令将 return 输出到 客户端 并将其压缩:
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 ',';