我试图将两个表从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
答案 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触发的查询。