**

hive三种建表语句

:**

1. create 建表

CREATE EXTERNAL TABLE dwd_database.table_name( 
id                BIGINT,
user_id           STRING,
gmt_modified      TIMESTAMP,
gmt_create        TIMESTAMP,
pending_reward    INT,
description       STRING
)
PARTITIONED BY ( 
pt STRING 
)
row format delimited fields terminated by '\t'
STORED AS TEXTFILE
location 'hdfs://nameservice1/user/hive/warehouse/dwd_database.db/table_name';

参数说明:
EXTERNAL :外部表,如果是内部表可以不用
dwd_database :库名
table_name :表名
partitioned by :分区字段
row format delimited fields terminated by ‘\t’ :指定表存储中列的分隔符,默认是 \001,这里指定的是\t分隔符,还可以指定其他列的分隔符
STORED AS TEXTFILE:数据格式,这里是text格式及文本格式,也可以是其他格式,如:
textfile 存储空间消耗比较大,并且压缩的text 无法分割和合并查询的效率最低,可以直接存储,加载数据的速度最高.
sequencefile 存储空间消耗最大,压缩的文件可以分割和合并查询效率高,需要通过text文件转化来加载.
rcfile 格式存储空间最小,查询的效率最高 ,需要通过text文件转化来加载,加载的速度最低.
orc格式:是rcfile的升级版,性能有大幅度提升,而且数据可以压缩存储,压缩比和Lzo压缩差不多,比text文件压缩比可以达到70%的空间。而且读性能非常高,可以实现高效查询。
location :外部表加载路径,内部表默认路径为:/user/hive/warehouse/dwd_database.db/table_name

**

2. create table …as select…

create table table_name
        as   
       select *  from t_table_name where pt='20210829';

根据查询来创建新表,并给新表命名;需要注意的是:
1、select * 可以给新表重新定义列名(as)
2、table_name表不支持分区分桶
3、table_name表不能是外部表
4、table_name表可以重新设定储存格式和分隔符
5、table_name表默认为文本格式

**

3. like 创建相同结构的表

create external table like

1、主要用来复制表
2、如果建内部表,去掉external

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐