| set hive.mapred.mode=nonstrict; |
| set hive.support.concurrency=true; |
| set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; |
| |
| -- create a source table where the IOW data select from |
| create table srctbl (key char(1), value int); |
| insert into table srctbl values ('d', 4), ('e', 5), ('f', 6), ('i', 9), ('j', 10); |
| select * from srctbl; |
| |
| -- insert overwrite on non-partitioned acid table |
| drop table if exists acidtbl1; |
| create table acidtbl1 (key char(1), value int) clustered by (value) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true"); |
| |
| insert into table acidtbl1 values ('a', 1), ('b', 2), ('c', 3); |
| select * from acidtbl1 order by key; |
| |
| insert overwrite table acidtbl1 select key, value from srctbl where key in ('d', 'e', 'f'); |
| select * from acidtbl1 order by key; |
| |
| insert into table acidtbl1 values ('g', 7), ('h', 8); |
| select * from acidtbl1 order by key; |
| |
| insert overwrite table acidtbl1 select key, value from srctbl where key in ('i', 'j'); |
| select * from acidtbl1 order by key; |
| |
| insert into table acidtbl1 values ('k', 11); |
| insert into table acidtbl1 values ('l', 12); |
| select * from acidtbl1 order by key; |
| |
| |
| -- insert overwrite with multi table insert |
| drop table if exists acidtbl2; |
| create table acidtbl2 (key char(1), value int) clustered by (value) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true"); |
| |
| drop table if exists acidtbl3; |
| create table acidtbl3 (key char(1), value int) clustered by (value) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true"); |
| |
| insert into table acidtbl2 values ('m', 13), ('n', 14); |
| select * from acidtbl2 order by key; |
| |
| insert into table acidtbl3 values ('o', 15), ('p', 16); |
| select * from acidtbl3 order by key; |
| |
| from acidtbl1 |
| insert overwrite table acidtbl2 select key, value |
| insert into table acidtbl3 select key, value; |
| |
| select * from acidtbl2 order by key; |
| select * from acidtbl3 order by key; |
| |
| drop table acidtbl1; |
| drop table acidtbl2; |
| drop table acidtbl3; |
| |
| |
| -- insert overwrite on partitioned acid table |
| drop table if exists acidparttbl; |
| create table acidparttbl (key char(1), value int) partitioned by (p int) clustered by (value) into 2 buckets stored as orc TBLPROPERTIES ("transactional"="true"); |
| |
| insert into table acidparttbl partition(p=100) values ('a', 1), ('b', 2), ('c', 3); |
| select p, key, value from acidparttbl order by p, key; |
| |
| insert overwrite table acidparttbl partition(p=100) select key, value from srctbl where key in ('d', 'e', 'f'); |
| select p, key, value from acidparttbl order by p, key; |
| |
| insert into table acidparttbl partition(p) values ('g', 7, 100), ('h', 8, 200); |
| select p, key, value from acidparttbl order by p, key; |
| |
| insert overwrite table acidparttbl partition(p) values ('i', 9, 100), ('j', 10, 200); |
| select p, key, value from acidparttbl order by p, key; |
| |
| drop table acidparttbl; |