让我举个例子:我昨天导出了1tb的数据。今天,数据库又获得了1gb的数据。如果我今天再次尝试导入数据,sqoop将导入1tb+1gb的数据,然后我将合并它。所以很头痛。我只想导入新数据并将其附加到旧数据。这样,我每天都会将rdbms数据拉入hdfs。
rqdpfwrv1#
您可以使用sqoop增量导入:sqoop提供了一个 incremental import 模式,仅可用于检索比以前导入的行集更新的行。增量导入参数: --check-column (col) 指定在确定要导入哪些行时要检查的列。 --incremental (mode) 指定sqoop如何确定哪些行是新的。模式的合法值包括append和last modified。 --last-value (value) 指定上次导入的check列的最大值。reference:https用法://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html对于增量导入:需要在检查列中针对最近导入的引用值指定一个值。例如,如果 –incremental 指定了append参数,以及 –check-column id and –last-value 100 ,将导入id>100的所有行。如果从命令行运行增量导入,则应指定为 –last-value 在随后的增量导入中将打印到屏幕上供您参考。如果从保存的作业运行增量导入,则此值将保留在保存的作业中。后续运行 sqoop job –exec 某些增量作业将继续只导入比以前导入的行更新的行。要一次性导入所有表,需要使用sqoop import all tables命令,但此命令必须满足以下条件才能工作每个表必须有一个单列主键。必须导入每个表的所有列。您不能打算使用非默认拆分列,也不能通过where子句强加任何条件。reference:httpshttp://hortonworks.com/community/forums/topic/sqoop-incremental-import/
incremental import
--check-column (col)
--incremental (mode)
--last-value (value)
–incremental
–check-column id and –last-value 100
–last-value
sqoop job –exec
1条答案
按热度按时间rqdpfwrv1#
您可以使用sqoop增量导入:
sqoop提供了一个
incremental import
模式,仅可用于检索比以前导入的行集更新的行。增量导入参数:
--check-column (col)
指定在确定要导入哪些行时要检查的列。--incremental (mode)
指定sqoop如何确定哪些行是新的。模式的合法值包括append和last modified。--last-value (value)
指定上次导入的check列的最大值。reference:https用法://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html
对于增量导入:需要在检查列中针对最近导入的引用值指定一个值。例如,如果
–incremental
指定了append参数,以及–check-column id and –last-value 100
,将导入id>100的所有行。如果从命令行运行增量导入,则应指定为–last-value
在随后的增量导入中将打印到屏幕上供您参考。如果从保存的作业运行增量导入,则此值将保留在保存的作业中。后续运行sqoop job –exec
某些增量作业将继续只导入比以前导入的行更新的行。要一次性导入所有表,需要使用sqoop import all tables命令,但此命令必须满足以下条件才能工作
每个表必须有一个单列主键。必须导入每个表的所有列。您不能打算使用非默认拆分列,也不能通过where子句强加任何条件。
reference:httpshttp://hortonworks.com/community/forums/topic/sqoop-incremental-import/