使用Postgres"复制" Talend中的命令将表格内容加载到CSV文件

时间:2017-10-30 11:26:45

标签: postgresql copy talend

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

当我尝试

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

使用' tpostgresqlRow'组件,它提出错误说"需要超级用户访问",我不会得到。

作为替代方案,我试过" \ copy"命令为

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

(第一个斜杠用于逃避另一个)。仍然在' \'""

中输出错误"语法错误

我也尝试使用tpostgresqlBulkExec组件,它在内部使用" copy"命令,它也提出错误说"需要超级用户访问"。

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

copy命令需要访问postgres表和本地文件系统。

我认为您的问题是由于您无法访问本地文件夹而导致的。您需要对其进行排序,或尝试使用您知道可以访问的其他文件夹。

使用相同的用户,如果你尝试使用linux命令

touch /tmp/export/test.csv 

您可能会看到错误。

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

答案 1 :(得分:0)

我收到Talend支持团队的确认,tPostgresqlRow组件不支持' COPY'命令。我通过安装PSQL客户端并使用Talend中的tSSH组件调用它来解决我的问题,以执行所需的“复制”#39;命令。