hive hql文档_Hive存储过程HQL/SQL(一)–hplsql命令行

本文介绍了如何使用HPLSQL工具执行Hive的HQL/SQL查询和存储过程。通过命令行选项如`-d`、`-e`、`-f`、`-trace`和`-main`,演示了变量替换、执行单个HQL语句、运行SQL脚本、打印调试信息和调用存储过程的方法。
摘要由CSDN通过智能技术生成

关键字:Hive存储过程、HQL/SQL、hplsql命令行、PL/HQL Command Line

PL/HQL主要是通过命令行工具来执行一个SQL查询语句或者是一个SQL脚本。

进入hplsql-0.3.11,执行./ hplsql即可显示命令行的用法:

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql

usage: hplsql

-d,--define Variable subsitution e.g. -d A=B or --define A=B

-e HPL/SQL from command line

-f HPL/SQL from a file

-H,--help Print help information

--hiveconf Value for given property

--hivevar Variable subsitution e.g. --hivevar A=B

-main Entry point (procedure or function name)

-offline,--offline Offline mode - skip SQL execution

-trace,--trace Print debug information

-version,--version Print HPL/SQL version

1.1 -d,–define

-d,–define 选项可以指定变量名及变量值,它和–hiveconf 以及–hivevar 的效果等价。

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -e "PRINT a || ', ' || b" -d a=Hello -d b=lxw1234.com

Hello, lxw1234.com

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -e "PRINT a || ', ' || b" --hiveconf a=Hello --hiveconf b=lxw1234.com

Hello, lxw1234.com

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -e "PRINT a || ', ' || b" --hivevar a=Hello --hivevar b=lxw1234.com

Hello, lxw1234.com

1.2 -e

同hive –e,用于执行HQL语句;

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -e "SELECT * FROM liuxiaowen.dual"

Open connection: jdbc:hive2://172.16.212.17:10000 (109 ms)

Starting query

Query executed successfully (182 ms)

X

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -e "PRINT 'Hello, lxw1234.com'"

Hello, lxw1234.com

1.3 –f

同hive –f,执行一个文件中保存的HQL语句。

[liuxiaowen@dev hplsql-0.3.11]$ cat lxw1234.sql

PRINT 'Hello, lxw1234.com';

SELECT * FROM liuxiaowen.dual;

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -f lxw1234.sql

Hello, lxw1234.com

Open connection: jdbc:hive2://172.16.212.17:10000 (109 ms)

Starting query

Query executed successfully (165 ms)

X

1.4 -trace,–trace

打印debug信息。

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -e "PRINT 'Hello, lxw1234.com'" -trace

Configuration file: file:/home/liuxiaowen/hplsql-0.3.11/hplsql-site.xml

Parser tree: (program (block (stmt (print_stmt PRINT (expr (expr_atom (string 'Hello, lxw1234.com')))))))

Ln:1 PRINT

Hello, lxw1234.com

1.5 –main

-main

只执行指定函数或存储过程内的语句。

比如:lxw1234.sql文件内容如下:

[liuxiaowen@dev hplsql-0.3.11]$ cat lxw1234.sql

CREATE PROCEDURE set_message(IN arg STRING)

BEGIN

SET result = 'Hello, lxw的大数据田地!';

PRINT result || ' ' || arg;

END;

PRINT 'Hello, lxw1234.com! at beginning .. ';

CALL set_message(' by CALL ..');

SELECT * FROM liuxiaowen.dual;

1.创建存储过程set_message;

2.打印’Hello, lxw1234.com! at beginning .. ‘;

3.调用存储过程,并传入参数;

4.查询Hive表liuxiaowen.dual;

看看使用-main选项和不使用的执行结果:

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -f lxw1234.sql

Hello, lxw1234.com! at beginning ..

Hello, lxw的大数据田地! by CALL ..

Open connection: jdbc:hive2://172.16.212.17:10000 (125 ms)

Starting query

Query executed successfully (166 ms)

X

[liuxiaowen@dev hplsql-0.3.11]$ ./hplsql -f lxw1234.sql -main set_message

Hello, lxw的大数据田地!

如果不指定-main选项,那么则将lxw1234.sql中的语句从头到尾执行完。

如果指定了-main选项,则会执行指定存储过程内的语句。

-H,–help为打印帮助信息。-version,–version 打印HPL/SQL版本。

-offline,–offline选项的功能还未搞明白。

更多关于Hive中使用存储过程的文章,阅读《Hive存储过程系列文章》。

您可以关注 lxw的大数据田地 ,或者 加入邮件列表 ,随时接收博客更新的通知邮件。

如果觉得本博客对您有帮助,请 赞助作者 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值