hive学习小记1

1、变量和属性

hive中有四个命名空间来存储变量和属性。

hivevar  ->  用户自定义变量
hiveconf   ->  hive相关配置属性
system  -> java程序中的配置属性
env  -> shell环境中的变量
设置变量
hive>set hivevar:test=aaa;
读取变量
hive>set hivevar:foo=bar;
hivecar:test=bar

或者

hive>set foo;
test=bar
变量引用
hive> create table test (i int,${foo} string );
hive> describe test;
OK
i                   	int
bar                 	string
Time taken: 0.19 seconds, Fetched: 2 row(s)
读取其他命名空间变量
hive> set system:user.name;
hive> set env:HOME;

hivevar和hiveconf在读取变量的时候不需要指定命名空间
而system和env在读取变量的时候一定要指定命名空间

2、HIVE中“一次使用”命令

我们可以通过终端交互的方式执行命令,例如

hive>

也可以采用一次使用命令,执行完后立刻退出;例如

hive -e "select * from test";

加个-e参数即可

3、HIVE从文件中执行命令

文件 test.hql内容如下

select * from test;
set env:HOME;

执行

hive -f /目录/test.hql

4、hiverc文件

hive命令启动的时候,会自动执行$HOME目录下.hiverc文件。
如果一些命令频繁执行,可放在这个文件里。

5、基础数据类型

hive支持大多数据库中存在的数据类型

数据类型说明
TININT1byte整数
SMALINT2byte整数
INT4byte整数
BIGINT8byte整数
BOOLEAN布尔类型
FOLAT单精度浮点数
DOUBLE双精度浮点数
STRING字符串
TIMESTAMP整数,浮点数或字符串
BINARY字节数据

hive中的string是没有长度限制的,跟普通的关系型数据库不同。

6、集合数据类型

hive支持struct,map,array三种数据类型

数据类型说明
struct跟c语言里面查不多,也是也算是对象,可以通过 字段名.属性名 来获取值
map键值对类型,可以通过字段名[‘属性名’]来获取值
array数组,可以通过字段名[下标]来获取值

这些类型在普通的关系型数据库中不支持,可能需要进行多表关联。但是对于大数据系统来说,更加注重的是吞吐量,一堆数据放在一块,从头开始寻址,减少磁盘的寻址次数。

来建个表试试

hive> create table person (
    > name string,
    > height float,
    > child array<string>,
    > score map<string,float>,
    > home struct<city:string,state:string>);

7、文本文件数据编码

分隔符说明
\n换行
^A字段间分割
^B数组元素间分割、struct间分割,键值对间分割
^C键和值之间分割

我们利用这种编码格式制造文件,文件可以被hive进行解析。
这个要注意键盘上能找到^和A但直接输入时不行的,vim文件时,需要:set list开启看隐藏字符模式,然后ctrl+v 然后ctrl+a 这种 才能打出字段间分割。

8、读时模式

传统数据库在插入或更新数据时,会对数据格式进行校验,这种称为写时模式。而hive则时读时模式,存入的时候不做校验,而是在数据读取的时候做修正,例如字段不存在或者类型错误,会展示null。

ps:本文参考书籍《hive编程指南》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值