栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【Hive基础】

【Hive基础】

Hive介绍

Hive是Hadoop生态系统中必不可少的一个工具。它是建立在Hadoop体系结构上的。SQL抽象是主流数据离线处理工具。Hive中数据库的概念本质上仅仅是表的一个目录或者命名空间。

Hive架构


*Hive中附带的客户端有三种:CLI(命令行客户端)、HWI(网页客户端)和Thrift Server(编程客户端)

*在客户端输入的所有命令和查询都会进入到Driver(驱动模块)进行解析、编译、优化和执行。
Driver包含SQL Parser、Physical Plan、Query Optimizer和Execution四个模块。

SQL Parser是解析器,用于将SQL语句转换为抽象语法树。
Physical Plan是编译器,用于将抽象语法树编译生成逻辑计划。
Query Optimizer是优化器,用于对逻辑执行计划进行优化。
Execution是执行器,用于把逻辑执行计划转换为可执行的MapReduce程序。*

Hive的安装

详细安装讲解:
https://blog.csdn.net/weixin_56948111/article/details/122014730

Hive中的数据库

如何创建一个数据库

CREATE DATAbase school;

避免抛出错误信息:

CREATE DATAbase IF NOT EXISTS school;

查看Hive中所包含的数据库:

SHOW DATAbaseS;

切换数据库:

USE school;

删除数据库:

DROp DATAbase IF EXISTS school CASCADE;

IF EXISTS子句是可选的,如果加了这个子句,就可以避免因数据库school不存在而抛出的警告信息
CASCADE关键字可以使Hive自行先删除数据库中的表,再删除数据库。

Hive中的表

分隔符

行分隔符 n
列分隔符 ^A

建表语句中STORED AS XXX子句用于设置文件类型。如果文件类型是TextFile,该子句可以省略。
建表语句中LINES TERMINATED BY ’ '子句用于指明行分隔符,如果行分隔符是n的话可以省略。
建表语句中用于指明列分隔符的子句都要放在ROW FORMAT DELIMITED这组关键字后。FIELDS TERMINATED BY ’ '这个子句用于指定列分隔符
.

建表语句

CREATE TABLE IF NOT EXISTS teacher;

增加上IF NOT EXISTS选项,若表已经存在了,Hive就会忽略掉后边的执行语句,而且不会有任何提示

装载数据

导入数据本质是一个剪切操作,默认导入的是hdfs数据,导入本地数据需要添加 local 关键字

默认导入是执行追加操作,如果需要执行覆盖操作,需要添加 overwrite 关键字

外部表,内部表 ,分区表

external 外部表的关键字,外部表不会在school.db,目录下创建子目录。
location 设置外部表数据文件的位置,外部表不需要导入数据。
外部表:共享数据,不创建目录,不操作目录,随着表的删除,只删除表结构,不删除数据文件。

内部表控制着数据的生命周期,当内部表删除的时候,目录和其中的文件也会删除
内部表:管理数据,创建目录,剪切文件,随着表的删除,表结构,目录和数据文件都删除

PARTITIonED BY子句用于设置分区字段,多个分区字段之间以逗号分隔。分区字段一旦创建就表现的和普通字段一样,可以应用于各种查询条件或结果。

查询语法
聚合函数

查询每个学院的学生年龄的总和,最大值,最小值,平均值
SELECT SUM(age),MAX(age),MIN(age),AVG(age) FROM student GROUP BY college;
SELECt SUM(age),MAX(age),MIN(age),AVG(age) FROM student GROUP BY clazz;

排序
order by,全局排序,只使用一个reduce.全局有序,但是比较慢
–默认升序(ASC),也可以指定降序(DESC)

查询所有学生信息并按照年龄升序排序
select * from studentwhere age>10order by age;

SORT BY 可以使用多个reduce,每个reduce 输出的数据有序,全局无序

select * from student sort by age;

子查询

子查询是指在一个完整的查询语句中,嵌套若干个不同功能的子查询,从而完成复杂查询的编写形式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号