✅作者简介:大家好,我是Philosophy7?让我们一起共同进步吧!🏆 📃个人主页:Philosophy7的csdn博客 🔥系列专栏:
✅作者简介:大家好,我是Philosophy7?让我们一起共同进步吧!🏆 📃个人主页:Philosophy7的csdn博客
🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞
hive: 由 Facebook 开源用于解决海量结构化日志的数据统计工具。
Hive 是基于 hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 sql 查询功能。
优点:
缺点:
Hive数据可区分为表数据和元数据,表数据我们都知道是表中的数据,而元数据是用来存储表的名字、列、表分区以及属性
Hive是基于Hadoop分布式文件存储的,它的数据存储在hdfs中。现在我们介绍Hive中常见的数据导入方式
#1.演示从本地装载数据到hive#1.1创建表create table student(id string, name string) row fORMat delimited fields terminated by '\t';#1.2加载本地的文件到hive load data local inpath '/root/student.txt' into table default.student; #default.test 数据库.表名 也可直接表名#2.演示加载HDFS文件到hive中#2.1 将文件上传到HDFS根目录dfs -put /root/student.txt /;#2.2加载HDFS上的数据load data inpath '/student.txt' into table test.student;#3.加载数据覆盖表中原有的数据#3.1上传文件到HDFS中dfs -put /root/student.txt /; #将文件装载到表下 文件就相当于windows中的剪切操作#3.2加载数据覆盖表中原有数据load data inpath '/student.txt' overwrite into table test.student;#4.查询表select * from student;
#通过查询语句向表中插入数据(insert)#1.1创建表create table student_par(id int,name String)row format delimited fields terminated by '\t';#1.2通过insert插入数据insert into table student_par values(1,'zhangsan'),(2,'lisi');
CLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)
元数据
元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、
表的类型(是否是外部表)、表的数据所在目录等
使用 HDFS 进行存储,使用 MapReduce 进行计算。
(1)解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第
三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL
语义是否有误。
(2)编译器(Physical Plan):将 AST 编译生成逻辑执行计划。
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来
说,就是 MR/Spark。
ORC的优势:
ORC文件格式是以二进制方式存储的,所以是不可直接读取的。
将HQL转换成MapReduce程序。
简单来说Hive就是一个查询引擎。当Hive接受到一条SQL语句会执行如下操作:
Hive展现的MapReduce任务设计到组件有:
Hive支持两种数据类型,一种原子数据类型、还有一种叫复杂数据类型。
原子数据类型
基本数据类型 类型 描述 示例 TINYINT 1字节有符合整数 1 SMALLINT 2字节有符号整数 1 INT 4字节有符号整数 1 BIGINT 8字节有符号整数 1 FLOAT 4字节单精度浮点数 1.0 DOUBLE 8字节双精度浮点数 1.0 BOOLEAN true/false true STRING 字符串 “hive”,‘hive’
Hive类型中的String数据类型类似于mysql中的VARCHAR。该类型是一个可变的字符串。
Hive支持数据类型转换,Hive是用Java编写的,所以数据类型转换规则遵循Java :
隐式转换 --> 小转大
强制转换 --> 大传小
Hive复杂数据类型
类型 描述 示例 ARRAY 有序的字段。字符类型必须相同 ARRAY(1,2) MAP 无序的键值对。建的类型必须是原子的,值可以是任何类型。 Map(‘a’,1,‘b’,2) STRUCT 一组命名的字段。字段类型可以不同 STRUCT(‘a’,1,1,0)
来源地址:https://blog.csdn.net/ChengXuTeng/article/details/124842026
--结束END--
本文标题: [Hive]一篇带你读懂Hive是什么
本文链接: https://www.lsjlt.com/news/440343.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0