1. 准备sql文件
1.1 资源中心--创建文件
1.2 文件格式选择 sql, 文件内容 填要执行的sql内容
1.3 点击创建保存
2.shell调用.sql文件
2.1 拖拽一个shell 节点
2.2 编辑shell节点
hive -e:后面跟hivesql字符串
例如:hive -e "select * from student;"
传参举例:hive --hivevar monthid="201809" --database deafult -e 'select * from a1 where concat(year, month) = ${monthid} limit 10';
hive -f:执行脚本中sql语句
例如: hive -f /export/test.sql
传参举例:hive -hivevar dayid="2022-12-28" -hivevar endid="26" -f testvar.sql
说明:在运行hive命令时传入参数,使用-hivevar 和 -hiveconf 两种参数选项,来给此次的执行脚本传入参数
-hivevar : 传参数 ,专门提供给用户自定义变量。
-hiveconf : 传参数,包括了hive-site.xml中配置的hive全局变量。
举例:hive --hiveconf "mapred.job.queue.name=root.default" --hivevar monthid="201809" --database default -e 'select * from mydb where concat(year, month) = ${monthid} limit 10';
拓展1:shell中定义变量用双引号和单引号以及不用引号的区别
a:单引号:不管里面的是否有变量或者其他的表达式都是原样子输出
b:双引号:如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双引号中的变量名以及命令原样子输出
c:不使用引号:用于一些简单字符数字的定义与双引号类似
拓展2:shell变量的特点
a:shell变量没有数据类型的区分
b:Shell 把任何存储在变量中的值,皆视为以字符组成的“字符串”
c:若变量值中存在空格,必须用双引号" "把值包括进来
d:=号、等号两边不能存在空格
2.3 点击右下角确认添加 保存