Sqoop 导出 DB2 更新密钥

Sqoop export DB2 update-key

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

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

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

如有任何信息,我们将不胜感激。

进一步attempts/research后,我发现DB2确实支持

--update-key id

但尚不支持

--update-mode allowinsert

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

但是,需要注意的是,如果您的数据集包含更新和插入,而您尝试在没有 --update-key 的情况下进行插入,则导出将失败。您首先需要将数据分成新的 records/updated 记录,然后单独推送它们中的每一个。

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