我正在尝试使用sqoop export将数据导出到db2数据库
--update-mode allowinsert
--update-key some_column
但是我无法确定DB2是否支持此功能。 sqoop导出失败消息是神秘的,并且没有提供有关实际失败原因的任何信息,我在任何地方都找不到专门用于DB2的示例。
任何信息将不胜感激。
答案 0 :(得分:0)
进一步尝试/研究后,我发现DB2确实支持
--update-key id
但尚不支持
--update-mode allowinsert
这意味着您不能使用sqoop向DB2进行upsert,但可以分别进行更新和插入。对于更新,只需使用--update-key id
,对于插入,则完全删除该参数。
但是,应该注意的是,如果您的数据集包含更新和插入,并且您尝试在没有--update-key
的情况下进行插入,则导出将失败。您首先需要将数据分为新记录/更新记录,然后分别推送每个记录。
最后,在还有新记录的地方进行更新只会忽略新记录,并且不会失败。但是,即使sqoop stdout告诉您所有记录都已导出,也不会插入新记录。