Sqoop导出DB2更新密钥

时间:2018-07-17 17:19:57

标签: db2 sqoop

我正在尝试使用sqoop export将数据导出到db2数据库

--update-mode allowinsert
--update-key some_column

但是我无法确定DB2是否支持此功能。 sqoop导出失败消息是神秘的,并且没有提供有关实际失败原因的任何信息,我在任何地方都找不到专门用于DB2的示例。

任何信息将不胜感激。

1 个答案:

答案 0 :(得分:0)

进一步尝试/研究后,我发现DB2确实支持

--update-key id

但尚不支持

--update-mode allowinsert

这意味着您不能使用sqoop向DB2进行upsert,但可以分别进行更新和插入。对于更新,只需使用--update-key id,对于插入,则完全删除该参数。

但是,应该注意的是,如果您的数据集包含更新和插入,并且您尝试在没有--update-key的情况下进行插入,则导出将失败。您首先需要将数据分为新记录/更新记录,然后分别推送每个记录。

最后,在还有新记录的地方进行更新只会忽略新记录,并且不会失败。但是,即使sqoop stdout告诉您所有记录都已导出,也不会插入新记录。