Hive查询语句——HiveQL学习
Hive仓库的安装Hadoop生态系统—数据仓库Hive的安装
一、Hive内置数据类型
- 基本数据类型
数据类型 | 描述 | Java中的类型 |
---|---|---|
TINYINT | 1字节有符号整数,-128~127 | byte |
SMALLINT | 2字节有符号整数,-32768~32767 | short |
INT | 4字节有符号整数,-231~231-1 | ubt |
BIGINT | 8字节有符号整数,-263~263-1 | long |
FLOAT | 4字节单精度浮点数 | float |
DOUBLE | 8字节双精度浮点数 | double |
DOUBLEE PRECISION | Double的别名,从Hive 2.2.0 开始提供 | double |
DECIMAL | 任意精度的带符号小数 | |
NUMERIC | 同样是DECIMAL,从Hive 3.0开始 | |
TIMESTAMP | 精确到纳秒的时间戳 | |
DATE | 以年/月/日形式描述的日期 | Date |
INTERVAL | 表示时间间隔 | |
STRING | 字符串,最多可以存储2GB | |
VARCHAR | 同STRING,字符串长度不固定 | |
CHAR | 固定长度的字符串 | |
BOOLEAN | 用来存储布尔类型值,TRUE/FALSE | |
BINARY | 字节数组,存储变长的二进制数据 |
- 复杂数据类型
数据类型 | 描述 | 对应Java类型 |
---|---|---|
ARRAY | 有序字段,类型必须相同 | Array |
MAP | 键值对,键和值的类型必须各自相同 | Map |
STRUCT | 字段类型可以不同的数据 | 无 |
复杂类弄数据示例代码:
CREATE TABLE complexTable(
col1 ARRAY<INT>,
col2 Map<INT,STRING>,
col3 STRUCT<a:STRING,b:INT,c:DOUBLE>
)
二、HiveQL学习
与SQL类似,Hive也支持以下三种操作
- DDL:数据定义语句,包括CREATE、ALERT、SHOW、DESCRIBE、DROP
- DML:数据操作语句,包括LOAD DATA、INSERT。Hive中数据不支持修改,故没有UPDATE操作
- QUERY:数据查询语句,主要是SELECT
2.1 数据库操作
-- 创建数据库
create database students;
-- 显示数据库
show databases;
-- 查看数据库详情
desc databases;
-- 切换数据库
use students;
-- 修改数据库
alert database sutdents set dbproperties (property_name=property_value,...)
-- 删除数据库
drop database students;
2.2 表操作
- 创建表
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type) [COMMOENT col_comment],...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment],...)]
[CLUSTERED BY (col_name,col_name,...)]
[SORTED BY (col_name [ASC|DESC],...)]
[INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
- 复制表(根据已有的视图或者表创建新的表,只复制表结构)
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] table_name
LIKE existing_table_or_view_name [LOCATION hdfs_path]
字段 | 说明 |
---|---|
TEMPORARY | 创建一个临时表,只当前会话可见 |
EXTERNAL | 创建一个外部表,这里需要指定hdfs_path。默认不加这个参数创建的内部表 |
PARTITIONED BY | 创建带有分区的表 |
CLUSTERED BY | 对表和分区进行装桶处理,将其放进桶里 |
SORTED BY | 对列进行排序 |
ROW FORMAT | 对行进行格式化 |
STORED AS | 指定存储格式,默认是Textfile格式 |
2.3 数据操作
Select语法与MySQL中的语法基本相似
更多语法内容,查阅在线文档https://cwiki.apache.org/confluence/display/Hive/LanguageManual
评论区