hive 表结构及数据的复制

本文介绍了如何复制Hive中的非分区表和分区表结构及数据。对于分区表,需先通过HDFS命令复制数据,再执行MSCK REPAIR TABLE更新元数据。此外,MSCK REPAIR TABLE用于解决直接写入HDFS的数据在Hive中无法查询的问题,确保元数据与实际文件同步。但需要注意,删除HDFS上的分区文件后,Hive元数据不会自动更新,需要手动清理。
摘要由CSDN通过智能技术生成

非分区表

复制表结构

create table new_table like exists_table;

复制表结构和数据

create table new_table as select * from exists_table;

分区表

复制表结构

create table new_table like exists_table;

复制数据稍微麻烦点,使用hdfs拷贝文件,然后再修复表数据。

首先,hadoop fs - cp 命令将exists_table旧表的数据拷贝到new_table新表

hadoop fs -cp /user/warehouse/test.db/exists_table/* /user/warehouse/test.db/new_table/

然后执行MSCK REPAIR TABLE new_table命令让两张表的分区元数据保持一致

注意

MSCK REPAIR TABLE命令主要是用来解决通过hdfs dfs -put或者hdfs api写入hive分区表的数据在hive中无法被查询到的问题。
hive的metastore存储元数据信息。如果不是通过hive的insert等插入语句,很多分区信息在metastore中是没有的,当然可以通过ALTER TABLE table_name ADD PARTITION的方式添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值