我们可以在 sqoop import 命令的查询参数中有两个 sql 查询吗
Can we have two sql queries in the query parameter of the sqoop import command
我正在尝试将两个 table 从 RDBMS 导入到 Hive。是否有可能在 sqoop 导入命令的 --query 参数中触发两个 sql 查询。
目前,我可以使用以下命令使用一个 sql 查询来查询 table:
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
不,您不能在 --query
参数中使用两个 SQL 来将输出存储在两个不同的 Hive 表中。
你必须一项一项地完成。
编辑:
您不能完全依赖 sqoop 来执行 SQL 查询。通过 Sqoop 支持连接查询。但只推荐 简单的查询。
Sqoop 预计 WHERE $CONDITIONS
在 sql 查询的末尾。换成sqoop进行范围查询,这样多个mapper可以运行SQL并行查询。查看我的另一个 answer 了解详情。
示例查询:
--query "SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS"
在您的 sqoop 命令中添加 -verbose
以查看 sqoop for bebug 触发的查询。
我正在尝试将两个 table 从 RDBMS 导入到 Hive。是否有可能在 sqoop 导入命令的 --query 参数中触发两个 sql 查询。
目前,我可以使用以下命令使用一个 sql 查询来查询 table:
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
不,您不能在 --query
参数中使用两个 SQL 来将输出存储在两个不同的 Hive 表中。
你必须一项一项地完成。
编辑:
您不能完全依赖 sqoop 来执行 SQL 查询。通过 Sqoop 支持连接查询。但只推荐 简单的查询。
Sqoop 预计 WHERE $CONDITIONS
在 sql 查询的末尾。换成sqoop进行范围查询,这样多个mapper可以运行SQL并行查询。查看我的另一个 answer 了解详情。
示例查询:
--query "SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS"
在您的 sqoop 命令中添加 -verbose
以查看 sqoop for bebug 触发的查询。