Hive查询语句——HiveQL学习
Hive仓库的安装Hadoop生态系统—数据仓库Hive的安装
一、Hive内置数据类型
| 数据类型 |
描述 |
Java中的类型 |
| TINYINT |
1字节有符号整数,-128~127 |
byte |
| SMALLINT |
2字节有符号整数,-32768~32767 |
short |
| INT |
4字节有符号整数,-2^31~2^31-1 |
ubt |
| BIGINT |
8字节有符号整数,-2^63~2^63-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 |
字段类型可以不同的数据 |
无 |
复杂类弄数据示例代码:
1 2 3 4 5
| 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 数据库操作
1 2 3 4 5 6 7 8 9 10 11 12
| create database students;
show databases;
desc databases;
use students;
alert database sutdents set dbproperties (property_name=property_value,...)
drop database students;
|
2.2 表操作
1 2 3 4 5 6 7 8 9 10
| 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]
|
- 复制表(根据已有的视图或者表创建新的表,只复制表结构)
1 2
| 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