我们可以在sqoop import命令的query参数中有两个sql查询

时间:2017-06-09 07:03:42

标签: hive sqoop

我试图将两个表从RDBMS导入到Hive。是否有可能在sqoop import命令的--query参数中触发两个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

1 个答案:

答案 0 :(得分:1)

不,您不能在--query参数中使用两个SQL来将输出存储在两个不同的Hive表中。

你必须逐一做到这一点。

修改

您不能完全依赖sqoop来执行SQL查询。通过Sqoop支持加入查询。但只有简单的查询推荐

Sqoop在SQL查询结束时期望WHERE $CONDITIONS。它由sqoop替换以执行范围查询,以便多个映射器可以并行运行SQL查询。检查我的另一个answer了解详情。

示例查询:

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

在sqoop命令中添加-verbose以查看sqoop为bebug触发的查询。