hive变量的命名空间
1、hivevar:是用户自定义的变量
2、hiveconfig:hive相关的配置属性
3、system:Java定义的配置属性
以上三个变量都是可读可写的
4、env:shell环境定义的环境变量,只可读
*hive变量是使用Java字符串的方式存储的,所以使用的类型就是string
在CIL中使用查询语句时,如果其中有变量,会先将变量替换成变量的值,再把查询语句提交给查询处理器
对变量的操作
一、hivevar
这些变量是不能跨会话的。
1、创建变量
①在直接在CLI用:
其中 hive --define key=value; 与 hive --hivevar key=value;是等价的。都是在hivevar变量空间中创建用户变量。
②在hive内创建变量:
也可以在hive内这样创建。其中set命令可以创建,修改,查看变量。
2、修改变量
①使用set修改
②外部修改

其中,命名空间前缀是可选的

二、hiveconf相关的
可以配置hive行为的所有属性
1、配置hive.cli.print.current.db属性,默认值为false,如果设置成true,则会在hive的命令提示符前打印出当前的数据库名,默认是default。
2、定义成普通变量,使用和hivevar的一样

三、system和env
system的变量是Java定义的配置属性,env是shell环境定义的;它和env在使用时,前面必须加system:或env: 这和hivevar不同
可以清晰的看出,system是可读可写;而env是只可读的。

system和env变量用户都不能自定义。因为他们都不是用户定义的。
hive中的常用命令
1、hive -e “需要执行的语句”
可以将查询结果保存到一个文件中:这种方法会将输出重定到本地系统中,而不是在hdfs中了。

2、hive -e “需要执行的命令” | grep 属性名相关的信息
当记不清属性名时可以这样模糊查询
其中-S是开始静默模式,去除输出的而无关信息。
本文介绍了Hive的变量命名空间,包括hivevar、hiveconfig、system和env,详细讲解了如何创建、修改变量,特别是hivevar的使用。此外,还提到了hiveconf配置属性的设定,以及system和env变量的特性。最后,分享了Hive中的常用命令,如执行语句、保存查询结果和属性名模糊查询。
1942

被折叠的 条评论
为什么被折叠?



