我正在尝试用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
这只更新db(hive)和postgresql中的主键。(无插入) --update-mode allowinsert
-这只会插入 --update-key primary_key --update-mode allowinsert
-这会产生错误
error tool.exporttool:导出期间出错:目标数据库尚不支持混合更新/插入
有人能帮我写一个sqoop命令来插入和更新postgresql中的数据吗?
1条答案
按热度按时间ma8fv8wu1#
根据我在互联网上的搜索,不可能直接对postgresqldb执行插入和更新。相反,您可以在postgresql中创建storedproc/函数,并将数据发送到那里。。
存储过程/函数应同时执行更新和插入。
链接1-https://issues.apache.org/jira/browse/sqoop-1270
链接2-plpgsql upsert示例