Sqoop的匯入和匯出操作

2021-09-12 20:55:26 字數 3120 閱讀 7159

sqoop匯出操作

hdfs上的資料/user/root/empdata

001,15012454745,[email protected]

002,13512454746,[email protected]

003,15812454747,[email protected]

1.修改遠端登入mysql的配置

use mysql;

select host from user where user='root';

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

2.在資料庫建立如下表:

create table `emp_from_hdfs` (

`id` int (11),

`phno` varchar (60),

`email` varchar (90)

);3.在匯入匯出的時候盡量使用ip(不要用網域名稱)來代表mysql的節點位置。

sqoop export \

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

--username root \

--password root \

--table emp_from_hdfs \

--export-dir /user/root/empdata \

--m 1

sqoop匯入操作

##預設匯出的資料到/user/root/emp

## --m 1 表示切片數量為1,也就是只是用了乙個maptask

##預設匯入的資料是匯入到 /user/root/xx表/part-m-00000

sqoop import \

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

--username root \

--password root \

--table emp \

--m 1

## target-dir指定匯入的資料存放到hdfs的某個位置

sqoop import \

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

--username root \

--password root \

--table emp \

--target-dir /myemp \

--m 1

##當maptask為2時,需要指定切片計算的key,這裡用split-by代替。

sqoop import \

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

--username root \

--password root \

--table emp \

--target-dir /myemp2 \

--split-by id \

--m 2

## mysql中的資料先存放到hdfs的/user/root/myemp_conn目錄下,然後匯入到hive資料庫中;接著刪除hdfs

目錄下臨時檔案

sqoop import \

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

--username root \

--password root \

--table emp_conn \

--target-dir /myemp_conn \

--hive-import \

--m 1

##hive-table指定匯入到哪張表中

sqoop import \

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

--username root \

--password root \

--table emp_conn \

--target-dir /user/root/myemp_conn \

--hive-import \

--hive-table new_emp_conn \

--m 1

查詢條件子集:

##where指定查詢的條件

sqoop import \

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

--username root \

--password root \

--where "city='sec-bad'" \

--table emp_add \

--m 1

##語法踩坑

##1. 必須有target-dir屬性

##2. query的屬性值必須用''括起來

##3. where 必須大寫,並且必須攜帶 and $conditions

sqoop import \

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

--username root \

--password root \

--query 'select id,hno from emp_add where id>1203 and $conditions ' \

--target-dir "/emp_subcol" \

--m 1

增量匯入是僅匯入新新增的表中的行的技術。它需要新增『incremental』, 『check-column』, 和 『last-value』選項來執行

增量匯入。如下示例:

sqoop import \

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

--username root \

--password root \

--table emp \

--m 1 \

--target-dir /root123 \

--check-column id \

--last-value 1203

Excel 匯入 匯出操作

在很多的時候我們都要用到excel的匯出 可是 有些東西是現成的 所以我們 就只需要理解 就好 沒必要每次開發都自己寫一遍 在這裡 把我的方法寫一下 在這裡需要說明的是在很以前的自己寫的 中 匯出的資料會出現亂碼的問題 但是 本編 已經查詢解決 就是在匯出的檔案是新增meta宣告 上面的是完整版本!...

資料的匯入匯出操作

資料匯入匯出的兩種方式 第一種是匯出為.dmp的檔案格式,dmp檔案是二進位制的,可以跨平台,還能包含許可權,效率很不錯,用得最為廣泛 第二種是匯出為.sql檔案,可用文字編輯器檢視,通用性比較好,但效率不如第一種,適合小資料量匯入匯出 資料的匯出 1 將資料庫orcl完全匯出 exp system...

oracle資料的匯入和匯出操作

比較老套的話題了,還是貼一下,也學習oracle有半年多了 不象sql server一樣,備份和還原資料庫在企業管理器裡操作很方便,oracle稍微麻煩一點 個人是這麼認為的 而且oracle中乙個使用者裡的資料就好比sql server裡的乙個資料庫,乙個表空間下也可以有多個使用者 比如現在我們要...