發表: 2016-10-14 瀏覽: 755
sqoop
匯出
–connect,同匯入
–username,同匯入
–password,同匯入
–columnsclass_id,class_name,teacher
注意:沒有被包含在–columns後面(例如class_month,last_mod_ts)的這些列名或字段要麼具備預設值,要麼就允許插入空值,資料庫會拒絕接受sqoop匯出的資料,導致sqoop作業失敗
–export-dir,匯出目錄,在執行匯出的時候,必須指定這個引數,同時需要具備–table或–call引數兩者之一,–table是指的匯出資料庫當中對應的表,–call是指的某個儲存過程
–input-null-string、–input-null-non-string,這兩引數是可選,如果沒有指定第乙個引數,對於字串型別的列來說,「null」這個字串就回被翻譯成空值,如果沒有使用第二個引數,無論是「null」字串還是說空字串也好,對於非字串型別的字段來說,這兩個型別的空串都會被翻譯成空值
sqoop export --connect jdbc:mysql://centos:3306/sqooptest --username root --password 123456--table bigdata2 --export-dir /user/root/bigdata/
–update-key,更新標識,即根據某個字段進行更新,例如class_id,可以指定多個更新標識的,用逗號分隔
–updatemod,有兩種模式,一種是updateonly(預設模式),僅僅更新已存在的資料記錄,不會插入新紀錄,另一種模式是allowinsert,允許插入新紀錄
sqoop的export工具,對應兩種語句,一種是insert語句,如果表當中存在pk約束,且表中已包含資料,此時,匯出報錯。此時需要用到—update-key和updatemod
如果指定了update-key,那麼sqoop就會修改在資料表中已存在的資料,此時的每乙個更行資料記錄都會變成乙個update語句,用這個語句去更新目標表中已存在的資料,這是根據–update-key所指定的這個列進行更新的。update set teacher=」marsj」 where class_id = 1。示例1)若update-key所指定的字段不是pk欄位,若同時updatemod使用updateonly模式時,就僅進行更新,若updatemod使用allowinsert模式,那麼實質上就是乙個insert操作
2)若update-key所指定的字段是pk欄位,同時updatemod是allowinsert時,實質上是乙個insert & update的操作,若updatemod是updateonly時,實質僅為update操作
# updateonly example
sqoop export --connect jdbc:mysql://centos:3306/sqooptest --username root --password 123456--table bigdata2 --export-dir /user/root/bigdata/ --update-key class_id --update-mode updateonly
# allowinsert example
sqoop export--connect jdbc:mysql://centos:3306/sqooptest --username root --password 123456--table bigdata2 --export-dir /user/root/bigdata/ --update-key class_id --update-mode allowinsert
sqoop匯出筆記
sqoop支援直接從hive表到rdbms表的匯出操作,也支援hdfs到rdbms表的操作,當前需求是從hive中匯出資料到rdbms,有如下兩種方案 從hive表到rdbms表的直接匯出 該種方式效率較高,但是此時相當於直接在hive表與rdbms表的資料之間做全量 增量和更新對比,當hive表記...
sqoop匯入匯出
sqoop官方手冊位址 最近在看sqoop有些感想,就寫下來。sqoop是大資料裡面匯入匯出的乙個工具。關於import匯出 可以從mysql匯出到hdfs,hbase,hive,案例如下,這是乙個匯出到hdfs的案例 import connect jdbc mysql username root ...
sqoop匯出指令碼
sqoop匯出指令碼 bin sh source exitcodecheck.sh opts getparam incstart getparam inc start incend getparam inc end pg connection getparam jdbc str pg usernam...