中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive存儲過程怎么用

發布時間:2021-12-10 14:22:54 來源:億速云 閱讀:322 作者:小新 欄目:大數據

這篇文章主要介紹了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中很多之前比較難實現的功能,現在可以很方便的實現,比如自定義變量、基于一個結果集的游標、循環等等。

2、hplsql安裝和存儲過程案例

下載:

官網下載地址:自行下載哈,不附鏈接了

0.3.31版本下載地址:自行下載哈,不附鏈接了

安裝hplsql:

[root@hadoop01 home]# tar -zxvf /home/hplsql-0.3.31.tar.gz -C /usr/local/

配置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;"

1

2

3

4

5

6

7

8

9

10

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存儲過程怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠安县| 通渭县| 永平县| 沂南县| 秦安县| 东丰县| 宜良县| 綦江县| 内黄县| 三明市| 海伦市| 双江| 日喀则市| 行唐县| 沅陵县| 邢台县| 宜宾县| 浙江省| 宁陕县| 鄄城县| 黎平县| 武乡县| 三门峡市| 镇远县| 突泉县| 荆州市| 乡城县| 邯郸市| 开封市| 丹凤县| 泽普县| 武邑县| 崇明县| 莱西市| 禹州市| 镇平县| 平湖市| 介休市| 西乡县| 昭平县| 常州市|