【无标题】

【无标题】,第1张

【无标题】 hive

Hive是基于Hadoop的应用程序,受限于Hadoop 的设计,Hive不能提供完整的数据库功能。最大的限制就是Hive不支持行级别的更新、插入或者删除 *** 作。同时,因为MapReduce任务的启动过程需要消耗较长的时间,所有Hive查询延迟比较严重。传统数据库中在秒级别可以完成的查询,在Hive中,即使数据集相对较小,往往也需要执行更长的时间。最后需要说明的是,Hive不支持事务。
在这里插入图片描述
Hive中附带的客户端有三种:CLI(命令行客户端)、HWI(网页客户端)和Thrift Server(编程客户端)。

(1)查看Hadoop版本号,命令如下:

hadoop version

(2)启动Hadoop,命令如下:

 - 启动HDFS:start-dfs.sh
 - 启动Yarn:start-yarn.sh
 - 检查Hadoop进程:jps
Hive中的数据库

(1)创建数据库

CREATE DATAbase school;
CREATE DATAbase 数据库名称;

(2)查看Hive中所包含的数据库

SHOW DATAbaseS;

(3)切换数据库

USE school;
USE 数据库名字;

(4)删除数据库

DROp DATAbase IF EXISTS school CASCADE;
DROP DATAbase IF EXISTS 数据库名 CASCADE;
数据类型长度TINYINT1byte有符号整数SMALINT2byte有符号整数INT4byte有符号整数BIGINT8byte有符号整数BOOLEAN布尔类型,true或者falseFLOAT单精度浮点数DOUBLE双精度浮点数STRING字符串TIMESTAMP日期,时间戳或者字符串ARRAY一组有序字段,类型必须相同MAP一组无序的键值对STRUCT一组命名的字段,字段类型可以不同 分隔符 分隔符描述n行分隔符^A列分隔符^BARRAY、MAP、STRUCT中元素之间的分隔符^CMAP中KEY和VALUE之间的分隔符 装载数据

– 默认导入的是HDFS数据,导入本地数据需要添加LOCAL关键字
–默认导入的是执行追加 *** 作,如果需要执行覆盖 *** 作,需要添加OVERWRITE关键字

外部表

–内部表控制着数据的生命周期,当内部表删除的时候,目录和其中的文件也会被删除
–如果需要和其他系统共享数据,可以创建外部表
–EXTERNAL外部表的关键字,外部表不会在school.db目录下创建子目录
–LOCATION 设置外部表数据文件的位置,外部表不需要导入数据
–LOCATION需要指定为数据文件所在的目录,会把目录中的所有文件加载到表

--内部表:管理数据,创建目录,剪切文件,随着表的删除,表结构.目录和数据文件都删除
--外部表:共享文件,不创建目录,不 *** 作文件,随着表的删除,只删除表结构,不删除数据文件
--在查询 *** 作上,内部表和外部表没有任何区别
分区表

–分区字段也是表中的列,叫做虚拟列(虚拟字段)
–因为他们的值不在数据文件中,需要在导入数据的时候手动添加

LOAD DATA INPATH '/usr/hive/student/student_cs_a1.txt' INTO TABLE student PARTITION (college='cs',clazz='a1');--hdfs上面导入
LOAD DATA INPATH '/usr/hive/student/student_cs_a2.txt' INTO TABLE student PARTITION (college='cs',clazz='a2');
LOAD DATA INPATH '/usr/hive/student/student_ai_b1.txt' INTO TABLE student PARTITION (college='ai',clazz='b1');
聚合函数

常用的Hive的内置聚合函数

返回值类型函数BIGINTcount(*)DOUBLEsum(col)DOUBLEavg(col)DOUBLEmin(col)DOUBLEmax(col)

查询学生的总人数

SELECT COUNT(*) FROM student;

查询学生的平均年龄:

SELECt AVG(age) FROM student;

查询学生的最大年龄:

SELECt MAX(age) FROM student;

查询学生的最小年龄:

SELECt MIN(age) FROM student;
排序

查询所有学生信息并按照年龄升序排列

SELECt * FROM student ORDER BY age;
SELECt * FROM student ORDER BY age ASC;

查询所有学生信息并按照年龄降序排列

SELECt * FROM student ORDER BY age DESC;

我们分别使用ORDER BY和SORT BY按照成绩降序排列:

SELECt * FROM score ORDER BY score DESC;
SELECt * FROM score SORT BY score DESC;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5665781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存