打包或自动执行 Hive 查询

Posted

技术标签:

【中文标题】打包或自动执行 Hive 查询【英文标题】:Package or automating execution of Hive queries 【发布时间】:2018-06-06 20:19:33 【问题描述】:

在 Oracle 或其他数据库中,我们有一个 PL/SQL 包的概念,我们可以在其中打包多个查询/过程并在 UNIX 脚本中调用它们。如果是 Hive 查询,在实际生产环境中用于打包和自动化查询处理的过程是什么。

【问题讨论】:

【参考方案1】:

如果您希望自动执行大量 Hive 查询,则 Hive 或 Beeline CLI(想想 sqlplus 与 Oracle)允许您传递包含一个或多个命令的文件,例如多个插入、选择、创建表等。可以使用您喜欢的脚本语言(如 python 或 shell)以编程方式创建所述文件的内容。

请参阅本文档中的“-i”选项:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli

就程序语言而言,请参阅: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=59690156

HPL/SQL 确实有一个 Create Package 选项,但如果您想要实现的任何目标都是在 HPL/SQL 之外编写的(例如 python、shell),您可以根据您选择的脚本编写最佳实践“打包”您的应用程序语言。

【讨论】:

【参考方案2】:

要运行多用途查询,只需将它一个接一个地写在一个文件中(比如'hivescript.hql'),然后它可以通过简单地通过beeline或hive shell调用它来从bash运行

beeline -u "jdbc:hive2://HOST_NAME:10000/DB" -f hivescript.hql

【讨论】:

以上是关于打包或自动执行 Hive 查询的主要内容,如果未能解决你的问题,请参考以下文章

Build tools

黑猴子的家:Hive 本地模式

使用 Oozie 在 Hive 上执行查询时,如何解决“只能使用 kerberos 或 Web 身份验证颁发委托令牌”?

减少 Hive 查询执行时间的方法

python实现hive自动化测试

如何把ndk编译出来的可执行文件伪装成so打包到apk中