【问题标题】:Can we have two sql queries in the query parameter of the sqoop import commandsqoop导入命令的查询参数中能否有两个sql查询
【发布时间】:2017-06-09 17:11:47
【问题描述】:

我正在尝试将两个表从 RDBMS 导入 Hive。是否有可能在 sqoop 导入命令的 --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

【问题讨论】:

  • 是否要将两个 SQL 查询的输出存储在不同的配置单元表中?
  • 是的。我想将两个输出存储在不同的配置单元表中。有没有办法做到这一点?

标签: hive sqoop


【解决方案1】:

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

你必须一件一件地去做。

编辑:

您不能完全依赖 sqoop 来执行 SQL 查询。通过 Sqoop 支持连接查询。但推荐只使用简单的查询。

Sqoop 期望在 sql 查询结束时有WHERE $CONDITIONS。由 sqoop 代替执行范围查询,以便多个 mapper 可以并行运行 SQL 查询。详情请查看我的另一个answer

示例查询:

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

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

【讨论】:

  • 好的。我可以在 --query 参数中使用连接吗?或者它会根据这个链接导致模棱两可的结果sqoop.apache.org/docs/1.4.2/…
  • @dev333 乐于助人..:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2022-01-27
  • 2018-09-21
相关资源
最近更新 更多