如何使用 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
如果没有主键约束,它工作正常。我想同时插入新记录和更新旧记录。
我试过了
--update-key primary_key
这只更新存在于数据库中的那些主键(hive 和 postgreSQL。没有插入)
--update-mode allowinsert
- 这只会插入
--update-key primary_key --update-mode allowinsert
- 这给出了错误
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
我正在尝试使用 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
如果没有主键约束,它工作正常。我想同时插入新记录和更新旧记录。
我试过了
--update-key primary_key
这只更新存在于数据库中的那些主键(hive 和 postgreSQL。没有插入)--update-mode allowinsert
- 这只会插入--update-key primary_key --update-mode allowinsert
- 这给出了错误
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