個人總結-Sqoop


一、從rdbms導入到hdfs中

1、一 import(從rdbms導入到hdfs中)

可選參數

默認使用as-textfile文件格式,行與行之間使用逗號分割

--as-parquetfile ?使用partition文件格式保存

--columns id,name 導入指定的列

--compress 啟用壓縮

--compression-codec org.apache.hadoop.io.compress.SnappyCodec 壓縮格式

壓縮后的文件如果直接加載到hive,可以正常運行(生產環境中用hive來分析mysql的數據

--delete-target-dir 刪除已經存在的目標目錄

--fields-terminated-by '\t' 設置分割符

--direct mysql優化,快速導入,

2、查看mysql中-的database:

sqoop list-databases \

--connect jdbc:mysql://localhost:3306 \

--username root \

--password ***** \

3、將mysql中表的數據導入到hdfs

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users \

--target-dir /user/sqoop/mysql/users \

--num-mappers 1

4、使用sql語句將數據導入hdfs

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--query 'select id,name from users where $CONDITIONS'\

--target-dir /user/sqoop/mysql/users_query \

--num-mappers 1

5、使用sql語句將數據導入hdfs——增量導入

有一個唯一的標識符,類似于插入時間createtime,使用where來進行區分

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--query 'select id,name from users where $CONDITIONS'\

--target-dir /user/sqoop/mysql/users_query \

--num-mappers 1 \

--incremental append \增量倒入

--check-column id \ 標識符列

--last-value 4 \上一次的最后一個 插入位置

二、export導出(文件或者hive到mysql中)

1、將hdfs文件導入mysql

sqoop export \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users \

--export-dir /user/sqoop/hdfs/users_mysql.txt \

--num-mappers 1 \

2、從mysql直接導數據到hive中

sqoop import \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users \

--delete-target-dir \

--fields-terminated-by ',' \

--num-mappers 1 \

--hive-import \

--hive-database default \

--hive-table users2

原理與之前一樣,中間還是會先將數據寫道hdfs上邊

3、從hive中導出數據到mysql中

sqoop export \

--connect jdbc:mysql://localhost:3306/test \

--username root \

--password ***** \

--table users2 \

--export-dir /user/sqoop/hdfs/mysql \

--num-mappers 1 \

--input-fields-terminated-by ','

4、option-file使用:相當于執行腳本

執行語句:sqoop --options-file /文件位置

腳本內容:(空格變換行)

sqoop export ??

#這里寫注釋

--connect?jdbc:mysql://localhost:3306/test

--username?root

--password?*****

--table?users2

--export-dir?/user/sqoop/hdfs/mysql

--num-mappers?1

--input-fields-terminated-by ','

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容