数仓Hive的使用指南

背景

在日常工作中,数据工程师常常需要将处理完毕的数据存到Hadoop的dfs上或者其他分布式数据库中,本文要介绍的是如何将数据输出到hive中,借此梳理下hive的相关操作(逐步更新板块)。

创建内(外)表

  • 外部分区表
    方案一:使用普通建表语句创建
CREATE EXTERNAL TABLE IF NOT EXISTS db.tb_name
(
    field01 string,
	field02 array<int>
)
PARTITIONED BY (dt int)
stored as parquet 
LOCATION '/path/to_path';

方案二:利用现存表结构创建,新表具有相同的分区方式

CREATE EXTERNAL TABLE IF NOT EXISTS db.new_table LIKE db.exit_table LOCATION '/path/to_path';

向已创建的表导入数据

在导入数据时,除了常用的内部表,外部表也很受大家的青睐。因为外部表有自己的特性,可以将非Hive默认数仓路径下的数据轻松挂载到hive表,而且还可以避免在删除外部表时误删数据。

  • 导入数据至外部分区表
alter table db.tb_name add if not exists partition(dt=20230510) location '/path/to_path/dt=20230510';

上述方式不会把数据复制到hive默认数仓路径,如需复制到默认数仓路径,需使用load方式
load data inpath '/path/to_path/dt=20230510' overwrite into table db.tb_name partition(dt=20230510);

修改表的属性

  • 修改表的location
alter table db.table set location '/path/to_new_path';
  • 内外表之间互转
alter table db.inter_table set TBLPROPERTIES ('EXTERNAL'='TRUE');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值