Hive表复制

Hive表复制

Hive表复制,具体可以分为两部分:

  • 表结构复制
  • 表数据复制

表结构复制

如果只是需要复制表结构,不管是分区表还是非分区表,直接使用like关键字即可。

1
2
## 复制test_01的表结构到test_02
create table if not exists test_02 like test_01;

表数据复制

在Hive中,非分区表和分区表的表数据复制有所不同。具体如下

非分区表

对于非分区表而言,我们可以直接使用下面的语句,一步到位。

1
2
## 复制表结构的同时也复制了表数据
create table if not exists test_02 as select * from test_01;

分区表

对于分区表而言,如果使用上面的语句进行处理,会将分区字段处理成普通字段,导致表结构发生改变。
我们需要先复制表结构,再将HDFS文件拷贝到指定目录,最后修复目标表的分区元数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
## 1. 复制表结构
hive>create table if not exists test_02 like test_01;

## 2. 拷贝源表文件数据
hadoop fs -cp /user/hive/warehouse/test_01/* /user/hive/warehouse/test_02/

## 3. 修复分区元数据
hive> MSCK REPAIR TABLE test_02;

## 4.查看修复后分区结果
hive> show partitions test_02;
OK
dataday=2018-02-01
dataday=2018-02-02
Time taken: 0.101 seconds, Fetched: 2 row(s)
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 henrrywan

请我喝杯咖啡吧~

支付宝
微信