有没有办法将同一变量的多个值传递到Hue中的Hive作业?

时间:2016-04-06 00:34:32

标签: hive oozie hue


我在Hue中有一个Hive查询,其中包含一个输入变量,一个字符串(例如日期,如' 20160117')。 我希望在Hue中执行此Hive查询,并为该单个变量传递多个值 可能吗?如果是的话,你们会怎么做?

1 个答案:

答案 0 :(得分:1)

Oozie运行直接非循环图(DAG)。非循环归结为 无循环, 。但当然有一些解决方法。

因此,如果您必须使用不同的参数值运行相同的HQL脚本完全N次 ...

  • 将Hive Action复制/粘贴N次,使用不同的参数值(快速和脏)
  • 或仅使用Hive操作构建子工作流并在链中调用N次,具有不同的参数值

另一方面,如果你必须适应动态执行的数量和价值,那么你必须找出Oozie之外的“循环”逻辑......

  • 例如,从创建空HQL文件的Shell操作开始,然后在循环中添加N个查询,然后将文件上载到HDFS;接下来,按原样执行HQL脚本的Hive操作(快速且脏,但不适合异常处理)
  • 或者开发一个通过JDBC连接到HiveServer2的Java程序,使用1个绑定变量提交PreparedStatement,并在具有不同变量值的循环中执行N次语句。

也许,有一天,Hive会支持某种类似于PL / SQL,T-SQL,PgSQL等的过程语言,你将能够传递逗号分隔的值列表并在Hive中处理它。