hive的概述和数据类型
程序员文章站
2022-07-04 23:28:10
一、Hive概述 1.Hive简介 Hive数据仓库软件有助于使用SQL读取、编写和管理驻留在分布式存储中的大型数据集。提供了命令行工具和JDBC驱动程序以将用户连接到Hive。 Hive可以将SQL语句自动转化为Mapreduce程序,节省了手写框架的困难。 2.Hive优缺点 优点:1)操作接口 ......
一、hive概述
1.hive简介
hive数据仓库软件有助于使用sql读取、编写和管理驻留在分布式存储中的大型数据集。提供了命令行工具和jdbc驱动程序以将用户连接到hive。
hive可以将sql语句自动转化为mapreduce程序,节省了手写框架的困难。
2.hive优缺点
优点:1)操作接口采用了sql,避免了首先mr程序,简化开发,降低学习成本;
2)hive依赖于hdfs做存储,是hdfs上的工具;
3)hive虽然使用sql,但是他能处理大规模的数据;
4)hive支持自定义函数。
缺点:1)hive执行延迟较高,大多适用于实时性不高的场景或用于处理历史数据;
2)hive的sql表达能力有限,有些复杂场景还需要mr程序;
3)hive效率低,优化较难。
二、hive架构
hive提供了一下了接口:hive shell、jdbc/odbc
hive的工作流程:
1.客户端可以通过多种接口来使用hvie,比如cli(命令行)、jdbc(java);
2.比如使用命令行select count(*) from user调用sql
客户端回去meta元数据中调用mysql的数据(hive默认数据库是derby,我们可以修改指定为mysql);
3.从meta获取数据库数据后,命令行和数据一次传入sql parser解析器、physical编译器、query优化器、execution执行器;
4.最后对生成的mr程序进行运算,返回结果。
三、hive中的数据类型
java数据类型 | hive数据类型 | 类型长度 |
byte | tinyint | 1byte |
short | smallint | 2byte |
int | int | 4byte |
long | bigint | 8byte |
float | float | 单精度浮点数 |
double | double | 双精度浮点数 |
string | string | 字符串 |
timestamp | 时间类型 | |
binary | 字节数组 |