【问题标题】:Sqoop Eval to run multiple queries?Sqoop Eval 运行多个查询?
【发布时间】:2019-02-23 17:05:46
【问题描述】:

我们可以使用 Sqoop eval 函数运行多个 sql 查询吗?

例如:
sqoop eval -D mapreduce.job.queuename=NONP.XXXX --connect "jdbc:sqlserver://ee-dev/cloud.net:1433;database=sqlserver1" - -username XXXX --password ABC --query 'drop table if exists table1;'select townid,stateid,countryid from town;'

有人可以建议在一个 sqoop EVAL 中运行多个查询的解决方案吗?
如果在一个 Sqoop EVAL 中无法进行多个查询,那么我必须编写多个 Sqoop Eval 作业。

【问题讨论】:

    标签: sql-server sqoop sqoop2


    【解决方案1】:

    SQL Server 客户端通常可以发送一批多条语句而不是单个查询。您需要将语句连接在一个字符串中,并用空格分隔它们。在多语句批处理中抑制 ROWCOUNT 消息也是一个好习惯。所以像:

    --query 'set nocount on; drop table if exists table1; select townid,stateid,countryid from town;'
    

    对可以出现在单个批次中的语句有一些限制。某些 DDL 语句必须是批处理中的第一个或唯一一个语句,并且解析批处理所需的所有对象都必须存在于批处理的开头。如有必要,您可以通过在批处理中使用动态 SQL 来解决这两个问题。

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      相关资源
      最近更新 更多