
回复
【本文正在参加2023年第一期优质创作者激励计划】
hive是一个开源的用于大数据分析和统计的数据库工具,它的存储基于HDFS,计算基于MapReduce或Spark,可以将结构化数据映射成表,并提供类SQL查询功能。
当创建表的时候,需要指定HDFS文件路径,表和其文件路径会保存到MetaStore,从而建立表和数据的映射关系。当数据加载如表时,根据映射获取到对应的HDFS路径,将数据导入。
用户输入SQL后,hive会将其翻译成MapReduce或者Spark任务,提交到Yarn上面执行,执行成功将返回结果。
*hive默认将元数据存储在derby数据库中,但其仅支持单线程操作,若有一个用户在操作,其他用户则无法使用,造成效率不高;
而且当在切换目录后,重新进入Hive会找不到原来已经创建的数据库和表,
因此一般用MySQL存储元数据。
可能有些朋友会认为,hive是数据库,因为它提供了类SQL查询功能。但其实除了这一点和数据库相似以外,其它的根本就没有多少共性。
*hive在0.14以后的版本支持事务,前提是文件格式为 orc 格式,同时必须分桶,还必须显式声明 transactional=true
数字类
类型 | 长度 |
---|---|
TINYINT | 1-byte |
SMALLINT | 2-byte |
INT/INTEGER | 4-byte |
BIGINT | 8-byte |
FLOAT | 4-byte |
DOUBLE | 8-byte |
DECIMAL | - |
日期类
类型 | 版本 |
---|---|
TIMESTAMP | 0.8.0以后 |
DATE | 0.12.0以后 |
INTERVAL | 1.2.0以后 |
字符类
类型 | 版本 |
---|---|
STRING | - |
VARCHAR | 0.12.0以后 |
CHAR | 0.13.0以后 |
Misc类
类型 | 版本 |
---|---|
BOOLEAN | - |
BINARY | 0.8.0以后 |
复合类
类型 | 版本 | 备注 |
---|---|---|
ARRAYS | 0.14.以后 | ARRAY<data_type> |
MAPS | 0.14.以后 | MAP<primitive_type, data_type> |
STRUCTS | - | STRUCT<col_name : data_type [COMMENT col_comment], …> |
UNION | 0.7.0以后 | UNIONTYPE<data_type, data_type, …> |
本文从hive的特点、架构及运行机制开始,并将hive与数据库做对比,简单介绍了hive,同时对hive的数据类型做一个简单的介绍。
如果觉得写得还不错,麻烦点个小小的赞支持一下作者。
转载请注明出处【大数据的奇妙冒险】