大数据基础之HIVE(一)——基础知识,初学必看
什么是HIVE?
1、基于Hadoop的数据仓库解决方案
将结构化的数据文件映射为数据库表
提供类sql的查询语言HQL(Hive Query Language)
Hive让更多的人使用Hadoop
2、Hive成为Apache*项目
HIve始于2007年的Facebook
官网:hive.apache.org
HIVE的优势和特点
1、提供了一个简单的优化模型
2、HQL类SQL语法,简化MR开发
3、支持在不同的计算框架上运行
4、支持在HDFS和HBase上临时查询数据
5、支持用户自定义函数、格式
6、成熟的JDBC和ODBC驱动程序,用于ETL和BI
7、稳定可靠(真实生产环境)的批处理
8、有庞大活跃的社区
HIVE元数据管理
HIVE将数据结构存储在关系数据库中,默认为Derby,但Derby只适用于测试和演示,不适合生产环境。实际在一般的生产环境中会存储在MySQL中。
HCatalog:将HIVE的元数据分享给其他应用程序。
HIVE的存储的数据也不是存储在HIVE里的,而是存储在HDFS上的。
HIVE体系架构
HIVE命令窗口模式:
有两种工具:Beeline和HIVE命令行
有两种模式:命令模式和交互模式
HIVE工具操作
使用HIVE:
hive
使用beeline:
hiveserver2
beeline -u jdbc://hive2://192.168.56.101:10000 -n root
HIVE数据类型
基本数据类型:
复杂数据类型:
HIVE元数据结构
HIVE数据表
分为内部表和外部表
内部表(管理表)
HDFS中为所属数据库目录下的子文件夹
数据完全有HIVE管理,删除表(元数据)会删除数据
创建内部表(就跟在mysql里建表同样):
create table TABLE_NAME(FIELDS_NAME);
外部表(External Tables)
数据保存在指定位置的HDFS路径中
HIVE不完全管理数据,删除表(元数据)不会删除数据
创建外部表:
create external table TABLE_NAME(
FIELDS_NAME....
)
//如何分割列(字段)
row format delimited fields terminated by ','
//如何分割集合和映射
collection items terminated by ','
map keys terminated by ','
//文件存储格式
stored as textfile
//数据再HDFS上的存储路径
location '/usr/root/mydata';
HIVE建表高阶语句-ctas and with
ctas-as select方式建表
create table TABLE_NAME as select * from OTHER_TABLE_NAME
cte(ctas with common table expression)
create table TABLE_NAME as
with
r1 as (select name from r2 where name='Mike'),
r2 as (select name from TABLE_NAME where sex='male'),
r3 as (select name from TABLE_NAME where sex='female')
select * from r1 union all select * from r3;
like(创建与其他表相同的表结构的表)
create table TABLE_NAME like OTHER_TABLE_NAME;
创建临时表
create temporary table TABLE_NAME.....
HIVE表删除和修改
删除表:
drop table TABLE_NAME //删除表
truncate table TABLE_NAME //删除表数据
修改表:
//修改表名
alter table TABLE_NAME rename to NEW_TABLE_NAME;
//修改列名
alter table TABLE_NAME change old_name new_name string;
//添加列
alter table TABLE_NAME add columns (name string);
//替换列
alter table TABLE_NAME replace columns (name string);
上一篇: Hive编程(一)【基础知识】
下一篇: 乐鑫科技春招在线笔试编程测试——以小见大