Hive数据仓库的学习——DDL之内部表、外部表、分区表、分桶表

发布时间 2023-09-26 19:53:54作者: yesyes1

1、内部表和外部表

没有指定建表的类型的话,默认为内部表(Internal Table或者是Managed Table)

可以通过这行代码查看表的类型:

describe formatted 表名;

内部表和外部表的区别以及适合使用的范围:

2、分区表--避免全表扫描,提高查询效率

需要注意的是,在创建分区表时,分区字段不能再作为表中字段

因为分区字段也会在表中占用一个字段,故不能相同;

partitioned by (role string)

3、分区表数据加载--静态分区

向分区表中加载数据,只是使用hadoop fs -put这个命令是没有用的,需要用这个命令:

load data local inpath '文件路径' into table 表名 parttiton(分区字段='分区值');
create table t1(
    id string,
    name string
)partitioned by(name1 string)
row format delimited
fields terminated by ",";

例如:

4、静态加载————多重分区表(PARTITION BY后面指定的分区字段不只有一个)

5、动态加载

insert into table t2 partition(name1)
select tmp.*,tmp.name from t1 tmp;

6、分桶表

分桶的语法:

使用分桶功能时,需要先将分桶功能开启:

set hive.enforce.bucketing=true;