hive表的分类

本文详细介绍了Hive中的四种表类型:内部表、外部表、分区表和桶表。内部表的数据生命周期与表同步,删除表时数据一同删除;外部表的生命周期独立,删除时不删除数据。分区表通过分类数据优化查询,而桶表通过哈希取值实现数据分桶,用于数据抽样和提升查询效率。此外,还涉及了Hive数据输出、视图创建和表的复制方法。

1. hive中的表的分类


1.1 内部表(管理表)
create table t3(name string,.....);
就是说数据的生命周期受表的控制,当表删除的时候,其数据文件一并被删除
1.2 外部表    
create ==external== table     t4(name string,....);
就是说数据的生命周期不受表的控制,当表删除的时候,其数据文件并不会删除
1.3 分区表

  • 分区可以理解为分类,通过分类把不同类型的数据放到不同的目录下 
  • 分类的标准就是分区字段,可以一个,也可以多个 
  • 分区表的意义在于优化查询。查询时尽量利用分区字段。如果不使用分区字段,就会全部扫描 
  • 分区表也是hive优化的一种很重要的手段   

   入库数据:

    小明 23 1994
    小花 20 1993
    小丽 30 1992
创建分区表(指定分区字段)
  - create table t7(name string,age int) **partitioned by(year string,month string)**  row format delimited fields terminated by ' ';
给分区表添加分区
  alter table t7 add partition(year=2008,month=02);
  alter table t7 add partition(year=2008,month=03);
把数据入库
  load data local inpath 't5.txt' into table t7 partition(year=2008,month=02);
展示所有分区
  show partitions t7
删除分区
 alter table t7 drop partition(year=2008,month=02);
1.4 桶表
桶表是对数据进行哈希取值,然后放到不同文件中存储** 
桶表的主要作用:
 数据抽样
 提高某些查询效率
create table t8(id string) clustered by(id) into 3 buckets;
insert into t8(name,age) values('admin',12);
  在桶表中如果使用loaddata则不能进行分桶操作(物理上没有分桶文件)

2 . Hive数据的输出结果

 insert overwrite local directory  '/xxx.d'  select * from t8;

3. Hive中视图

    create view v1 as select * from t4;
​    select * from v1;**

4. Hive表的复制

复制表结构和数据
    create table t9 as select * from t4;
复制表结构,但不复制数据
    create table t10 like t4;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值