是否有任何方法可以使用时间戳以外的列值自动执行sqoop导入。我尝试在我的表中使用一列(ID)。但它并没有起作用。下面是示例代码,我使用cloudera hadoop UI进行自动化。问题是最后一个值没有自动更新。
import
--connect
jdbc:mysql://172.26.122.123:3306/books
--username
hadoop
--password
********
--incremental
append
--check-column
id
--last-value
0
--table
authors
--as-textfile
--fields-terminated-by
","
--null-string
\0
--null-non-string
\0
--target-dir
/user/thilina_08838/source/test
-m
1下面是mysql表+-----------+-------------+------+-----+---------+-------+ |字段|类型|空|键| Default | Extra |+--+-+| id | int(11) | YES || NULL | name | varchar(20) | YES || NULL | email | varchar(20) | YES || NULL | timestamp | datetime | YES || NULL ||++-------------+------+-----+---------+-------+
发布于 2017-11-19 03:26:12
您可以使用保存的sqoop导入作业轻松地自动执行此操作。
sqoop job --create jobname --import --connect
jdbc:mysql://172.26.122.123:3306/books
--username
hadoop
--password
********
--incremental
append
--check-column
id
--last-value
0
--table
authors
--as-textfile
--fields-terminated-by
","
--null-string
\0
--null-non-string
\0
--target-dir
/user/thilina_08838/source/test
-m
1您可以根据您的增量刷新频率放置一个cron作业或ETL工作流,并在其中调用sqoop --exec jobname。
有关更多信息,请参阅下面的内容。
https://stackoverflow.com/questions/47364644
复制相似问题