我有一个带分区的表。我已将数据加载到该表中。现在, 是否可以从该表中删除分区,而不删除已加载的数据?
答案 0 :(得分:1)
是。您可以使用相同的架构创建第二个表,并将空表交换为当前分区。
-- create tables
CREATE TABLE t1 (a string, b string) partitioned by (ds string);
CREATE TABLE t2 (a string, b string);
-- then swap partitions
ALTER TABLE t1 EXCHANGE PARTITION (ds = '1') WITH TABLE t2;
另一种方法是创建一个新的空分区:
ALTER TABLE sales
PARTITION (country = 'US', year = 2012, month = 12, day = 22)
SET LOCATION = 'sales/partitions/us/2012/12/22' ;
无论采用哪种方法,您的数据仍然存在。我前一段时间写了introduction to hive partitioning,这应该会有所帮助。