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裡的乙個資料庫,乙個表空間下也可以有多個使用者 比如現在我們要...