Hive中如何快速的复制一张分区表(包括数据)

本文介绍了在Hive中快速复制一张分区表(包括数据)的步骤,包括使用`CREATE TABLE LIKE`创建表结构,通过`hadoop fs -cp`命令复制HDFS上的分区数据,以及使用`MSCK REPAIR TABLE`修复分区元数据。
摘要由CSDN通过智能技术生成

转自:http://lxw1234.com/archives/2015/09/484.htm

关键字:Hive 复制表

Hive中有时候会遇到复制表的需求,复制表指的是复制表结构和数据。

如果是针对非分区表,那很简单,可以使用CREATE TABLE new_table AS SELECT * FROM old_table;

那么如果是分区表呢?

首先想到的办法可能是:

先创建一张和old_table结构相同的new_table,包括分区;可以使用CREATE TABLE new_table LIKE old_table;

接下来使用动态分区,把old_table的数据INSERT到new_table中。

这个方法当然可以,但可能不是最快的。

其实可以这样做:

1. CREATE TABLE new_table LIKE old_table;

2. 使用hadoop fs -cp 命令,把old_table对应的HDFS目录的文件夹全部拷贝到new_table对应的HDFS目录下;

3. 使用MSCK REPAIR TABLE new_table;修复新表的分区元数据;

看例子:

有一张分区表t1,只有两个分区,每个分区中都有一条数据,如下:

  1. hive> show partitions t1;
  2. OK
  3. pt=2015-09-11
  4. pt=2015-09-12
  5. Time taken: 0.11 seconds, Fetched: 2 row(s)
  6. hive> desc t1;
  7. OK
  8. id string
  9. pt string
  10. # Partition Information
  11. #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值