hive三种建表语句
**hive三种建表语句:**1. create 建表CREATE EXTERNAL TABLE dwd_database.table_name(idBIGINT,user_idSTRING,gmt_modifiedTIMESTAMP,gmt_createTIMESTAMP,pending_rewardINT,descriptionSTRING)PARTITIONED BY (
**
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
更多推荐
所有评论(0)