Hive存儲過程實現-hpsql


1. 什么是hpsql

    目前版本的hive中沒有提供類似存儲過程的功能,使用Hive做數據開發時候,一般是將一段一段的HQL語句封裝在Shell或者其他腳本中,然后以命令行

的方式調用,完成一個業務或者一張報表的統計分析。好消息是,現在已經有了Hive存儲過程的解決方案(HPL/SQL –Procedural SQL on hadoop),並

且在未來的Hive的版本(2.0)中,會將該模塊集成進來。該解決方案不僅支持Hive,還支持在SparkSQL,其他NoSQL,甚至是RDBMS中使用類似於

Oracle PL/SQL的功能,這將極大的方便數據開發者的工作,Hive中很多之前比較難實現的功能,現在可以很方便的實現,比如自定義變量、基於一個結果集的游標、循環等等。

 

2. 安裝配置hpsql

2.1 下載軟件

可以從官網 http://www.hplsql.org/download下載最新版本安裝包,並解壓

 

也可以從我的雲盤下載 <hplsql-0.3.17.tar.gz>  鏈接是:https://pan.baidu.com/s/1i5mTBEH 密碼是:xbf

2.2 安裝配置hpsql

mkdir /opt/hpsql

tar -zxf  hplsql-0.3.17.tar.gz -C /opt/hpsql

2.2.1 進入hplsql安裝目錄,配置 HADOOP_CLASSPATH

vi hplsql

 2.2.2 進入hive安裝目錄,配置和啟動Hive的thrift服務HiveServer2

啟動HiveServer2:

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

 

2.2.3 配置HPL/SQL與Hive的連接

vi hplsql-site.xml

 2.3 使用hplsql執行HPL/SQL語句

2.3.1 使用-e 命令在命令行窗口直接運行

2.3.2 使用-f 命令運行腳本

創建測試表people

創建測試腳本

執行語句

 2.3.3 存儲過程調用

第一步,按如下格式創建存儲過程

use database;

create procedure

begin

......

end;

第二步,按如下方式調用存儲過程

include path/sp name

call sp name;

 

示例如下:

 

此處省略邏輯部分......

創建完成以后,調用運行,查看執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM