首页 文章

Sqoop Eval运行多个查询?

提问于
浏览
0

我们可以使用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作业 .

1 回答

  • 0

    SQL Server客户端通常可以发送一批多个语句而不是单个查询 . 您需要在单个字符串中连接语句,并用空格分隔它们 . 在多语句批处理中抑制ROWCOUNT消息也是一种很好的做法 . 所以类似于:

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

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

相关问题