如何使用 sqoop 命令同时插入和更新到 PostgreSQL

How to insert and Update simultaneously to PostgreSQL with sqoop command

我正在尝试使用 sqoop 命令插入 postgreSQL 数据库。

sqoop export --connect jdbc:postgresql://10.11.12.13:1234/db --table table1 --username user1 --password pass1--export-dir /hivetables/table/   --fields-terminated-by '|' --lines-terminated-by '\n'  -- --schema schema

如果没有主键约束,它工作正常。我想同时插入新记录和更新旧记录。

我试过了

ERROR tool.ExportTool: Error during export: Mixed update/insert is not supported against the target database yet

任何人都可以帮我写 sqoop 命令来插入和更新数据到 postgreSQL 吗?

根据我的互联网搜索,不可能直接对 postgreSQL 数据库执行插入和更新操作。相反,您可以在 postgreSQL 中创建一个 storedProc/function,然后您可以将数据发送到那里..

sqoop export --connect <url> --call <upsert proc> --export-dir /results/bar_data

Stored proc/function 应该同时执行更新和插入。

Link 1 - https://issues.apache.org/jira/browse/SQOOP-1270

Link 2 - PLPGSQL-UPSERT-EXAMPLE