HiveQL学习笔记1
1、SQL和HiveQL的概要比较
| 特性 | SQL | HiveQL |
|---|---|---|
| 更新 | UPDATA , INSERT, DELETE | UPDATE, INSERT, DELETE |
| 事务 | 支持 | 有限支持 |
| 索引 | 支持 | 支持 |
| 延迟 | 亚秒级 | 分钟级 |
| 数据类型 | 整数,浮点数,定点数,文本和二进制串,时间 | 布尔型,整数,浮点数,文本和二进制串,时间戳,数组,映射,结构 |
| 函数 | 数百个内置函数 | 数百个内置函数 |
| 多表插入 | 不支持 | 支持 |
| CREATE TABLE AD SELECT | 部分数据库支持 | 支持 |
| SELECT | SQL-92 | SQL-92。支持偏序SORT BY。可限制返回行数量的LIMIT |
| 连接 | SQL-92支持或变相支持 | 内连接,外链接,半连接,映射,连接,交叉连接 |
| 子查询 | 在任何字句中支持“相关”的或不相关的 | 只能在FORM,WHERE或HAVING子句中 |
| 视图 | 可更新 | 只读 |
| 扩展点 | 用户自定义函数,存储过程 | 用户定义函数, MapReduce脚本 |
2、数据类型
基本数据类型
| 类型 | 描述 | 文字示例 |
|---|---|---|
| BOOLEAN | true/false | TRUE |
| TINYINT | 1字节有符号整数,[-128,127] | 1Y |
| SMALLINT | 2字节有符号整数,[-32768,32767] | 1S |
| INT | 4字节有符号整数[-2147483,2147483647] | 1 |
| BIGINT | 8字节有符号整数[-9223372036854775808, 9223372036854775807] | 1L |
| FLOAT | 4字节单精度浮点数 | 1.0 |
| DOUBLE | 8字节双精度浮点数 | 1.0 |
| DECIMAL | 任意精度有符号小数 | 1.0 |
| STRING | 无上限可变长度字符串 | ‘a’ “a” |
| VARCHAR | 可变长度字符串 | ‘a’ “a” |
| CHAR | 固定长度字符串 | ‘a’ “a” |
| BINARY | 字节数据 | 不支持 |
| TIMESTAMP | 精度到纳秒的时间戳 | – |
| DATE | 日期 | 2018-05-31 |
复杂数据类型
| 类型 | 描述 | 文字示例 |
|---|---|---|
| ARRAY | 一组有序字段,字段的类型必须相同 | array(1,2) |
| MAP | 一组无序的字段,键的类型必须是原子的;值可以是任何类型,同一个映射的键的类型必须相同,值得类型也必须相同 | map(‘a’,1,’b’,2) |
| STRUCT | 一组命名的字段,字段的类型可以不同 | struct(‘a’,1, 1.0), named_struct(‘col1’, ‘a’, ‘col2’, 1) |
| UNION | 值得数据类型可以是多个被定义的数据类型中的任意一个,这个值通过一个整数(零索引)来标记其为联合类型中的哪个数据类型 | create_union(1,’a’,63) |
本文对比了HiveQL与传统SQL的特点,并详细介绍了Hive支持的基本与复杂数据类型。包括更新、事务、索引等特性的支持情况,以及HiveQL特有的多表插入、CREATE TABLE AS SELECT等功能。
946

被折叠的 条评论
为什么被折叠?



