sqoop主要用於在hadoop(hive)與傳統的資料庫(mysql、postgresql…)間進行資料的傳遞,
可以將乙個關係型資料庫(例如 : mysql ,oracle ,postgres等)中的資料導進到hadoop的hdfs中,
也可以將hdfs的資料導進到關係型資料庫中。
–connect jdbc:mysql: 連線資料庫
–username root\ 資料庫使用者名稱
–password root\ 資料庫密碼
–table tb_export_task \ 表名稱
–hive-drop-import-delims \匯入到hive時刪除 \n, \r, and \0001
–delete-target-dir \hdfs位址存在刪除
–null-string 『\n』 \空值轉換
–null-non-string 『\n』 \ 非空字串替換
–fields-terminated-by 「\t」 \ 字串分割
–lines-terminated-by 『\n』
–where 「$4」』 \ 條件查詢
–columns \ 從表中匯出指定的一組列的資料
–query 匯入的查詢語句
–target-dir /origin_data/bigdata/product \ hdfs位址
-m maptask數
注意:在mysql中字段值明明是null, 為什麼到hive查詢後 where field is null 會沒有結果呢,然後通過檢查一看 居然null值都變成了字段串』null』。
在hive裡面null是用\n來表示的
–null-string含義是 string型別的字段,當value是null,替換成指定的字元
–null-non-string 含義是非string型別的字段,當value是null,替換成指定字元
sqoop import -d mapreduce.job.queuename=dev \
--connect jdbc:mysql: \
--username sqoop \
--password *** \
--table ttt \
--hive-drop-import-delims \
--null-string '\\n' \
--null-non-string '\\n' \
--fields-terminated-by '\001' \
--lines-terminated-by '\n' \
--delete-target-dir \
--target-dir /origin_data/bigdata/product/ods_tb_export_task \
-m 1
匯出需要注意兩個引數,主要在增量更新中使用
–update-key id \ 更新標識,即根據某個字段進行更新,
–update-mode allowinsert \指定allowinsert,更新已存在的資料記錄,同時插入新紀錄,指定updateonly(預設模式),僅僅更新已存在的資料記錄,不會插入新紀錄。
sqoop export -d mapred.job.queue.name=root.badm \
--connect jdbc:mysql: \
--username sqoop \
--password ***x \
--table table_order \
--columns 'id ,
transaction_id ,
user_id ,
work_order_no ,
ticket_id ,
price ,
liters ,
cou_no
' \--mapreduce-job-name 'ads_line_order' \
--update-key id \
--update-mode allowinsert \
--input-fields-terminated-by '\001' \
--input-lines-terminated-by '\n' \
--export-dir /origin_data/bigdata/product/ods_tb_export_task \
-m 1
Sqoop(二) Sqoop匯入 匯出資料
1.2 rdbms hive 1.3 rdbms hbase 2.匯出資料 在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。sqoop import connect jdbc mysql top...
sqoop匯入匯出
sqoop官方手冊位址 最近在看sqoop有些感想,就寫下來。sqoop是大資料裡面匯入匯出的乙個工具。關於import匯出 可以從mysql匯出到hdfs,hbase,hive,案例如下,這是乙個匯出到hdfs的案例 import connect jdbc mysql username root ...
sqoop匯入 匯出
全部匯入 sqoop import connect jdbc mysql hadoop01 3306 test1 username root password 1234 table students target dir user test1 delete target dir fields ter...