1. 程式人生 > 其它 >1.11-1.12 Sqoop匯入資料時兩種增量方式匯入及direct

1.11-1.12 Sqoop匯入資料時兩種增量方式匯入及direct

一、增量資料的匯入

1、兩種方式

## query
有一個唯一識別符號,通常這個表都有一個欄位,類似於插入時間createtime    
where createtime => 20150924000000000 and createtime < 20150925000000000


##sqoop引數
Incremental import arguments:
   --check-column <column>            Source column to check for incremental change
   --incremental <import-type>        Define an incremental import of type 'append' or 'lastmodified'
   --last-value <value>                   Last imported value in the incremental check column

2、用sqoop引數增量匯入的方式

##
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--target-dir /user/root/sqoop/imp_my_incr \
--num-mappers 1 \
--incremental append \
--check-column id \
--last-value 4  


#--incremental append       //追加方式
#--check-column        //檢查的欄位
#--last-value        //最後的值,不包含這個值,從這個值後面的開始匯入


##
[root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# bin/hdfs dfs -text /user/root/sqoop/imp_my_incr/part-m-00000
5,test,test
6,pudong,pudong
7,qiqi,qiqi

二、direct引數

直接匯出模式(優化速度);

使用的是關係資料庫自帶的匯入匯出工具;

##
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--target-dir /user/root/sqoop/imp_my_incr \
--num-mappers 1 \
--delete-target-dir \
--direct