一.Hive库操作
1)创建一个数据库,数据库在HDFS的默认存储路径是/hive/warehouse
create database testdb;
2)创建一个数据库,并指定数据库存储的位置
create database if not exists bigdata30_test3 location '/bigdata30/luyunlongdb';
注:此时的bigdata30_test3数据库存储的位置是在/bigdata30目录下的luyunlongdb文件,所以说hdfs路径最后的文件名称不一定要和数据库的名称相同,只是表示一种映射关系
3)数据库的查看、切换等操作
show databases; //显示数据库 desc database testdb; //查看testdb数据库的详细信息 use testdb; //切换数据库
4)数据库的删除操作
drop database testdb; //删除数据库最简单的写法 drop database if exists testdb; //如果testdb数据库存在就删除 drop database if exists testdb cascade; //如果数据库不为空,使用cascade命令进行强制删除。
注:hive能不能查找数据能不能找到数据库和表,取决于mysql中有没有相对应的映射关系,如果有则能查到,如果没有则查不到
二.Hive的基本数据类型
类型 | Java数据类型 | 描述 |
TINYINT | byte | 8位有符号整型。取值范围:-128~127。 |
SMALLINT | short | 16位有符号整型。取值范围:-32768~32767。 |
INT | int | 32位有符号整型。取值范围:-2 31 ~2 31 -1。 |
BIGINT | long | 64位有符号整型。取值范围:-2 63 +1~2 63 -1。 |
BINARY | 二进制数据类型,目前长度限制为8MB。 | |
FLOAT | float | 32位二进制浮点型。 |
DOUBLE | double | 64位二进制浮点型。 |
DECIMAL(precision,scale) | 10进制精确数字类型。precision:表示最多可以表示多少位的数字。取值范围:1 | |
VARCHAR(n) | 变长字符类型,n为长度。取值范围:1~65535。 | |
CHAR(n) | 固定长度字符类型,n为长度。最大取值255。长度不足则会填充空格,但空格不参与比较。 | |
STRING | string | 字符串类型,目前长度限制为8MB。 |
DATE | 日期类型,格式为yyyy-mm-dd。取值范围:0000-01-01~9999-12-31。 | |
DATETIME | 日期时间类型。取值范围:0000-01-01 00:00:00.000~9999-12-31 23.59:59.999,精确到毫秒。 | |
TIMESTAMP | 与时区无关的时间戳类型。取值范围:0000-01-01 00:00:00.000000000~9999-12-31 23.59:59.999999999,精确到纳秒。说明 对于部分时区相关的函数,例如cast( as string),要求TIMESTAMP按照与当前时区相符的方式来展现。 | |
BOOLEAN | boolean | BOOLEAN类型。取值:True、False。 |
三.Hive表操作
1)hive的存储格式:
TEXTFILE //正常的文本格式,是Hive默认的存储格式
SEQUENCEFILE
AVRO
RCFILE //进行简单的压缩
ORCFILE //压缩存储,空间占比最小、耗时最小
PARQUET
2)切分数据,插入数据
create table students2 ( id bigint, name string, age int, gender string, clazz string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; // 必选,指定列分隔符
注:ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 这句是指明每行数据切分的分隔符,如:盛宇豪,18,男 其中 盛宇豪 属于第一个字段的数据,18属于第二个字段数据,男属于第三个