增量匯入
2.lastmodify方式(基於時間列)
sqoop import \
--connect jdbc:mysql: \
--username scfl \
--password scfl123 \
--query 「select * from test_table where \$conditions」 \
--target-dir /user/root/person_all \
--fields-terminated-by 「,」 \
--hive-drop-import-delims \
--null-string "\\n" \
--null-non-string "\\n" \
--split-by id \
--m 6 \
引數
說明–query
sql查詢語句
– target-dir
hdfs目標目錄(確保目錄不存在,否則會報錯,因為sqoop在匯入資料至hdfs時會自己在hdfs上建立目錄)
–hive-drop-import- delims
刪除資料中包含的hive預設分隔符(^a, ^b, \n)
–null-string
string型別空值的替換符(hive中null用\n表示)
–null-non-string
非string型別空值的替換符
–split-by
資料切片字段(int型別,m>1時必須指定)
-m
/usr/bin/sqoop import \
--connect jdbc:mysql: \
--username scfl \
--password scfl123 \
--table user \
--fields-terminated-by ',' \
--delete-target-dir \
--hive-import \
--hive-database default \
--hive-table hive_test2
引數
說明–hive-table
匯入資料到具體表(表可以不存在)
在生產環境中,系統可能會定期從與業務相關的關係型資料庫向hive匯入資料,匯入數倉後進行後續離線分析。所以此時不可能再將所有資料重新導一遍,此時我們就需要增量資料匯入這一模式了。比如將每天新增訂單抽取出來
sqoop import \
--connect jdbc:mysql: \
--username root \
--password 123456 \
--query 「select order_id, name from order_table where \$conditions」 \
--target-dir /user/root/orders_all \
--split-by order_id \
--m 6 \
--check-column order_id \
--last-value 5201314
重要引數說明:
引數說明
基於遞增列的增量匯入(將遞增列值大於閾值的所有資料增量匯入hadoop)
–check-column
遞增列(int)
–last-value
閾值(int)
此方式要求原有表中有time欄位,它能指定乙個時間戳,讓sqoop把該時間戳之後的資料匯入至hadoop(這裡為hdfs)。因為後續訂單可能狀態會變化,變化後time字段時間戳也會變化,此時sqoop依然會將相同狀態更改後的訂單匯入hdfs,當然我們可以指定merge-key引數為orser_id,表示將後續新的記錄與原有記錄合併。
# 將時間列大於等於閾值的資料增量匯入hdfs
sqoop import \
--connect jdbc:mysql: \
--username root \
--password transwarp \
--query 「select order_id, name from order_table where \$conditions」 \
--target-dir /user/root/order_all \
--split-by id \
-m 4 \
--incremental lastmodified \
--merge-key order_id \
--check-column time \
# remember this date !!!
--last-value 「2014-11-09 21:00:00」
重要引數說明:
引數說明
–incremental lastmodified
基於時間列的增量匯入(將時間列大於等於閾值的所有資料增量匯入hadoop)
–check-column
時間列(int)
–last-value
閾值(int)
–merge-key
合併列(主鍵,合併鍵值相同的記錄)
sqoop全量匯入操作
sqoop是一款對資料匯入和匯出的軟體 匯入 是將rdbms關係型資料庫中的資料匯入到hadoop集群中 hbase hive hdfs.匯出 是將hdfs集群環境中的資料匯出到rdbms關係型資料庫中 bin sqoop import connect jdbc mysql 3306 usernam...
sqoop 增量匯入
在隨著系統的執行,每天都會產生新的資料,在進行資料匯入的時候,由於之前已經匯入過資料,所以在產生新的資料的時候,就可以直接在之前導過的資料的基礎上繼續匯入資料,沒有必要之前的所有資料都重新匯入一遍 增量匯入資料的使用 以上為增量匯入的引數check column 檢查列,檢查資料庫表中的索引列,一般...
sqoop增量匯入
執行以下指令先將我們之前的資料匯入 sqoop import connect jdbc mysql master 3306 test username hive password 123456 table customer m 1使用hdfs dfs cat檢視生成的資料檔案,發現資料已經匯入.然後...