Sqoop通過條件實現資料的抽取

2021-10-12 04:41:42 字數 896 閱讀 8552

我們可以匯入表時使用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...