sqoop全量匯入操作

2021-10-06 01:22:12 字數 2056 閱讀 9912

sqoop是一款對資料匯入和匯出的軟體

匯入:是將rdbms關係型資料庫中的資料匯入到hadoop集群中(hbase\hive\hdfs....)

匯出:是將hdfs集群環境中的資料匯出到rdbms關係型資料庫中

//bin/sqoop import --connect jdbc:mysql://:3306/ --username  --password  --table  --target-dir  --m 1
--target-dir:是將資料匯入到hdfs後的路徑,不可以存在,假如已經存在,執行就會報錯(sqoop底層實現是mr)

--m 1:代表執行乙個maptask,預設是沒有reducetask的

注意:如果不寫--target-dir,那麼sqoop將會在hdfs上的/user/root/目錄下生成乙個跟表名相同的資料夾,匯入的資料就在該資料夾中

從關係型資料庫匯入到hive中有兩種方案

方案一:先導入錶結構,再匯入表資料

匯入表結構操作

bin/sqoop create-hive-table \

--connect jdbc:mysql://mysql服務主機ip:3306/資料庫名 \

--username --password \

--table

--hive-table .

--create-hive-table:宣告該操作為建表操作

--hive-table:在指定的資料庫下生成指定表名的資料庫

匯入表資料的操作

bin/sqoop import \

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

--username --password \

--table \

--m 1 \

--hive-table . \

--hive-import

--hive-import:宣告該操作為向hive中新增資料

方案二:直接匯入表結構以及表資料

bin/sqoop import \

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

--username \

--password \

--table \

--hive-import \

--m 1 \

--hive-database ;

該方案中的hive生成的表名與mysql中的表名相同

2.3.1where子句

bin/sqoop import \

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

--username \

--password \

--where "條件" \

--target-dir \

--table \

--m 1

將符合where條件中的資料的所有字段匯入到hdfs中

2.3.2query查詢

bin/sqoop import \

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

--username \

--password \

--target-dir \

--query 'select id,name,deg from emp where id>1203 and $conditions' \

--split-by id \

--fields-terminated-by '\t' \

--m 2

--query 後面使用sql語句

sql語句必須新增where條件,如果全都要的話,就寫1=1

sql語句最後面一定要在where後加上and $conditions

sql語句必須使用單引號括起來(不要問為什麼,記住就行),雙引號也不可以

使用--query引數後,執行命令就不可以出現--table引數,因為在sql語句中已經指定了表

Sqoop的全量匯入和增量匯入

增量匯入 2.lastmodify方式 基於時間列 sqoop import connect jdbc mysql username scfl password scfl123 query select from test table where conditions target dir user...

Sqoop 資料匯出 全量 增量 更新

sqoop支援直接從hive表到rdbms表的匯出操作,也支援hdfs到rdbms表的操作,當前需求是從hive中匯出資料到rdbms,有如下兩種方案 從hive表到rdbms表的直接匯出 該種方式效率較高,但是此時相當於直接在hive表與rdbms表的資料之間做全量 增量和更新對比,當hive表記...

Sqoop 資料匯出 全量 增量 更新

sqoop支援直接從hive表到rdbms表的匯出操作,也支援hdfs到rdbms表的操作,當前需求是從hive中匯出資料到rdbms,有如下兩種方案 從hive表到rdbms表的直接匯出 該種方式效率較高,但是此時相當於直接在hive表與rdbms表的資料之間做全量 增量和更新對比,當hive表記...