我們可以匯入表時使用sqoop匯入工具,"where"子句的乙個子集。它執行在各自的數
據庫伺服器相應的sql查詢,並將結果儲存在hdfs的目標目錄。
sqoop import \
--connect jdbc:mysql: \
--username root --password 123456 --table emp_add \
--target-dir /sqoop/emp_add -m 1 --delete-target-dir \
--where "city = 'sec-bad'"
我們還可以通過 –query引數來指定我們的sql語句,通過sql語句來過濾我們的資料進行匯入
sqoop import \
--connect jdbc:mysql: --username root --password 123456 \
--query "select * from emp where id>1203 and \$conditions" \
--fields-terminated-by '\t' \
--hcatalog-database sqooptohive \
--hcatalog-table emp_hive \
-m 1
注意:有時候where後面如果沒有條件的話 就用 where 1 = 1 代替 代表true 引出後面 and \$conditions
使用sql語句來進行查詢時不能加引數--table
並且必須要新增where條件,
並且where條件後面必須帶乙個$conditions 這個字串,
並且這個sql語句如果使用雙引號,則要修改為\$conditions
Sqoop 抽資料 優化
sqoop作為乙個跨平台抽取和輸出資料的工具,在關係型資料庫 oralce,mysql等 和大資料平台之間常用。而目前的專案使用的hadoop平台,上游資料庫是oracle。作為etl的一環,載入作業的效能也是需要關注和優化的。如果使用sqoop命令,則可以從以下幾點進行優化 1.允許並行抽數 m ...
sqoop實現資料的抽取
1.sqoop help 2.列出主機所有的資料庫 sqoop list databases connect jdbc mysql username root password 123456 3.檢視某乙個資料庫下面的所有資料表 sqoop list tables connect jdbc mysq...
sqoop實現資料遷移
sqoop命令中的 後不能接任何空格,否則報錯 1 sqoop help 檢視命令 2 顯示所有庫名 方式一 sqoop list databases connect jdbc mysql 3306 username root password 123456 方式二 sqoop list datab...