...
Code Block |
---|
|
ALTER TABLE <source<dest_table> EXCHANGE PARTITION (<[partial] partition spec>) WITH TABLE <dest<src_table>
|
Example Usage – Basic
Code Block |
---|
|
--Create two tables, one partitioned by ds, one not partitioned
CREATE TABLE T1(a string, b string) PARTITIONED BY (ds string);
CREATE TABLE T2(a string, b string) PARTITIONED BY (ds string);
ALTER TABLE T1 ADD PARTITION (ds='1');
--ExchangeMove partition data from T1 to T2(ds=1)
ALTER TABLE T1T2 EXCHANGE PARTITION (ds='1') WITH TABLE T2 |
...
Example Usage – Partial Partition Spec
Code Block |
---|
|
--Create two tables with multiple partitions.
CREATE TABLE T1(a string, b string) PARTITIONED BY (ds string, hr string);
CREATE TABLE T2(a string, b string) PARTITIONED BY (ds string, hr string);
ALTER TABLE T1 add partition (ds = '1', hr = '00');
ALTER TABLE T1 add partition (ds = '1', hr = '01');
ALTER TABLE T1 add partition (ds = '1', hr = '03');
--Alter the table, moving partition data where ds='1' from table T1 to table T2 (ds=1)
ALTER TABLE T1T2 EXCHANGE PARTITION (ds='1') WITH TABLE T2 T1; |
Note that the schema for T1 is being used for the newly created partition T2(ds=1). Either all the partitions of T1 will get created or the whole operation will fail. All partitions of T1 are dropped.
...
Code Block |
---|
|
-- Create two tables, both with multiple partitions
CREATE TABLE t1 (a int) PARTITIONED BY (d1 int, d2 int);
CREATE TABLE t2 (a int) PARTITIONED BY (d1 int, d2 int);
ALTER TABLE t1 ADD PARTITION(d1=1, d2=2);
-- Alter the table, moving partition data d1=1, d2=2 from table T1 to table T2
ALTER TABLE t1t2 EXCHANGE PARTITION (d1 = 1, d2 = 12) WITH TABLE t2t1;
|