如何使用hive存储过程


这篇文章给大家分享的是有关如何使用hive存储过程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、hive存储过程简介1.x版本的hive中没有提供类似存储过程的功能,使用Hive做数据开发时候,一般是将一段一段的HQL语句封装在Shell或者其他脚本中,然后以命令行的方式调用,完成一个业务或者一张报表的统计分析。好消息是,现在已经有了Hive存储过程的解决方案(HPL/SQL –Procedural SQL on hadoop),并且在未来的Hive的版本(2.0)中,会将该模块集成进来。该解决方案不仅支持Hive,还支持在SparkSQL,其他NoSQL,甚至是RDBMS中使用类似于Oracle PL/SQL的功能,这将极大的方便数据开发者的工作,Hive中很多之前比较难实现的功能,现在可以很方便的实现,比如自定义变量、基于一个结果集的游标、循环等等。下载:官网下载地址:http://www.hplsql.org/download0.3.31版本下载地址:http://www.hplsql.org/downloads/hplsql-0.3.31.tar.gz安装hplsql:[root@hadoop01 home]# tar -zxvf /home/hplsql-0.3.31.tar.gz -C /usr/local/[root@hadoop01 home]# cd /usr/local/hplsql-0.3.31/配置hplsql:vi ./hplsql内容如下:#!/bin/bashexport “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/lib/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_CONF_DIR/”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/mapreduce/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/mapreduce/lib/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/hdfs/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/hdfs/lib/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/yarn/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/yarn/lib/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/common/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/common/lib/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*”export “HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/conf”export HADOOP_OPTS=”$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native”SCRIPTPATH=${0%/*}java -cp $SCRIPTPATH:$HADOOP_CLASSPATH:$SCRIPTPATH/hplsql-0.3.31.jar:$SCRIPTPATH/antlr-runtime-4.5.jar $HADOOP_OPTS org.apache.hive.hplsql.Hplsql “$@”配置hive2的服务:vi ./conf/hive-site.xml追加内容如下:hive.server2.thrift.bind.hosthadoop01hive.server2.thrift.port10000重启hiveserver2:nohup hive –service hiveserver2 > hiveserver2.log 2>&1 &配置HPL/SQL与Hive的连接:vi ./hplsql-site.xml使用hplsql -e执行命令:[root@hadoop01 hplsql-0.3.31]# ./hplsql -e “CURRENT_DATE + 1″2019-09-18[root@hadoop01 hplsql-0.3.31]# ./hplsql -e “for i in 1 .. 10 loop print i;end loop;”hplsql -f执行脚本:测试表:hive>select * from qf24.u5;OK7 yy3 cc2 bb创建脚本hp.sqlcreate function hello(text string)returnS stringBEGINRETRUEN ‘Hello,’ || text || ‘!’;END;FOR item IN(SELECT id,name FROM qf24.u5 limit 3)loopprintln item.id || ‘|’ || item.name || ‘|’ || hello(item.name);end loop;测试:[root@hadoop01 hplsql-0.3.31]# ./hplsql -f /home/hivedata/hp.sql7|yy|Hello,yy!3|cc|Hello,cc!2|bb|Hello,bb!创建存储过程的格式:use database;create procedurebegin……end;调用存储过程:include path/sp namecall sp name;案例:创建存储过程:use qf24;create procedure select_u5()beginselect * from qf24.u5;end;调用:include 文件路径 (在代码文件中引 香港云主机入)执行执行文件:[root@hadoop01 hplsql-0.3.31]# ./hplsql -f /home/hivedata/ps.sql调用指定存储过程或者方法:[root@hadoop01 hplsql-0.3.31]# ./hplsql -f /home/hivedata/ps.sql -main select_u5感谢各位的阅读!关于“如何使用hive存储过程”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: 树莓派人脸识别门禁系统代码以及代码分析

今天就跟大家聊聊有关树莓派人脸识别门禁系统代码以及代码分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。树莓派人脸识别门禁系统的总体设计硬件包括:树莓派3B、电源模块、转5V降压模块、触摸感应传感器模块…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 09/14 12:47
Next 09/14 12:47

相关推荐