好程式設計師大資料培訓分享之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 中很多之前比較難實現的功能,現在可以很方便的實現,比如自定義變數、基於一個結果集的遊標、迴圈等等。
2、hplsql安裝和儲存過程案例
下載:
官網下載地址:
0.3.31版本下載地址:s/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
使用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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2694321/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享之hive常見自定義函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享MySQL資料庫儲存引擎簡介程式設計師大資料MySql資料庫儲存引擎
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料培訓分享MySQL8.0新特性程式設計師大資料MySql
- 好程式設計師大資料培訓分享Hive的靜態分割槽與動態分割槽程式設計師大資料Hive
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師Java培訓分享Java類載入的過程概述程式設計師Java
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓之Hadoop常見問題程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享怎樣進行大資料入門學習程式設計師大資料
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射