У меня есть Hive-запрос в Hue с одной входной переменной, строкой (например, датой типа '20160117').
Я хотел бы выполнить этот запрос Hive в Hue и передать ему несколько значений для этой единственной переменной.
Возможно ли это? Если да, как бы вы, ребята, это сделали?Есть ли способ передать несколько значений одной и той же переменной в задание Hive в Hue?
0
A
ответ
1
Oozie запускает прямые ациклические графики (DAG). А Acyclic сводится к no loop, ever. Но, конечно, есть обходные пути.
Так что, если вы должны запустить тот же сценарий HQL ровно N раз с другим значением параметра ...
- либо копировать/вставить Улей Действие N раз, в цепи, с другой значение парам (быстрая и грязная)
- или построить Sub-Workflow с только действием улей и вызвать его N раз, в цепи, с другим значением парам
на о Ther стороны, если вы должны адаптировать динамически количество и значение казней, то вы должны выработать «петлю» логики за пределами Oozie правильного ...
- , например, начать с действием Shell, что создает пустой HQL-файл, затем добавляет N запросов в цикл, затем загружает файл в HDFS; Далее действие улей, который выполняет сценарий HQL как есть (быстрый и грязный, но не подходит для обработки исключений)
- или разработать программу Java, которая подключается к HiveServer2 через JDBC, представляет переменная
PreparedStatement
с 1 привязывать, и выполняет оператор N раз в цикле с разными значениями переменной.
И может быть, когда-нибудь, улей будет поддерживать какой-то процедурный язык, похожий на PL/SQL, T-SQL, PgSQL и т.д., и вы сможете пройти через запятую список значений и обрабатывать его внутри улей.
, пожалуйста, отправьте пример запроса, который вы пытаетесь выполнить. – Jared
В настоящее время вы не можете, вам нужно будет параметризовать запрос, например. $ {date} и отправить его дважды (или использовать координатор Oozie http://gethue.com/hadoop-tutorial-schedule-your-hadoop-jobs-intuitively/) – Romain