Hive实战

1.     Hive基础

解析器:把SQL映射成MapReduce作业

ThriftServer通信工具,支持跨语言跨平台

Hive工作原理:

Hive作为SQL的解释器,编译器,优化器,用于数值分析

Hive最小处理单元是操作符(作业)

1)  Hive把SQL解释成多个操作符,形成抽象语法树

2)  抽象语法树->查询块

3)  查询块->逻辑查询计划

4)  重写逻辑查询计划

5)  逻辑查询计划->物理查询计划(Job)

6)  选择最佳的策略(优化)

Hive的三种工作模式

Hive创建数据表:

加载文件到数据库:

Loaddata local inpath ‘/root/emp.txt’ into table t_temp;(文件中的每个字段的值以,分隔)(本地文件)

Loaddata inpath ‘/input/test.txt’ into table t_temp;(文件中的每个字段的值以,分隔)(HDFS文件,拷贝到指定目录)相同文件加载多次则会创建多个copy文件

创建分区表partition:

Loaddata local inpath ‘sxs.txt’ overwrite into table sxspartition(order_day=’2100-12-12’)所谓的分区表即创建名为order_day=2100-12-12的文件夹保存sxs.txt文件

Insertinto table teo select * from test 将select的查询结果插入到teo表

导出表中的数据到HDFS的指定目录中

Exporttable txt to ‘/input’;

Hive基本数据类型:

联表查询


Limit用于分页显示

Hive创建具有复合类型的表

指定数组项用_分隔

指定map项key:value表示

指定每个属性的分隔符

STOREAS file_format

输出格式

         v

创建外部表(EXTERNAL修饰),LOCATION指定表文件存放位置,DROP删除元数据,实际数据不会删除

 

1)  根据psn1表查询的字段创建表psn3

2)  查询相关字段的结果插入psn3表中

只会根据psn1表的结构创建表psn4

 

PARTITIONED BY (sex string) 指定分区表名,添加数据时需要指定分区名=分区值

psn5表中添加分区

psn6表删除分区

     

./hive–-service hiveserver2 启动hiveserver

./beeline检查是否能够连接到hive server

!connect jdbc:hive2://localhost:10000

利用hive进行数据分析时一般步骤:

1)  创建与源数据格式相对应的数据表

2)  导入源数据文件到数据表中

3)  执行SQL语句

Hive UDF和UDAF重点:http://p-x1984.iteye.com/blog/1156392

优化hive:

1)    优化SQL

2)    增加Reduce数量

Hive内置函数:

 

1.  数学函数

2.  收集函数

3. 类型转换函数

3.  日期函数

1.     条件函数

2.     字符函数

3.     内置的UDAF函数

4.     内置的UDTF函数

Hive自定义函数:

1)  UDF,一进一出

2)  UDAF,多进一出

3)  UDTF,一进多出

Hive优化:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值