我的目标是高效地将大量数据导入到Postgres数据库中。原则上,原始数据可以压缩约20倍(例如使用gzip)。COPY语句似乎是大容量导入的最佳选择。除了sslcompression(在数据加密后应用)之外,是否有一种方法可以压缩客户端和服务器之间传输的实际数据(内容),或者默认情况下是内置的?非常感谢。(应该没关系,但我正在使用golang)。
COPY
xriantvc1#
COPY [TO|FROM] PROGRAM允许使用gzip作为一个程序,如果它安装在postgres服务器进程可访问的地方:https://www.postgresql.org/docs/current/sql-copy.html#id-1.9.3.55.10。您也可以使用COPY TO|FROM STDIN并执行解压缩/压缩客户端。
COPY [TO|FROM] PROGRAM
COPY TO|FROM STDIN
62o28rlo2#
如果你的瓶颈是网络吞吐量,你会想使用类似scp或ssh的东西将压缩数据发送(复制或流式传输)到数据库机器,然后在数据库服务器运行的同一台机器上的客户端运行COPY。有很多方法可以编排,但所有这些都有libpq/PostgreSQL以外的东西作为管弦乐队的指挥。
2条答案
按热度按时间xriantvc1#
COPY [TO|FROM] PROGRAM
允许使用gzip作为一个程序,如果它安装在postgres服务器进程可访问的地方:https://www.postgresql.org/docs/current/sql-copy.html#id-1.9.3.55.10。您也可以使用
COPY TO|FROM STDIN
并执行解压缩/压缩客户端。62o28rlo2#
如果你的瓶颈是网络吞吐量,你会想使用类似scp或ssh的东西将压缩数据发送(复制或流式传输)到数据库机器,然后在数据库服务器运行的同一台机器上的客户端运行COPY。有很多方法可以编排,但所有这些都有libpq/PostgreSQL以外的东西作为管弦乐队的指挥。