Sqoop Eval для запуска нескольких запросов? - PullRequest
0 голосов
/ 19 сентября 2018

Можем ли мы выполнить несколько SQL-запросов с помощью функции Sqoop eval?

Например:
sqoop eval -D mapreduce.job.queuename = NONP.XXXX --connect "jdbc: sqlserver://ee-dev/cloud.net:1433;database=sqlserver1 "--username XXXX --password ABC --query 'удалить таблицу, если существует table1;' выбрать townid, stateid, countryid из города; '

Может кто-нибудь предложить решение для запуска нескольких запросов в одном sqoop EVAL?
Если несколько запросов невозможно в одном Sqoop EVAL, тогда мне нужно написать несколько заданий Sqoop Eval.

1 Ответ

0 голосов
/ 19 сентября 2018

Клиент SQL Server обычно может отправлять пакет из нескольких операторов вместо одного запроса.Вам нужно будет объединить операторы в одну строку и разделить их пробелами.Хорошей практикой также является подавление сообщений ROWCOUNT в пакете из нескольких операторов.Так что-то вроде:

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

Существуют некоторые ограничения для операторов, которые могут появляться в одном пакете.Некоторые операторы DDL должны быть первым или единственным оператором в пакете, и все объекты, необходимые для анализа пакета, должны существовать в начале пакета.При необходимости вы можете обойти оба этих метода, используя динамический SQL внутри пакета.

...