Hive篇

一,定义

hive 是一种底层封装了Hadoop 的数据仓库处理工具

 二,介绍

hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉mapreduce的用户可以很方便地利用SQL语言查询、汇总和分析数据。而mapreduce开发人员可以把自己写的mapper和reducer作为插件来支持hive做更复杂的数据分析。它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。它还提供了一系列的工具进行数据提取转化加载,用来存储、查询和分析存储在Hadoop中的大规模数据集,并支持自定义的UDF、UDAF和UDTF,也可以实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性

 三,Hive的使用场景

hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。 

因此,hive 并不适合那些需要高实时性的应用,hive 将用户的hiveSQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。hive 并非为联机事务处理而设计,hive 并不提供实时的查询和基于行级的数据更新操作。hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。 

 四,架构图

 五,各组件的作用

(1)client接口;shell命令行。

(2)jdbc客户端;hive的Java实现。

(3)web接口;通过浏览器访问hive。

(4)元数据库;hive将元数据存储在数据库中(一般是MySql),元数据包括表的名字,列,分区和属性等。

(5)解释器:解释器的作用是将 HiveSQL 语句转换为抽象语法树(AST)。
(6)编译器:编译器是将语法树编译为逻辑执行计划。
(7)优化器:优化器是对逻辑执行计划进行优化。
(8)执行器:执行器是调用底层的运行框架执行逻辑执行计划。

(9)mapreduce;hive使用的计算框架。

(10)hdfs;表数据存储的地方。

六,hive常见数据类型

1,整数类型

int,integer,bigint

2,浮点型

float,double,decimal

 3,时间类型

timestamp,date,datetime

4,字符串类型

string,varchar,char

5,misc类型

boolean

6,集合类型

array<STRING>,map<STRING,STRING>

七,建表语句

 注意事项;

1,蓝色字体是建表语法的关键字,用于指定某些功能。

2,【】中括号的语法表示可选可不选。

3,|表示使用的时候,左右语法二选一。

4,建表语句中的语法顺序要和语法树中顺序保持一致。

翻译;

EXTERNAL;表示创建一个外部表

COMMENT;表示表的注释信息

PARTITIONED BY;分区

CLUSTERED BY;分桶

STORED AS file_format;文件的类型

LOCATION;表数据存储地址(hdfs的地址)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值