Hive是什么?
- Hive:
- 解决海量结构化日志的数据统计;
- 基于Hadoop的数据仓库工具,将结构化的数据文件映射为一张表,并提供类SQL查询功能;
- 本质:将HQL转化成MapReduce程序;
- Hive处理的数据存储在HDFS;
- Hive分析数据底层的默认实现是MapReduce;
- Hive执行程序运行在Yarn上;
- 解析器,编译器,优化器,执行器;
Hive基本操作:
- 数据库操作
功能 指令 创建数据库 create database [ if not exists] 数据库名;
查看数据库 show databases;
模糊show databases like 字符串*;
打开数据库 use 数据库名;
默认数据库为default
查看数据库信息 desc database [extended] 数据库名;
删除数据库 drop database [if exists] 数据库名 [cascade强制];
显示数据库中的表 show tables;
- 表操作
功能 指令 创建student表 详见下一部分“建表” 查看表的结构 desc student;
desc extended student;
desc formatted table_name;
向表中插入数据 insert into student values(1,"zhangsan");
一次多条insert into student values(1,"a"),(2,"b"),(3,"c");
查询表中数据 select * from student;
清除表中数据 truncate table student;
删除表 drop table student;
查看[特定]分区 show partitions tabel_name [partition(dt='...')]
删除部分数据 insert overwrite table tbl_name select * from tbl_name where 条件;
退出hive quit;
- 修改表alter指令:
功能 指令 更改表名 ALTER TABLE tbl_name RENAME TO new_tbl_name;
更新列 `ALTER TABLE tbl_name CHANGE [COLUMN] col_old_name col_new_name col_type [COMMENT col_comment] [FIRST 添加/替换列 `ALTER TABLE table_name ADD 创建/删除分区 `ALTER TABLE tbl_name ADD
建表
-
建表语法
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT 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