2

使用 sqoop 作业,我们可以使用--lastval

但是我们如何对 shell 脚本做同样的事情,以及--lastval当我们自动化脚本时我们将如何获得呢?

我的意思是如何存储--lastval以及如何将其传递给下一次

预先感谢您的帮助!

4

1 回答 1

3

如何存储 --lastval 以及如何将其传递给下一次?

在 linux 或 unix 中定义--lastval为别名或导出变量。可以从自动化脚本中重试

一旦加载完成,然后通过捕获最新的 lastva l将其更改为最近的值

export lastupdatedvalue=hive -e 'select last_value from table#selection 查询基于逻辑。

sqoop import --connect jdbc:mysql://localhost:3306/ydb --table <your table> --username root -P --incremental append --last-value ${lastupdatedvalue}

您可以在 Oozie 中尝试一个 sqoop 操作,它应该可以工作。如果您更喜欢脚本,也可以在 oozie 中使用 shell 操作。可以使用可用的协调器功能来安排它。

也看看

增量导入数据

要以增量方式导入数据,请在 import 命令中使用 --incremental 参数。Sqoop 将检查列中的值与最近导入的参考值进行比较。这些参数导入所有 id 大于 100 的行。

--incremental
--check-column id
--last-value 100

如果从命令行运行增量导入,Sqoop 会在后续增量导入中打印最后一个值。如果您从保存的作业运行增量导入,Sqoop 会保留保存的作业中的最后一个值。要仅导入比以前导入的行更新的行,请使用 --exec 选项。Sqoop 只导入 id 大于指定行 id 的行。

于 2016-09-28T10:05:13.387 回答