在 Talend 中使用 Postgres "copy" 命令将 table 内容加载到 CSV 文件中

Using Postgres "copy" command in Talend to load table content into CSV file

我必须将一些 postgres table 内容复制到 CSV 文件中,以便使用 Talend 进行进一步处理。

当我尝试时

copy table_name to ‘/tmp/export/table_name.csv’ with CSV;

with 'tpostgresqlRow' 组件,它抛出错误说 "Need superuser access",我不会得到。

作为替代方案,我尝试将“\copy”命令作为

\copy table_name to ‘/tmp/export/table_name.csv’ with CSV;"

(第一个斜杠用于转义另一个)。它仍然抛出错误说 "Syntax error at '\'".

我也尝试使用 tpostgresqlBulkExec 组件,它在内部使用 "copy" 命令,它也抛出错误 "Need superuser access".

有没有办法使用 Talend 批量执行此 postgres "copy" 命令?

如有任何帮助,我们将不胜感激。

复制命令需要访问 postgres table 和本地文件系统。

我认为你的问题是因为你没有访问本地文件夹的权限。您需要解决这个问题,或者尝试您知道您有权访问的其他文件夹。

使用同一用户,如果您尝试 linux 命令

touch /tmp/export/test.csv 

您可能会看到一个错误。

\copy 命令将失败,因为要使用它,您首先需要使用一个名为 psql 的工具。

我从 Talend 支持团队得到确认,tPostgresqlRow 组件不支持 'COPY' 命令。我已经通过安装 PSQL 客户端并使用 Talend 中的 tSSH 组件调用相同的客户端来执行所需的 'COPY' 命令来解决我的问题。