2017-06-09 43 views
0

我試圖將兩個表從RDBMS導入到Hive。有沒有可能在sqoop import命令的--query參數中激發兩個sql查詢。我們可以在sqoop導入命令的查詢參數中有兩個sql查詢

目前,我可以使用下面的命令,使用一個SQL查詢來sqoop表:

sqoop import --connect jdbc:teradata://192.168.xx.xx/DBS_PORT=1025,DATABASE=ds_tbl_db 
--driver com.teradata.jdbc.TeraDriver 
--username dbc 
--password dbc 
--query 'select * from table' 
--hive-import 
--hive-table reason_hive 
--target-dir <hdfs-location> 
-m 1 
+0

是否要將兩個SQL查詢的輸出存儲在不同的配置表格中? –

+0

是的。我想將這兩個輸出存儲在不同的配置單元表中。有沒有辦法做到這一點? – dev333

回答

1

不,你不能同時採用兩種SQL在--query參數輸出存儲在兩個不同的蜂巢表。

你必須一個接一個地做。

編輯:

你不能完全依靠sqoop用於執行SQL查詢。通過Sqoop支持加入查詢。但只有簡單的查詢建議

Sqoop預計WHERE $CONDITIONS在sql查詢結束。它被sqoop替換來執行範圍查詢,以便多個映射器可以並行運行SQL查詢。詳情請查看我的另一個answer

樣品查詢:

--query "SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE \$CONDITIONS" 

添加-verbose在sqoop命令來查看查詢由sqoop爲bebug解僱。

+0

好的。我可以在--query參數中使用連接嗎?或者它會導致模糊的結果,根據此鏈接http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_literal_sqoop_import_all_tables_literal – dev333

+0

@ dev333檢查更新的答案 –

+0

非常感謝您的信息。這真的很有幫助... – dev333