hive的变量与属性

hive变量的命名空间

1、hivevar:是用户自定义的变量
2、hiveconfig:hive相关的配置属性
3、system:Java定义的配置属性
以上三个变量都是可读可写的
4、env:shell环境定义的环境变量,只可读

*hive变量是使用Java字符串的方式存储的,所以使用的类型就是string

在CIL中使用查询语句时,如果其中有变量,会先将变量替换成变量的值,再把查询语句提交给查询处理器

对变量的操作

一、hivevar
这些变量是不能跨会话的。
1、创建变量
①在直接在CLI用:
hive的变量与属性其中 hive --define key=value; 与 hive --hivevar key=value;是等价的。都是在hivevar变量空间中创建用户变量。

②在hive内创建变量:
hive的变量与属性也可以在hive内这样创建。其中set命令可以创建,修改,查看变量。

2、修改变量
①使用set修改
hive的变量与属性②外部修改
hive的变量与属性
其中,命名空间前缀是可选的
hive的变量与属性
二、hiveconf相关的
可以配置hive行为的所有属性
1、配置hive.cli.print.current.db属性,默认值为false,如果设置成true,则会在hive的命令提示符前打印出当前的数据库名,默认是default。
hive的变量与属性2、定义成普通变量,使用和hivevar的一样
hive的变量与属性hive的变量与属性三、system和env
system的变量是Java定义的配置属性,env是shell环境定义的;它和env在使用时,前面必须加system:或env: 这和hivevar不同
hive的变量与属性可以清晰的看出,system是可读可写;而env是只可读的。

hive的变量与属性hive的变量与属性system和env变量用户都不能自定义。因为他们都不是用户定义的。

hive中的常用命令

1、hive -e “需要执行的语句”
hive的变量与属性可以将查询结果保存到一个文件中:这种方法会将输出重定到本地系统中,而不是在hdfs中了。
hive的变量与属性hive的变量与属性2、hive -e “需要执行的命令” | grep 属性名相关的信息
当记不清属性名时可以这样模糊查询
hive的变量与属性其中-S是开始静默模式,去除输出的而无关信息。