1

我正在使用 WSO2 ESB 4.5.1 和 WSO2 BAM 2.0.0。在我的 Hive 脚本中,我试图获取一个值并将其分配给一个变量,以便以后可以在 SQL 语句中使用它。我可以使用 hiveconf 使用变量,但我不确定如何从结果集中将单个值分配给它。有任何想法吗?谢谢。

4

1 回答 1

0

您可以扩展AbstractHiveAnalyzer并编写自己的类来执行查询并设置 hive conf 值,类似于这个summaryer。在这里您可以看到应该实现 execute() 方法,这将由 BAM 调用。在这里,您可以添加您的首选查询并使用“setProperty("your_hive_conf", yourResult.string());' 分配 hive conf。

您可以将您的 java 应用程序构建为典型的“.jar”文件或 osgi 包。如果您只是打包为“.jar”文件,那么您应该将 jar 放在 $BAM_HOME/repository/components/lib 中。如果您将应用程序打包为 osgi 包,则将文件放在 $BAM_HOME/repository/components/dropins 文件夹中。并重新启动 BAM 服务器。

最后,在您添加到 BAM 中的配置单元脚本中,您应该将扩展类包括为“class your.package.name.HiveAnalyzerImpl;”,以便 BAM 将运行您在您的类中实现的 execute() 方法和您的hive conf 将被设置。然后,您为 hive conf 设置的值可以在 hive 脚本中用作 ${hiveconf:your_hive_conf}。

希望这可以帮助。

于 2013-01-31T08:46:59.590 回答