Hive个人总结

什么是Hive

Hive:由Facebook开源用于解决海量结构化日志的数据统计。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
本质是:将HQL转化成MapReduce程序。
Hive个人总结
1)Hive处理的数据存储在HDFS
2)Hive分析数据底层的实现是MapReduce
3)执行程序运行在Yarn上

Hive的优缺点

  • 优点
  1. 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
  2. 避免了去写MapReduce,减少开发人员的学习成本。
  3. Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。
  4. Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
  5. Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
  • 缺点
    1.Hive的HQL表达能力有限
    (1)迭代式算法无法表达
    (2)数据挖掘方面不擅长
    2.Hive的效率比较低
    (1)Hive自动生成的MapReduce作业,通常情况下不够智能化
    (2)Hive调优比较困难,粒度较粗

Hive架构原理

Hive个人总结
Hive个人总结

Hive 数据库
存储位置 HDFS 本地文件系统或块设备
数据更新 读多写少,不建议经常改写 可以经常对数据进行修改
索引 有限的索引功能,不建议使用 可以提供效率
执行引擎 Map Reduce 自己的引擎
数据规模 大规模 小规模
执行延迟 延迟高 数据规模小的时候,延迟低
可过展性 扩展性高 扩展能力弱

Hive数据类型

基本数据类型

Hive数据类型 Java数据类型 长度 例子
TINYINT byte 1byte有符号整数 20
SMALINT short 2byte有符号整数 20
INT int 4byte有符号整数 20
BIGINT long 8byte有符号整数 20
BOOLEAN boolean 布尔类型,true或者false TRUE FALSE
FLOAT float 单精度浮点数 3.14159
DOUBLE double 双精度浮点数 3.14159
STRING string 字符序列。可以指定字符集,可以使用单引号或者双引号 ‘TriumPhSK’ “TriumPhSK”
TIMESTAMP 时间类型,整数,浮点数或者字符串 1327882394(Unix新纪元秒)1327882394.123456789(Unix新纪元秒并跟随有纳米秒数)‘2019-06-06 16:18:58.123456789’(JDBC所兼容的Java.sql.Timestamp时间格式)
BINARY 字节数组

集合数据类型

数据类型 描述 语法示例
STRUCT 和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。 struct(‘John’,‘Doe’)
MAP MAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素. map(‘first’,‘Join’,’‘last’,‘Doe’)
ARRAY 数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用。 array(‘Join’,‘Doe’)

类型转化

1.隐式类型转换规则如下
(1)任何整数类型都可以隐式地转换为一个范围更广的类型,如TINYINT可以转换成INT,INT可以转换成BIGINT。
(2)所有整数类型、FLOAT和STRING类型都可以隐式地转换成DOUBLE。
(3)TINYINT、SMALLINT、INT都可以转换为FLOAT。
(4)BOOLEAN类型不可以转换为任何其它的类型。
2.可以使用CAST操作显示进行数据类型转换
例如CAST(‘1’ AS INT)将把字符串’1’ 转换成整数1;如果强制类型转换失败,如执行CAST(‘X’ AS INT),表达式返回空值 NULL。

上一篇:PP折叠滤芯和PP(熔喷)滤芯有什么区别?


下一篇:2021/10/11 q 标签,blockquote 标签,cite 标签