您可以使用--where
或--query
与其中选择条件来筛选导入结果
我不知道你的sqoop完整的命令,只是试试这种方式
sqoop import
--connect jdbc:oracle:thin:@//db.example.com/dbname \
--username dbusername \
--password dbpassword \
--table tablename \
--columns "column,names,to,select,in,comma,separeted" \
--where "(LST_UPD_TMST >TO_TIMESTAMP('2016-05-31T18:55Z', 'YYYY-MM-DD\"T\"HH24:MI\"Z\"') AND LST_UPD_TMST <= TO_TIMESTAMP('2016-09-13T08:51Z', 'YYYY-MM-DD\"T\"HH24:MI\"Z\"'))" \
--target-dir {hdfs/location/to/save/data/from/oracle} \
--incremental lastmodified \
--check-column LST_UPD_TMST \
--last-value {from Date/Timestamp to Sqoop in incremental}
查看更多详细信息关于sqoop incremental load
更新
对于增量进口Sqoop保存工作建议自动保持--last-value
。
sqoop job --create {incremental job name} \
-- import
--connect jdbc:oracle:thin:@//db.example.com/dbname \
--username dbusername \
--password dbpassword \
--table tablename \
--columns "column,names,to,select,in,comma,separeted" \
--incremental lastmodified \
--check-column LST_UPD_TMST \
--last-value 0
这里--last-value 0
从开始导入的第一时间,那么最新 值会自动在下次调用由sqoop任务,经过