从远程客户端批量加载到PostgreSQL

时间:2010-08-30 18:04:03

标签: postgresql bulk-load

我需要将一个大文件批量加载到PostgreSQL中。我通常会使用COPY命令,但需要从远程客户端计算机加载此文件。使用MSSQL,我可以安装本地工具并在客户端上使用bcp.exe连接到服务器。

PostgreSQL有同等的方法吗?如果没有,如果我不能先将文件复制到服务器,建议从客户机加载大文件的方法是什么?

感谢。

4 个答案:

答案 0 :(得分:3)

PostgreSQL Protocol v3.0(Postgresql 7.4或更新版本)支持

COPY命令。

从远程客户端使用COPY唯一需要的是 libpq 启用的客户端,例如psql命令行实用程序。

从远程客户端运行:

$ psql -d dbname -h 192.168.1.1 -U uname < yourbigscript.sql

答案 1 :(得分:2)

您可以使用psql工具中的\copy命令,如:

psql -h IP_REMOTE_POSTGRESQL -d DATABASE -U USER_WITH_RIGHTS -c "\copy 
  TABLE(FIELD_LIST_SEPARATE_BY_COMMA) from 'FILE_IN_CLIENT_MACHINE(MAYBE IN THE SAME 
DIRECTORY)' with csv header"

答案 2 :(得分:1)

假设您有某种客户端来运行查询,您可以使用COPY命令的COPY FROM STDIN形式:http://www.postgresql.org/docs/current/static/sql-copy.html

答案 3 :(得分:0)

使用psql的{​​{1}}命令在sql中加载数据:

\copy