gpt4 book ai didi

mysql - Sqoop增量追加

转载 作者:行者123 更新时间:2023-11-29 20:56:16 25 4
gpt4 key购买 nike

在 mysql 中,我有 mydb/emp 表,其中包含字段(eid、ename、esal)。

在这里,我尝试在步骤 1 中使用增量追加导入 emp,而不创建作业并传递最后一个值。

sqoop import  -- connect jdbc:mysql://localhost/myDB --table  test --m 1 
--target-dir /user/cloudera/mydata --incremental append --check-column eid

我在 mydata 中得到了名称为 part-0001.. 的不同文件的结果,更新值从 eid 0 到最后一个 ex。 eid 0 到 eid 8 记录。

但是当我使用 job 执行相同的代码时,结果是不同的......

sqoop job  --create dayimport  -- import  --connect jdbc:mysql://localhost/myDB --table  test --m 1 --target-dir /user/cloudera/mydata --incremental append --check-column eid 

sqoop job --exec dayimport

在这里,我得到了不同文件的结果,但仅更新了记录,即来自最后一个值的结果。我已经用新行 eid 7,8 更新了表,因此它仅包含 eid 7 和 8 记录。

有人可以解释为什么这种情况发生在工作中而不是正常的脚本中吗?如果记录很大,如何确定检查列后的最后一个值?有什么直接方法可以知道最后更新的值而不检查最终值吗?

最佳答案

在增量导入中,如果不指定最后一个值,sqoop将导入所有行,但是当它保存为作业时,即使没有给出最后一个值,sqoop也知道从哪里导入。如果您打算保存作业,则无需给出最后一个值,但如果您想了解它,可以通过以下方式给出:

--last-value

请参阅user guide .

关于mysql - Sqoop增量追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37605193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com