blob: 32c349bae63b3677c5ee76caba493ec301542ce1 [file] [log] [blame]
SET hive.cli.errors.ignore=true;
SET hive.support.concurrency=true;
SET hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
SET metastore.strict.managed.tables=true;
SET hive.default.fileformat=textfile;
SET hive.default.fileformat.managed=orc;
SET metastore.create.as.acid=true;
SET hive.groupby.position.alias=true;
set hive.materializedview.rewriting.sql=false;
drop database if exists arc_view cascade;
create database arc_view;
use arc_view;
create table wealth (name string, net_worth decimal(15,3), watches string) TBLPROPERTIES ('transactional'='true');
insert into wealth values ('solomon', 2000000000.00, 'simpsons'),('midas', 1000000000.00, 'super bowl'),('midas', 1000000000.00, 'scream'),('midas', 1000000000.00, 'scream2'),('midas', 1000000000.00, 'scream3');
create table tv_view_data (program string, total_views bigint) TBLPROPERTIES ('transactional'='true');
insert into tv_view_data values ('simpsons', 1300000), ('bbt',2700000), ('super bowl',15000000);
explain cbo
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile;
create materialized view mv_tv_view_data_av1 stored as orc TBLPROPERTIES ('transactional'='true') as
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile;
explain cbo
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile
order by quartile;
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile
order by quartile;
insert into tv_view_data values ('scream', 20000000);
set hive.materializedview.rebuild.incremental=false;
explain
alter materialized view mv_tv_view_data_av1 rebuild;
alter materialized view mv_tv_view_data_av1 rebuild;
explain cbo
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile
order by quartile;
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile
order by quartile;
insert into tv_view_data values ('scream2', 30000000);
set hive.materializedview.rebuild.incremental=true;
explain
alter materialized view mv_tv_view_data_av1 rebuild;
alter materialized view mv_tv_view_data_av1 rebuild;
explain cbo
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile
order by quartile;
select
t.quartile,
max(t.total_views) total
from wealth t2,
(select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data) t
where t.program=t2.watches
group by quartile
order by quartile;
drop materialized view mv_tv_view_data_av1;
create materialized view mv_tv_view_data_av2 stored as orc TBLPROPERTIES ('transactional'='true') as
select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data;
insert into tv_view_data values ('scream3', 40000000);
select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data;
explain
alter materialized view mv_tv_view_data_av2 rebuild;
alter materialized view mv_tv_view_data_av2 rebuild;
select
total_views `total_views`,
sum(cast(1.5 as decimal(9,4))) over (order by total_views) as quartile,
program
from tv_view_data;
drop materialized view mv_tv_view_data_av2;