我的目标是高效地将大量数据导入Postgres数据库。原则上,原始数据可以压缩约20倍(例如使用gzip)。
COPY
语句似乎是批量导入的最佳选择。
除了sslcompression(在数据加密后应用),是否有一种方法可以压缩在客户端和服务器之间传输的实际数据(内容),或者甚至是默认内置的?
许多谢谢。
(应该不重要,但我正在使用golang)。
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
并在客户端执行解压缩。
如果您的瓶颈是网络吞吐量,您将希望使用scp或ssh之类的东西将压缩数据发送(复制或流式传输)到数据库机器,然后在运行数据库服务器的同一台机器上的客户机上运行copy。有许多方法可以实现这一点,但它们都有libpq/PostgreSQL以外的东西作为管弦乐队的指挥。