GuoLi
3/28/2018 - 2:35 AM

Hive教程

Hive教程,beeline, hive cli

Hive相关文档

Hive速成手册

连接hive

beeline -n hive -p hive -u jdbc:hive2://localhost:10000

显示数据库信息

-- SHOW语句,列出databases, tables, columns, partitions等信息
SHOW DATABASES [like 'de*'];
SHOW TABLES [like 'te*'];
SHOW COLUMNS FROM tab1;
SHOW FUNCTIONS [like 'tr*'];
SHOW PARTITIONS tabl1;

显示数据库元信息

-- DESCRIBE语句,显示databases, tables, partitions元信息
DESCRIBE DATABASE default;

-- 显示表tab1的简单元信息
DESCRIBE tab1;
-- 显示表tab1的详细元信息
DESCRIBE EXTENDED tab1;
-- 显示表tab1格式化排版的详细元信息
DESCRIBE FORMATTED tab1;

-- 显示函数简单描述
DESCRIBE FUNCTION avg;
-- 显示函数详细描述
DESCRIBE FUNCTION EXTENDED avg;

DESCRIBE tab1 PARTITION (date='20180402')

对数据库的操作,创建/删除/修改

CREATE DATABASE test_db COMMENT 'this is a test databases';
DROP DATABASE test_db;
ALTER DATABASE test_db SET DBPROPERTIES (property_name=property_value, ...);

使用数据库

USE test_db;
USE default;

HIVE DDL,对表的操作,创建/修改/删除

-- 创建表
CREATE TABLE tab1(id INT, name VARCHAR(20), birthday DATE, address STRING) COMMENT 'comments';
-- Create Table As Select,通过select语句创建表
CREATE TABLE tab2 AS SELECT(id, name, birthday, address) FROM tab1;
-- Create Table Like,创建与tab1相同的表结构,但不复制数据
CREATE TABLE tab2 LIKE tab1;

CREATE TABLE IF NOT EXISTS tab1 (f1 int, f2 string, f3 double, f4 map<int, array<string>>)
PARTITIONED BY (date string)
CLUSTERED BY (f1) SORTED BY (f2) INTO 4 BUCKETS
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- 修改表名
ALTER TABLE tab1 RENAME TO tab2;
-- 修改字段
ALTER TABLE tab1 CHANGE id person_id INT COMMENT 'this is person id';
-- 添加字段
ALTER TABLE tab1 ADD COLUMNS (email VARCHAR(50), ip STRING);

-- 删除表
DROP TABLE tab1;
-- 删除分区
ALTER TABLE DROP tab1 PARTITION (date='20180402');
-- 删除索引
DROP INDEX index1 ON tab1;
  • order by VS sort by
    • sort by是每个reduce做排序;
    • order by是对结果集合做排序,所以只有一个reduce;
  • distributed by VS cluster by
    • distribute by对map结果按指定key做distribute,但reduce结果不会排序;
    • cluster by对map结果按指定key做distribute,同时会按key对reduce结果做排序;
    • 对于同一个key,cluster by == distribute by + order by,但distribute by和order by可以作用于不同字段,组合更加灵活;

查询Hive函数

-- 显示函数简单描述
DESCRIBE FUNCTION avg;

-- 显示函数详细描述
DESCRIBE FUNCTION EXTENDED avg;

HIVE DML

Hive权限

SQL Standard Based Hive Authorized

创建/删除/查询角色

CREATE ROLE myrole;
DROP ROLE myrole;
SHOW CURRENT ROLES;
SHOW ROLES;