一、什么是hive
hive利用hdfs存储数据,hive将HQL转换成MapReduce执行查询数据,所以说Hive是基于Hadoop的一个数据仓库工具,实质就是一款基于HDFS的MapReduce计算框架,对存储在HDFS中的数据进行分析和管理
二、Hive内部表和外部表的区别
1、未被external 修饰的是内部表,被extend修饰的是外部表
2、内部表数据由hive自身管理,外部表数据由hdfs管理
3、内部表数据的存储位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定
4、删除内部表会直接删除元数据以及存储数据,删除外部表仅仅会删除元数据,hdfs上的文件不会被删除
5、对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)
三、分区表和分桶表:
分区表:
eg:
hive> create table logs(ts bigint,line string)
> partitioned by (dt String,country string);
分区表就是在系统上建立文件夹,把分类数据放在不同文件夹下面,加快查询速度