2017-06-09 15 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