HIVE内部表,外部表,分区,分桶 干货笔记

DROP时

内部表:元数据和数据本是都由HIVE自己掌控,内部表被删除后元数据和HDSF上的数据文件都将被删除,一般

外部表:外部表只删除元数据,不删除路径下的文件,重新创建该路径下的表时可以恢复数据

LOAD加载数据时

内部表:会把数据移动到自己指定的路径下

外部表:会把数据移动到自己指定的路径之外

-----------------------------------------------------------------

分区表:根据分区字段的值,对数据进行划分,可以理解为分成不同的文件夹,每个文件夹对应一个分区名

分桶表:分桶是相对分区进行更细粒度的划分。分桶将整个数据内容安装某列属性值得hash值进行区分,如要安装name属性分为3个桶,就是对name属性值的hash值对3取摸,按照取模结果对数据分桶。

建分区表关键语句:  create  table  tablename(字段  类型)   partitioned by(job string)  ..........

往分区表导入数据

加载方式:load data local inpath '/home/hadoop/student.txt' into table ptn_student1 partition(job='导购员');

根据查询插入方式:insert overwrite table users select * from mvusers where jobname='导购员'

查看某个分区的数据   

select  * from users  where job='导购员'

查看分区信息

show partitions job;

分桶表

第一 分桶之前要执行命令hive.enforce.bucketiong=true;

建分桶表关键语句: create  table  tablename(字段  类型)  clustered by(sex)  into  3 buckets

查看桶数据:tablesample(bucket 1 out of 2 on sex)  第一位数  第几桶 第二位 一共多少桶

猜你喜欢

转载自www.cnblogs.com/dll102/p/12125613.html