hive表指定分区字段搜索_案例详解__HIVE中内部表、外部表、分区表和分桶表

本文详细介绍了Hive的四种表类型:内部表、外部表、分区表和分桶表。创建表的语法、内部表与外部表的区别、分区表的使用场景和优势以及分桶表的原理和操作方法都得到了深入解析,包括如何创建、加载数据以及它们对查询效率的提升作用。最后,通过实例展示了静态分区和分桶表的插入数据过程。
摘要由CSDN通过智能技术生成

e4e10b24aec7

目录

一、Hive建表语法

二、内部表外部表

三、分区表

四、分桶表

Hive在建表时可指定内部表、外部表、分区表和分桶表,所以在学习这四种表之前,先一起了解Hive建表语法

一、Hive建表语法

Hive建表方式共有三种:直接建表法、查询建表法、like建表法,下面讲解直接建表法

’[]’ 表示可选,’|’ 表示二选一

创建表的语句:

Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name

//EXTERNAL 关键字可以让用户创建一个外部表,如果不指定关键字EXTERNAL则为内部表

//如:create table IF NOT EXISTS test_bucket

[(col_name data_type [COMMENT col_comment], ...)]

//col_nam表字段,data_type字段类型,[COMMENT col_comment]字段注释 , ...为其他字段

//如:(word string,num bigint )

[COMMENT table_comment]

//表注释,COMMENT关键字,table_comment表解释具体内容

[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

//PARTITIONED BY分区

[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC],...)]INTO num_buckets BUCKETS]

//分桶,通过 clustered by(字段名) into bucket_num buckets 分桶,意思是根据字段名分成bucket_num个桶

//如:clustered by(id) into 4 buckets

[ROW FORMAT row_format]

//加载数据文件到hive表时,数据文件字段于字段的分隔符

//如:row format delimited fields terminated by '\t'

[STORED AS file_format]

[LOCATION hdfs_path]

//指定表存放的HDFS位置,如果不指定存放在默认路径,内部表默认路径/user/hive/warehouse

建表语句解释:

CREATE TABLE 创建一个指定名字的表。

EXTERNAL 关键字可以让用户创建一个外部表,无EXTERNAL 关键字则为内部表。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

有分区的表可以在创建的时候使用 PARTITIONED BY 语句。一个表可以拥有一个或者多个分区,每一个分区单独存在一个目录下。

案例:

//01-创建orders_part外部表

create EXTERNAL table orders_part(

order_id string comment '订单编号',

user_id string comment '客户号',

order_number string comment '订单数量',

order_date string comment '下单时间'

)

comment '测试_创建orders_part表'

partitioned by(order_date string)

row format delimited fields terminated by ','

//02-创建分桶表

create table test_bucket (

id int comment 'ID',

name string comment '名字'

)

comment '测试分桶'

clustered by(id) in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值