返回顶部
首页 > 资讯 > 精选 >如何使用hive存储过程
  • 751
分享到

如何使用hive存储过程

2023-06-02 01:06:02 751人浏览 八月长安
摘要

这篇文章给大家分享的是有关如何使用Hive存储过程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。hive存储过程简介1.x版本的hive中没有提供类似存储过程的功能,使用Hive做数据开发时候,一般是将一段一段的

这篇文章给大家分享的是有关如何使用Hive存储过程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

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中很多之前比较难实现的功能,现在可以很方便的实现,比如自定义变量、基于一个结果集的游标、循环等等。

2、hplsql安装和存储过程案例

下载:

官网下载地址:Http://www.hplsql.org/download

0.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/bash

export "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

追加内容如下:

  <property>

    <name>hive.server2.thrift.bind.host</name>

    <value>hadoop01</value>

  </property>

  <property>

    <name>hive.server2.thrift.port</name>

    <value>10000</value>

  </property>

重启hiveserver2:

nohup hive --service hiveserver2 > hiveserver2.log 2>&1 &

配置HPL/SQL与Hive的连接:

vi ./hplsql-site.xml

如何使用hive存储过程

使用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;

OK

7       yy

3       cc

2       bb

创建脚本hp.sql

create function hello(text string)

returnS string

BEGIN

RETRUEN 'Hello,' || text || '!';

END;

FOR item IN(

SELECT id,name FROM qf24.u5 limit 3

)

loop

        println item.id || '|' || item.name || '|' || hello(item.name);

end loop;

测试:

[root@hadoop01 hplsql-0.3.31]# ./hplsql -f /home/hivedata/hp.sql

7|yy|Hello,yy!

3|cc|Hello,cc!

2|bb|Hello,bb!

创建存储过程的格式:

use database;

create procedure

begin

......

end;

调用存储过程:

include path/sp name

call sp name;

案例:

创建存储过程:

use qf24;

create procedure select_u5()

begin

select * 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存储过程”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何使用hive存储过程

本文链接: https://lsjlt.com/news/228439.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用hive存储过程
    这篇文章给大家分享的是有关如何使用hive存储过程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。hive存储过程简介1.x版本的hive中没有提供类似存储过程的功能,使用Hive做数据开发时候,一般是将一段一段的...
    99+
    2023-06-02
  • hive存储过程怎么用
    这篇文章主要介绍了hive存储过程怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。hive存储过程简介x版本的hive中没有提供类似存储过程的功能,使用Hive做数据开发...
    99+
    2023-06-02
  • Hive 如何方便地实现存储过程?
    更不方便的是,HPL/SQL 缺乏 JDBC 接口,无法方便地嵌入 JAVA 程序,只能在 JAVA 中调用命令行执行 HPL/SQL,再由 HPL/SQL 实施计算并将结果回写 Hive 临时表,最后 JAVA 通过 Hive 的 JDB...
    99+
    2020-10-07
    Hive 如何方便地实现存储过程?
  • oracle如何使用存储过程
    存储过程是一组可存储在数据库中的 sql 语句,可作为独立单元重复调用。它们可以接受参数(in、out、inout),并提供代码重用、安全性、性能和模块化的优势。示例:创建存储过程 ca...
    99+
    2024-06-13
    oracle 敏感数据
  • Mysql存储过程有什么作用?如何使用存储过程?
    Mysql自5.0起就支持存储过程,存储过程通俗的讲就是在一段封装过的SQL,但不仅仅只有SQL那么简单,通常还会有变量、条件判断、循环体,游标等。存储过程的作用在很多场景中,需要将多个表的数据处理,来产生...
    99+
    2024-04-02
  • oracle中如何使用存储过程
    这期内容当中小编将会给大家带来有关oracle中如何使用存储过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1.基本结构 CREATE OR REPLAC&...
    99+
    2024-04-02
  • oracle中存储过程如何使用
    今天就跟大家聊聊有关oracle中存储过程如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一. 使用for循环游标:遍历所有职位为经理的雇员1...
    99+
    2024-04-02
  • MySQL中如何使用存储过程
    这篇文章将为大家详细讲解有关MySQL中如何使用存储过程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用CallableStatemen...
    99+
    2024-04-02
  • php+mysql如何使用存储过程
    这篇文章主要介绍“php+mysql如何使用存储过程”,在日常操作中,相信很多人在php+mysql如何使用存储过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php+my...
    99+
    2023-04-19
    mysql php
  • 如何在mysql中使用存储过程
    如何在mysql中使用存储过程?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中...
    99+
    2024-04-02
  • MySql中如何使用存储过程参数
    MySql中如何使用存储过程参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。存储过程 in参数 的使用IN参数只用来向过程传...
    99+
    2024-04-02
  • SQLServer存储过程中事务如何使用
    SQLServer存储过程中事务如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体代码如下create pr...
    99+
    2024-04-02
  • 如何使用mysql存储过程中的if
    这篇文章主要介绍了如何使用mysql存储过程中的if,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在mysql...
    99+
    2024-04-02
  • MySQL存储过程的参数如何使用
    这篇文章主要介绍“MySQL存储过程的参数如何使用”,在日常操作中,相信很多人在MySQL存储过程的参数如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL存储过...
    99+
    2024-04-02
  • 如何在 PHP 中使用 MySQL 存储过程?
    要在 php 中使用 mysql 存储过程:使用 pdo 或 mysqli 扩展连接到 mysql 数据库。准备调用存储过程的语句。执行存储过程。处理结果集(如果存储过程返回结果)。关闭...
    99+
    2024-05-11
    mysql php
  • ado如何调用存储过程
    小编给大家分享一下ado如何调用存储过程,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!你可以在安装ADO调用存储过程中。但它的功能没有Oracle或Microsoft那么多。而且,当然,Data Direct有一个本地的d...
    99+
    2023-06-17
  • LinQ如何调用存储过程
    这篇文章主要介绍了LinQ如何调用存储过程,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。下面我们来看看LinQ在分页和LinQ调用存储过程上的一些基本操作,当然将要举例的存储...
    99+
    2023-06-17
  • mysql如何调用存储过程
    在MySQL中调用存储过程可以使用CALL语句。语法如下:```CALL procedure_name([parameter1, parameter2, ...]);```其中,procedure_name是存储过程的名称,parame...
    99+
    2023-08-11
    mysql
  • oracle如何调用存储过程
    要调用Oracle存储过程,可以按照以下步骤进行操作:1. 使用Oracle SQL Developer或其他数据库客户端连接到Or...
    99+
    2023-08-22
    oracle
  • MyBatis如何调用存储过程与存储函数
    目录1、MyBatis调用存储过程2、MyBatis调用存储函数1、MyBatis调用存储过程 MyBatis支持使用存储过程的配置。当使用存储过程时,需要设置一个参数“mode”,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作