我们可以使用Sqoop eval函数运行多个SQL查询吗?
例如:
sqoop eval -D mapreduce.job.queuename = NONP.XXXX --connect“ jdbc:sqlserver://ee-dev/cloud.net:1433; database = sqlserver1”-用户名XXXX-密码ABC-查询'如果存在table1,则删除表;'从城镇中选择Townid,stateid,countryid;'
有人可以提出一种解决方案,以在一个sqoop EVAL中运行多个查询吗?
如果一个Sqoop EVAL中不可能进行多个查询,那么我必须编写多个Sqoop Eval作业。
答案 0 :(得分:0)
SQL Server客户端通常可以发送多个语句而不是单个查询的批处理。您需要将语句连接到单个字符串中,并用空格分隔它们。在多语句批处理中禁止ROWCOUNT消息也是一种好习惯。像这样:
--query 'set nocount on; drop table if exists table1; select townid,stateid,countryid from town;'
对于单批显示的语句有一些限制。某些DDL语句必须是批处理中的第一个或唯一语句,并且解析该批处理所需的所有对象都必须存在于批处理的开头。您可以根据需要通过在批处理中使用动态SQL来解决这两个问题。