3-Hive SQL

1. HiveQL 的基本操作

更新:          INSERT
事物:          支持表级,本分区级。
索引:          支持
延迟:          分区级
数据类型:      整形,浮点型, 布尔型, 文本和二进制串, 时间戳, 数组, 映射, 结构
函数:          几十个内置函数
多表插入:      支持
选择:          FORM字句中只能有一个表或视图。 支持偏序的 SORT BY 
连续:          内链接, 外连接, 半连接, 映射链接,
子查询:        只能在 FROM字句中
视图:          只读

2. 数据类型:

  • 基本数据类型:
整形:
    TINYINT:        // 1 字节
    SMALLINT:       // 2 字节
    INT:            // 4 字节
    BIGINT:         // 8 字节
浮点型:
    FLOAT:          // 4 字节
    DOUBLE:         // 8 字节
布尔型:
    BOOLEAN:       // true/false
字符串:
    STRING:         
时间戳:
    TIMESTAMP:      // 精度到纳秒的时间戳
  • 复杂数据类型:
ARRAY:              // 一组有序字段, 字段类型必须相同

MAP:                // 一组无序的 键/值 对。 键的类型必须是 原子的, 值可以是任意的类型
                    // 同一个映射的键的类型必须相同,值的类型也必须相同。

STRUCT:             // 一组命名的字段, 字段的类型可以不同。 

3. 操作与函数:

  • 关系操作
  • 算术操作
  • 逻辑操作

4. 类型转换:

原子数据类型形成了一个 Hive 函数 和 操作表达式 进行 隐式类型转换的层次。

  • 任何整数类型都可以隐式转换为一个范围更广的类型。
  • 所有的整数, FLOAT, STRING 都可以转换为 DOUBLE。
  • TINYINT, SMALLINT, 和 INT 都可以转换为 FLOAT.
  • BOOLEAN 类型不能转换为其他任何数据类型。
  • TIMESTAMP 可以被隐式转换为 STRING。
  • HiveQL 是 Hive 的查询语言, 和普通使用的所有 SQL 方言一样, 他不完全遵守任一种 ANSI SQL 标准的修订版.
  • HiveQL 不支持行级插入操作,更新操作和删除操作。
  • HiveQL 不支持事物

5. Hive 中的数据库

Hive 中数据库的本质上仅仅是 表的一个目录命名空间, 这样可以避免表命名冲突。

  • 数据库的创建

创建数据库与创建表一样, 在存储系统(s3,hdfs) 中仅表示创建一个目录, 然后将数据库与目录在metaStore 中产生一个映射关系。

hive> CREATE DATABASE IF NOT EXISTS saligia;
OK
Time taken: 0.354 seconds
hive> show databases;
OK
default
one
saligia
Time taken: 0.007 seconds, Fetched: 3 row(s)

hive> dfs -ls /user/hive/mysql/warehouse;
Found 4 items
drwxrwxrwx   - EVA EVA          0 2016-10-29 17:11 /user/hive/mysql/warehouse/message
drwxrwxrwx   - EVA EVA          0 2016-10-29 14:02 /user/hive/mysql/warehouse/one
drwxrwxrwx   - EVA EVA          0 2016-10-29 16:00 /user/hive/mysql/warehouse/one.db
drwxrwxrwx   - EVA EVA          0 2016-10-29 19:35 /user/hive/mysql/warehouse/saligia.db
  • 删除数据库:
hive> DROP DATABASE saligia;
OK
Time taken: 0.412 seconds

// 要删除的数据库应为空.

你可能感兴趣的:(hive)