Hive的hql命令的四种执行方式
- CLI 方式直接执行
- 作为字符串通过shell调用
hive –e
执行 - 通过shell调用
hive –f
或hive –i
执行执行 - 作为独立文件,通过shell调用
hplsql -f
方式一:CLI 方式直接执行
-
在终端直接输入
hive
进入CLI (客户端) -
然后直接执行了例如:
create database test; -- 创建数据库test use test; -- 使用test数据库 exit; -- 退出客户端
方式二:作为字符串通过shell调用hive –e执行
-
编写脚本
test.sh
-
写入内容: 查找
test
库中的student
表的所有内容#!/bin/bash hive -e "select * from test.student"
-
加上可执行权限
chmod +x test.sh
-
运行./test.sh (也可以用绝对路径)
不加可执行权限可以用
bash test.sh
命令运行
方式三:通过shell调用 hive –f或hive –i执行执行
hive -f
通常用于执行包含 Hive 查询语句的脚本文件,而 hive -i
可能用于在启动 Hive 会话之前执行一些初始化脚本。
-
将hql语句写入文件(将hql语句保存为独立文件,后缀名不限制,可以用.q或者.hql作为标识:)
-
hive -f
执行文件hive -f mytest.hql
-
执行结果
-
这个文件在cli模式下,用source命令执行,如:source ./mytest.hql
方式四:通过shell调用hplsql -f
-
示例代码放入文件test.hql
-- 创建存储过程 set_message,接受一个输入参数 arg CREATE PROCEDURE set_message(IN arg STRING) BEGIN -- 在存储过程内部设置一个变量 result,包含固定的欢迎消息 SET result = 'Hello, leaf-domain的大数据田地!'; -- 打印输入参数 arg PRINT arg; -- 打印组合的消息,包括存储过程内部变量 result 和输入参数 arg PRINT result || ', ' || arg; END; -- 打印初始欢迎消息 PRINT 'Hello, leaf-domain! at beginning .. '; -- 调用存储过程 set_message,传递参数 ' by CALL ..' CALL set_message(' by CALL ..');
-
执行
hplsql -f xxx.hql
-
执行结果