hive命令3

本文详细介绍Hive SQL中的高级操作,包括表重命名、存储属性修改、orc文件格式转换、小文件处理策略、分区表创建及管理。通过具体代码案例,深入解析Hive在大数据处理中的高效应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hive命令3

1.重命名表 --stud:表名
create external table stud (state string) location ‘/opt/stud’;

alter table stud rename to stud_old;

2.修改表的存储属性
(1)alter table
(2)删除该表,然后重新创建表,修改create table中的存储属性

3.orc文件格式
将states表转换成orc文件格式并且查看其属性
create table states_orc stored as orc tblproperties(“orc.compress”=“snappy”)
as select * from states;

4.hadoop中处理小文件将会大量耗费大量的namenode元数据记录,所以通常合并小文件
hdfs的namenode进程维护了hdfs上所有文件的元数据
对于以rcfile或orcfile格式存储的hive表,可以做下面的操作,将多个数据文件合并成一个
alter table states concatenate;

5.避免小文件的方式之一(推荐),在数据进入hadoop之前,将它们合并成集群数据块
数倍大小的文件,通常为好几GB或者更大。在数据进入hadoop之后,有很多的方式整合,
但hadoop处理小文件并不在行,因此这样合并速度会比较慢。

6.hive表分区
hive中的分区表有一个或多个分区键,基于这些键,数据被分割成若干逻辑块并存放在单独
的路径中。每个分区键都为表的存储添加了一个目录层结构。

7.hive表分区代码案例
create external table retail.transactions(
transdate date,
transid int,
custid int,
fname string //注意:最后一个属性不要打逗号
)
partitioned by (store string);
本例中的表基于一个名为store(存放商店的名称)的字符串列进行分区。
注意:在分区中用到的列实际上在create table 结构中并不存在。

8.当你查询一个分区表时,分区的值会作为该分区中所有行在这一列的值,例
select * from retail.transactions 将返回store列的值,即使数据库中兵没有
存储这样的数据。

9.创建分区表需要你预先为底层分区创建目录结构。对于内部表的情形,当你使用insert
命令将数据插入新分区时,分区目录是自动创建的。

10.注意:不能在实际的表定义中加入分区键列,否则报错
failed:error in semantic analysis:column repeated in patitioning columns错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值