blob: b5d9a20bb96e3499d8890a81df114da6224ff16b [file] [log] [blame]
# TPCDS-Q3
select
dt.d_year,
item.i_brand_id brand_id,
item.i_brand brand,
sum(ss_ext_sales_price) sum_agg
from
date_dim dt,
store_sales,
item
where
dt.d_date_sk = store_sales.ss_sold_date_sk
and store_sales.ss_item_sk = item.i_item_sk
and item.i_manufact_id = 436
and dt.d_moy = 12
group by
dt.d_year,
item.i_brand,
item.i_brand_id
order by
dt.d_year,
sum_agg desc,
brand_id
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
Per-Host Resource Estimates: Memory=214MB
PLAN-ROOT SINK
|
06:TOP-N [LIMIT=100]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| row-size=52B cardinality=100
|
05:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=3.04K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| runtime filters: RF000 <- dt.d_date_sk
| row-size=72B cardinality=3.04K
|
|--00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_moy = 12
| row-size=12B cardinality=6.09K
|
03:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| runtime filters: RF002 <- item.i_item_sk
| row-size=60B cardinality=3.04K
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manufact_id = 436
| row-size=44B cardinality=19
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=34.81MB Threads=9
Per-Host Resource Estimates: Memory=235MB
PLAN-ROOT SINK
|
12:MERGING-EXCHANGE [UNPARTITIONED]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| row-size=52B cardinality=100
|
11:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=3.04K
|
10:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=3.04K
|
04:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| runtime filters: RF000 <- dt.d_date_sk
| row-size=72B cardinality=3.04K
|
|--09:EXCHANGE [HASH(dt.d_date_sk)]
| |
| 00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_moy = 12
| row-size=12B cardinality=6.09K
|
08:EXCHANGE [HASH(store_sales.ss_sold_date_sk)]
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| runtime filters: RF002 <- item.i_item_sk
| row-size=60B cardinality=3.04K
|
|--07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manufact_id = 436
| row-size=44B cardinality=19
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=52.62MB Threads=12
Per-Host Resource Estimates: Memory=127MB
PLAN-ROOT SINK
|
12:MERGING-EXCHANGE [UNPARTITIONED]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| row-size=52B cardinality=100
|
11:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=3.04K
|
10:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=3.04K
|
04:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| row-size=72B cardinality=3.04K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: dt.d_date_sk
| | runtime filters: RF000 <- dt.d_date_sk
| |
| 09:EXCHANGE [HASH(dt.d_date_sk)]
| |
| 00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_moy = 12
| row-size=12B cardinality=6.09K
|
08:EXCHANGE [HASH(store_sales.ss_sold_date_sk)]
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| row-size=60B cardinality=3.04K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: item.i_item_sk
| | runtime filters: RF002 <- item.i_item_sk
| |
| 07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manufact_id = 436
| row-size=44B cardinality=19
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q7
select
i_item_id,
avg(ss_quantity) agg1,
avg(ss_list_price) agg2,
avg(ss_coupon_amt) agg3,
avg(ss_sales_price) agg4
from
store_sales,
customer_demographics,
date_dim,
item,
promotion
where
ss_sold_date_sk = d_date_sk
and ss_item_sk = i_item_sk
and ss_cdemo_sk = cd_demo_sk
and ss_promo_sk = p_promo_sk
and cd_gender = 'F'
and cd_marital_status = 'W'
and cd_education_status = 'Primary'
and (p_channel_email = 'N'
or p_channel_event = 'N')
and d_year = 1998
group by
i_item_id
order by
i_item_id
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=50.38MB Threads=6
Per-Host Resource Estimates: Memory=434MB
PLAN-ROOT SINK
|
10:TOP-N [LIMIT=100]
| order by: i_item_id ASC
| row-size=60B cardinality=100
|
09:AGGREGATE [FINALIZE]
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id
| row-size=60B cardinality=8.85K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=162B cardinality=261.60K
|
|--03:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_promo_sk = p_promo_sk
| runtime filters: RF002 <- p_promo_sk
| row-size=126B cardinality=261.60K
|
|--04:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: (p_channel_email = 'N' OR p_channel_event = 'N')
| row-size=30B cardinality=300
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=44B cardinality=589.03K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_promo_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=54.31MB Threads=12
Per-Host Resource Estimates: Memory=460MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_item_id ASC
| limit: 100
|
10:TOP-N [LIMIT=100]
| order by: i_item_id ASC
| row-size=60B cardinality=100
|
16:AGGREGATE [FINALIZE]
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: i_item_id
| row-size=60B cardinality=8.85K
|
15:EXCHANGE [HASH(i_item_id)]
|
09:AGGREGATE [STREAMING]
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id
| row-size=60B cardinality=8.85K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=162B cardinality=261.60K
|
|--14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_promo_sk = p_promo_sk
| runtime filters: RF002 <- p_promo_sk
| row-size=126B cardinality=261.60K
|
|--13:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: (p_channel_email = 'N' OR p_channel_event = 'N')
| row-size=30B cardinality=300
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=44B cardinality=589.03K
|
|--11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_promo_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=84.56MB Threads=13
Per-Host Resource Estimates: Memory=259MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_item_id ASC
| limit: 100
|
10:TOP-N [LIMIT=100]
| order by: i_item_id ASC
| row-size=60B cardinality=100
|
16:AGGREGATE [FINALIZE]
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: i_item_id
| row-size=60B cardinality=8.85K
|
15:EXCHANGE [HASH(i_item_id)]
|
09:AGGREGATE [STREAMING]
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id
| row-size=60B cardinality=8.85K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=162B cardinality=261.60K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF000 <- i_item_sk
| |
| 14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_promo_sk = p_promo_sk
| row-size=126B cardinality=261.60K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: p_promo_sk
| | runtime filters: RF002 <- p_promo_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: (p_channel_email = 'N' OR p_channel_event = 'N')
| row-size=30B cardinality=300
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: cd_demo_sk
| | runtime filters: RF004 <- cd_demo_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=44B cardinality=589.03K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF006 <- d_date_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_promo_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
====
# TPCDS-Q8
select
s_store_name,
sum(ss_net_profit)
from
store_sales
join store on (store_sales.ss_store_sk = store.s_store_sk)
join
(select
a.ca_zip
from
(select
substr(ca_zip, 1, 5) ca_zip,
count( *) cnt
from
customer_address
join customer on (customer_address.ca_address_sk = customer.c_current_addr_sk)
where
c_preferred_cust_flag = 'Y'
group by
ca_zip
having
count(*) > 10
) a
left semi join
(select
substr(ca_zip, 1, 5) ca_zip
from
customer_address
where
substr(ca_zip, 1, 5) in ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779',
'91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797',
'28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068',
'10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', '32200', '81427', '19053',
'77471', '36610', '99823', '43276', '41249', '48584', '83550', '82276', '18842', '78890', '14090', '38123', '40936', '34425',
'19850', '43286', '80072', '79188', '54191', '11395', '50497', '84861', '90733', '21068', '57666', '37119', '25004', '57835',
'70067', '62878', '95806', '19303', '18840', '19124', '29785', '16737', '16022', '49613', '89977', '68310', '60069', '98360',
'48649', '39050', '41793', '25002', '27413', '39736', '47208', '16515', '94808', '57648', '15009', '80015', '42961', '63982',
'21744', '71853', '81087', '67468', '34175', '64008', '20261', '11201', '51799', '48043', '45645', '61163', '48375', '36447',
'57042', '21218', '41100', '89951', '22745', '35851', '83326', '61125', '78298', '80752', '49858', '52940', '96976', '63792',
'11376', '53582', '18717', '90226', '50530', '94203', '99447', '27670', '96577', '57856', '56372', '16165', '23427', '54561',
'28806', '44439', '22926', '30123', '61451', '92397', '56979', '92309', '70873', '13355', '21801', '46346', '37562', '56458',
'28286', '47306', '99555', '69399', '26234', '47546', '49661', '88601', '35943', '39936', '25632', '24611', '44166', '56648',
'30379', '59785', '11110', '14329', '93815', '52226', '71381', '13842', '25612', '63294', '14664', '21077', '82626', '18799',
'60915', '81020', '56447', '76619', '11433', '13414', '42548', '92713', '70467', '30884', '47484', '16072', '38936', '13036',
'88376', '45539', '35901', '19506', '65690', '73957', '71850', '49231', '14276', '20005', '18384', '76615', '11635', '38177',
'55607', '41369', '95447', '58581', '58149', '91946', '33790', '76232', '75692', '95464', '22246', '51061', '56692', '53121',
'77209', '15482', '10688', '14868', '45907', '73520', '72666', '25734', '17959', '24677', '66446', '94627', '53535', '15560',
'41967', '69297', '11929', '59403', '33283', '52232', '57350', '43933', '40921', '36635', '10827', '71286', '19736', '80619',
'25251', '95042', '15526', '36496', '55854', '49124', '81980', '35375', '49157', '63512', '28944', '14946', '36503', '54010',
'18767', '23969', '43905', '66979', '33113', '21286', '58471', '59080', '13395', '79144', '70373', '67031', '38360', '26705',
'50906', '52406', '26066', '73146', '15884', '31897', '30045', '61068', '45550', '92454', '13376', '14354', '19770', '22928',
'97790', '50723', '46081', '30202', '14410', '20223', '88500', '67298', '13261', '14172', '81410', '93578', '83583', '46047',
'94167', '82564', '21156', '15799', '86709', '37931', '74703', '83103', '23054', '70470', '72008', '49247', '91911', '69998',
'20961', '70070', '63197', '54853', '88191', '91830', '49521', '19454', '81450', '89091', '62378', '25683', '61869', '51744',
'36580', '85778', '36871', '48121', '28810', '83712', '45486', '67393', '26935', '42393', '20132', '55349', '86057', '21309',
'80218', '10094', '11357', '48819', '39734', '40758', '30432', '21204', '29467', '30214', '61024', '55307', '74621', '11622',
'68908', '33032', '52868', '99194', '99900', '84936', '69036', '99149', '45013', '32895', '59004', '32322', '14933', '32936',
'33562', '72550', '27385', '58049', '58200', '16808', '21360', '32961', '18586', '79307', '15492')
) b
on (a.ca_zip = b.ca_zip)
) v1 on (substr(store.s_zip, 1, 2) = substr(v1.ca_zip, 1, 2))
where
ss_sold_date_sk between 2452276 and 2452366
group by
s_store_name
order by
s_store_name
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=32.38MB Threads=6
Per-Host Resource Estimates: Memory=280MB
PLAN-ROOT SINK
|
11:TOP-N [LIMIT=100]
| order by: s_store_name ASC
| row-size=32B cardinality=8
|
10:AGGREGATE [FINALIZE]
| output: sum(ss_net_profit)
| group by: s_store_name
| row-size=32B cardinality=8
|
09:HASH JOIN [INNER JOIN]
| hash predicates: substr(store.s_zip, 1, 2) = substr(substr(ca_zip, 1, 5), 1, 2)
| runtime filters: RF000 <- substr(substr(ca_zip, 1, 5), 1, 2)
| row-size=65B cardinality=84.40K
|
|--07:HASH JOIN [RIGHT SEMI JOIN]
| | hash predicates: substr(ca_zip, 1, 5) = substr(ca_zip, 1, 5)
| | runtime filters: RF004 <- substr(ca_zip, 1, 5)
| | row-size=20B cardinality=396
| |
| |--05:AGGREGATE [FINALIZE]
| | | output: count(*)
| | | group by: substr(ca_zip, 1, 5)
| | | having: count(*) > 10
| | | row-size=20B cardinality=396
| | |
| | 04:HASH JOIN [INNER JOIN]
| | | hash predicates: customer_address.ca_address_sk = customer.c_current_addr_sk
| | | runtime filters: RF006 <- customer.c_current_addr_sk
| | | row-size=38B cardinality=51.30K
| | |
| | |--03:SCAN HDFS [tpcds.customer]
| | | HDFS partitions=1/1 files=1 size=12.60MB
| | | predicates: c_preferred_cust_flag = 'Y'
| | | row-size=17B cardinality=50.00K
| | |
| | 02:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | runtime filters: RF006 -> customer_address.ca_address_sk
| | row-size=21B cardinality=50.00K
| |
| 06:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: substr(ca_zip, 1, 5) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', '32200', '81427', '19053', '77471', '36610', '99823', '43276', '41249', '48584', '83550', '82276', '18842', '78890', '14090', '38123', '40936', '34425', '19850', '43286', '80072', '79188', '54191', '11395', '50497', '84861', '90733', '21068', '57666', '37119', '25004', '57835', '70067', '62878', '95806', '19303', '18840', '19124', '29785', '16737', '16022', '49613', '89977', '68310', '60069', '98360', '48649', '39050', '41793', '25002', '27413', '39736', '47208', '16515', '94808', '57648', '15009', '80015', '42961', '63982', '21744', '71853', '81087', '67468', '34175', '64008', '20261', '11201', '51799', '48043', '45645', '61163', '48375', '36447', '57042', '21218', '41100', '89951', '22745', '35851', '83326', '61125', '78298', '80752', '49858', '52940', '96976', '63792', '11376', '53582', '18717', '90226', '50530', '94203', '99447', '27670', '96577', '57856', '56372', '16165', '23427', '54561', '28806', '44439', '22926', '30123', '61451', '92397', '56979', '92309', '70873', '13355', '21801', '46346', '37562', '56458', '28286', '47306', '99555', '69399', '26234', '47546', '49661', '88601', '35943', '39936', '25632', '24611', '44166', '56648', '30379', '59785', '11110', '14329', '93815', '52226', '71381', '13842', '25612', '63294', '14664', '21077', '82626', '18799', '60915', '81020', '56447', '76619', '11433', '13414', '42548', '92713', '70467', '30884', '47484', '16072', '38936', '13036', '88376', '45539', '35901', '19506', '65690', '73957', '71850', '49231', '14276', '20005', '18384', '76615', '11635', '38177', '55607', '41369', '95447', '58581', '58149', '91946', '33790', '76232', '75692', '95464', '22246', '51061', '56692', '53121', '77209', '15482', '10688', '14868', '45907', '73520', '72666', '25734', '17959', '24677', '66446', '94627', '53535', '15560', '41967', '69297', '11929', '59403', '33283', '52232', '57350', '43933', '40921', '36635', '10827', '71286', '19736', '80619', '25251', '95042', '15526', '36496', '55854', '49124', '81980', '35375', '49157', '63512', '28944', '14946', '36503', '54010', '18767', '23969', '43905', '66979', '33113', '21286', '58471', '59080', '13395', '79144', '70373', '67031', '38360', '26705', '50906', '52406', '26066', '73146', '15884', '31897', '30045', '61068', '45550', '92454', '13376', '14354', '19770', '22928', '97790', '50723', '46081', '30202', '14410', '20223', '88500', '67298', '13261', '14172', '81410', '93578', '83583', '46047', '94167', '82564', '21156', '15799', '86709', '37931', '74703', '83103', '23054', '70470', '72008', '49247', '91911', '69998', '20961', '70070', '63197', '54853', '88191', '91830', '49521', '19454', '81450', '89091', '62378', '25683', '61869', '51744', '36580', '85778', '36871', '48121', '28810', '83712', '45486', '67393', '26935', '42393', '20132', '55349', '86057', '21309', '80218', '10094', '11357', '48819', '39734', '40758', '30432', '21204', '29467', '30214', '61024', '55307', '74621', '11622', '68908', '33032', '52868', '99194', '99900', '84936', '69036', '99149', '45013', '32895', '59004', '32322', '14933', '32936', '33562', '72550', '27385', '58049', '58200', '16808', '21360', '32961', '18586', '79307', '15492')
| runtime filters: RF004 -> substr(ca_zip, 1, 5)
| row-size=17B cardinality=5.00K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF002 <- store.s_store_sk
| row-size=45B cardinality=84.40K
|
|--01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> substr(store.s_zip, 1, 2)
| row-size=37B cardinality=12
|
00:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2452276, ss_sold_date_sk <= 2452366
HDFS partitions=90/1824 files=90 size=10.32MB
runtime filters: RF002 -> store_sales.ss_store_sk
row-size=8B cardinality=84.40K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=46.13MB Threads=13
Per-Host Resource Estimates: Memory=327MB
PLAN-ROOT SINK
|
20:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: s_store_name ASC
| row-size=32B cardinality=8
|
19:AGGREGATE [FINALIZE]
| output: sum:merge(ss_net_profit)
| group by: s_store_name
| row-size=32B cardinality=8
|
18:EXCHANGE [HASH(s_store_name)]
|
10:AGGREGATE [STREAMING]
| output: sum(ss_net_profit)
| group by: s_store_name
| row-size=32B cardinality=8
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: substr(store.s_zip, 1, 2) = substr(substr(ca_zip, 1, 5), 1, 2)
| runtime filters: RF000 <- substr(substr(ca_zip, 1, 5), 1, 2)
| row-size=65B cardinality=84.40K
|
|--17:EXCHANGE [BROADCAST]
| |
| 07:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
| | hash predicates: substr(ca_zip, 1, 5) = substr(ca_zip, 1, 5)
| | runtime filters: RF004 <- substr(ca_zip, 1, 5)
| | row-size=20B cardinality=396
| |
| |--15:AGGREGATE [FINALIZE]
| | | output: count:merge(*)
| | | group by: substr(ca_zip, 1, 5)
| | | having: count(*) > 10
| | | row-size=20B cardinality=396
| | |
| | 14:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
| | |
| | 05:AGGREGATE [STREAMING]
| | | output: count(*)
| | | group by: substr(ca_zip, 1, 5)
| | | row-size=20B cardinality=3.96K
| | |
| | 04:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: customer_address.ca_address_sk = customer.c_current_addr_sk
| | | runtime filters: RF006 <- customer.c_current_addr_sk
| | | row-size=38B cardinality=51.30K
| | |
| | |--13:EXCHANGE [BROADCAST]
| | | |
| | | 03:SCAN HDFS [tpcds.customer]
| | | HDFS partitions=1/1 files=1 size=12.60MB
| | | predicates: c_preferred_cust_flag = 'Y'
| | | row-size=17B cardinality=50.00K
| | |
| | 02:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | runtime filters: RF006 -> customer_address.ca_address_sk
| | row-size=21B cardinality=50.00K
| |
| 16:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
| |
| 06:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: substr(ca_zip, 1, 5) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', '32200', '81427', '19053', '77471', '36610', '99823', '43276', '41249', '48584', '83550', '82276', '18842', '78890', '14090', '38123', '40936', '34425', '19850', '43286', '80072', '79188', '54191', '11395', '50497', '84861', '90733', '21068', '57666', '37119', '25004', '57835', '70067', '62878', '95806', '19303', '18840', '19124', '29785', '16737', '16022', '49613', '89977', '68310', '60069', '98360', '48649', '39050', '41793', '25002', '27413', '39736', '47208', '16515', '94808', '57648', '15009', '80015', '42961', '63982', '21744', '71853', '81087', '67468', '34175', '64008', '20261', '11201', '51799', '48043', '45645', '61163', '48375', '36447', '57042', '21218', '41100', '89951', '22745', '35851', '83326', '61125', '78298', '80752', '49858', '52940', '96976', '63792', '11376', '53582', '18717', '90226', '50530', '94203', '99447', '27670', '96577', '57856', '56372', '16165', '23427', '54561', '28806', '44439', '22926', '30123', '61451', '92397', '56979', '92309', '70873', '13355', '21801', '46346', '37562', '56458', '28286', '47306', '99555', '69399', '26234', '47546', '49661', '88601', '35943', '39936', '25632', '24611', '44166', '56648', '30379', '59785', '11110', '14329', '93815', '52226', '71381', '13842', '25612', '63294', '14664', '21077', '82626', '18799', '60915', '81020', '56447', '76619', '11433', '13414', '42548', '92713', '70467', '30884', '47484', '16072', '38936', '13036', '88376', '45539', '35901', '19506', '65690', '73957', '71850', '49231', '14276', '20005', '18384', '76615', '11635', '38177', '55607', '41369', '95447', '58581', '58149', '91946', '33790', '76232', '75692', '95464', '22246', '51061', '56692', '53121', '77209', '15482', '10688', '14868', '45907', '73520', '72666', '25734', '17959', '24677', '66446', '94627', '53535', '15560', '41967', '69297', '11929', '59403', '33283', '52232', '57350', '43933', '40921', '36635', '10827', '71286', '19736', '80619', '25251', '95042', '15526', '36496', '55854', '49124', '81980', '35375', '49157', '63512', '28944', '14946', '36503', '54010', '18767', '23969', '43905', '66979', '33113', '21286', '58471', '59080', '13395', '79144', '70373', '67031', '38360', '26705', '50906', '52406', '26066', '73146', '15884', '31897', '30045', '61068', '45550', '92454', '13376', '14354', '19770', '22928', '97790', '50723', '46081', '30202', '14410', '20223', '88500', '67298', '13261', '14172', '81410', '93578', '83583', '46047', '94167', '82564', '21156', '15799', '86709', '37931', '74703', '83103', '23054', '70470', '72008', '49247', '91911', '69998', '20961', '70070', '63197', '54853', '88191', '91830', '49521', '19454', '81450', '89091', '62378', '25683', '61869', '51744', '36580', '85778', '36871', '48121', '28810', '83712', '45486', '67393', '26935', '42393', '20132', '55349', '86057', '21309', '80218', '10094', '11357', '48819', '39734', '40758', '30432', '21204', '29467', '30214', '61024', '55307', '74621', '11622', '68908', '33032', '52868', '99194', '99900', '84936', '69036', '99149', '45013', '32895', '59004', '32322', '14933', '32936', '33562', '72550', '27385', '58049', '58200', '16808', '21360', '32961', '18586', '79307', '15492')
| runtime filters: RF004 -> substr(ca_zip, 1, 5)
| row-size=17B cardinality=5.00K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF002 <- store.s_store_sk
| row-size=45B cardinality=84.40K
|
|--12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> substr(store.s_zip, 1, 2)
| row-size=37B cardinality=12
|
00:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2452276, ss_sold_date_sk <= 2452366
HDFS partitions=90/1824 files=90 size=10.32MB
runtime filters: RF002 -> store_sales.ss_store_sk
row-size=8B cardinality=84.40K
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=58.38MB Threads=14
Per-Host Resource Estimates: Memory=187MB
PLAN-ROOT SINK
|
20:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: s_store_name ASC
| row-size=32B cardinality=8
|
19:AGGREGATE [FINALIZE]
| output: sum:merge(ss_net_profit)
| group by: s_store_name
| row-size=32B cardinality=8
|
18:EXCHANGE [HASH(s_store_name)]
|
10:AGGREGATE [STREAMING]
| output: sum(ss_net_profit)
| group by: s_store_name
| row-size=32B cardinality=8
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: substr(store.s_zip, 1, 2) = substr(substr(ca_zip, 1, 5), 1, 2)
| row-size=65B cardinality=84.40K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: substr(substr(ca_zip, 1, 5), 1, 2)
| | runtime filters: RF000 <- substr(substr(ca_zip, 1, 5), 1, 2)
| |
| 17:EXCHANGE [BROADCAST]
| |
| 07:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
| | hash predicates: substr(ca_zip, 1, 5) = substr(ca_zip, 1, 5)
| | row-size=20B cardinality=396
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: substr(ca_zip, 1, 5)
| | | runtime filters: RF004 <- substr(ca_zip, 1, 5)
| | |
| | 15:AGGREGATE [FINALIZE]
| | | output: count:merge(*)
| | | group by: substr(ca_zip, 1, 5)
| | | having: count(*) > 10
| | | row-size=20B cardinality=396
| | |
| | 14:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
| | |
| | 05:AGGREGATE [STREAMING]
| | | output: count(*)
| | | group by: substr(ca_zip, 1, 5)
| | | row-size=20B cardinality=3.96K
| | |
| | 04:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: customer_address.ca_address_sk = customer.c_current_addr_sk
| | | row-size=38B cardinality=51.30K
| | |
| | |--JOIN BUILD
| | | | join-table-id=02 plan-id=03 cohort-id=03
| | | | build expressions: customer.c_current_addr_sk
| | | | runtime filters: RF006 <- customer.c_current_addr_sk
| | | |
| | | 13:EXCHANGE [BROADCAST]
| | | |
| | | 03:SCAN HDFS [tpcds.customer]
| | | HDFS partitions=1/1 files=1 size=12.60MB
| | | predicates: c_preferred_cust_flag = 'Y'
| | | row-size=17B cardinality=50.00K
| | |
| | 02:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | runtime filters: RF006 -> customer_address.ca_address_sk
| | row-size=21B cardinality=50.00K
| |
| 16:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
| |
| 06:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: substr(ca_zip, 1, 5) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', '32200', '81427', '19053', '77471', '36610', '99823', '43276', '41249', '48584', '83550', '82276', '18842', '78890', '14090', '38123', '40936', '34425', '19850', '43286', '80072', '79188', '54191', '11395', '50497', '84861', '90733', '21068', '57666', '37119', '25004', '57835', '70067', '62878', '95806', '19303', '18840', '19124', '29785', '16737', '16022', '49613', '89977', '68310', '60069', '98360', '48649', '39050', '41793', '25002', '27413', '39736', '47208', '16515', '94808', '57648', '15009', '80015', '42961', '63982', '21744', '71853', '81087', '67468', '34175', '64008', '20261', '11201', '51799', '48043', '45645', '61163', '48375', '36447', '57042', '21218', '41100', '89951', '22745', '35851', '83326', '61125', '78298', '80752', '49858', '52940', '96976', '63792', '11376', '53582', '18717', '90226', '50530', '94203', '99447', '27670', '96577', '57856', '56372', '16165', '23427', '54561', '28806', '44439', '22926', '30123', '61451', '92397', '56979', '92309', '70873', '13355', '21801', '46346', '37562', '56458', '28286', '47306', '99555', '69399', '26234', '47546', '49661', '88601', '35943', '39936', '25632', '24611', '44166', '56648', '30379', '59785', '11110', '14329', '93815', '52226', '71381', '13842', '25612', '63294', '14664', '21077', '82626', '18799', '60915', '81020', '56447', '76619', '11433', '13414', '42548', '92713', '70467', '30884', '47484', '16072', '38936', '13036', '88376', '45539', '35901', '19506', '65690', '73957', '71850', '49231', '14276', '20005', '18384', '76615', '11635', '38177', '55607', '41369', '95447', '58581', '58149', '91946', '33790', '76232', '75692', '95464', '22246', '51061', '56692', '53121', '77209', '15482', '10688', '14868', '45907', '73520', '72666', '25734', '17959', '24677', '66446', '94627', '53535', '15560', '41967', '69297', '11929', '59403', '33283', '52232', '57350', '43933', '40921', '36635', '10827', '71286', '19736', '80619', '25251', '95042', '15526', '36496', '55854', '49124', '81980', '35375', '49157', '63512', '28944', '14946', '36503', '54010', '18767', '23969', '43905', '66979', '33113', '21286', '58471', '59080', '13395', '79144', '70373', '67031', '38360', '26705', '50906', '52406', '26066', '73146', '15884', '31897', '30045', '61068', '45550', '92454', '13376', '14354', '19770', '22928', '97790', '50723', '46081', '30202', '14410', '20223', '88500', '67298', '13261', '14172', '81410', '93578', '83583', '46047', '94167', '82564', '21156', '15799', '86709', '37931', '74703', '83103', '23054', '70470', '72008', '49247', '91911', '69998', '20961', '70070', '63197', '54853', '88191', '91830', '49521', '19454', '81450', '89091', '62378', '25683', '61869', '51744', '36580', '85778', '36871', '48121', '28810', '83712', '45486', '67393', '26935', '42393', '20132', '55349', '86057', '21309', '80218', '10094', '11357', '48819', '39734', '40758', '30432', '21204', '29467', '30214', '61024', '55307', '74621', '11622', '68908', '33032', '52868', '99194', '99900', '84936', '69036', '99149', '45013', '32895', '59004', '32322', '14933', '32936', '33562', '72550', '27385', '58049', '58200', '16808', '21360', '32961', '18586', '79307', '15492')
| runtime filters: RF004 -> substr(ca_zip, 1, 5)
| row-size=17B cardinality=5.00K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| row-size=45B cardinality=84.40K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: store.s_store_sk
| | runtime filters: RF002 <- store.s_store_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> substr(store.s_zip, 1, 2)
| row-size=37B cardinality=12
|
00:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2452276, ss_sold_date_sk <= 2452366
HDFS partitions=90/1824 files=90 size=10.32MB
runtime filters: RF002 -> store_sales.ss_store_sk
row-size=8B cardinality=84.40K
====
# TPCDS-Q13
select avg(ss_quantity)
,avg(ss_ext_sales_price)
,avg(ss_ext_wholesale_cost)
,sum(ss_ext_wholesale_cost)
from store_sales
,store
,customer_demographics
,household_demographics
,customer_address
,date_dim
where s_store_sk = ss_store_sk
and ss_sold_date_sk = d_date_sk and d_year = 2001
and((ss_hdemo_sk=hd_demo_sk
and cd_demo_sk = ss_cdemo_sk
and cd_marital_status = 'M'
and cd_education_status = 'Advanced Degree'
and ss_sales_price between 100.00 and 150.00
and hd_dep_count = 3
)or
(ss_hdemo_sk=hd_demo_sk
and cd_demo_sk = ss_cdemo_sk
and cd_marital_status = 'S'
and cd_education_status = 'College'
and ss_sales_price between 50.00 and 100.00
and hd_dep_count = 1
) or
(ss_hdemo_sk=hd_demo_sk
and cd_demo_sk = ss_cdemo_sk
and cd_marital_status = 'W'
and cd_education_status = '2 yr Degree'
and ss_sales_price between 150.00 and 200.00
and hd_dep_count = 1
))
and((ss_addr_sk = ca_address_sk
and ca_country = 'United States'
and ca_state in ('TX', 'OH', 'TX')
and ss_net_profit between 100 and 200
) or
(ss_addr_sk = ca_address_sk
and ca_country = 'United States'
and ca_state in ('OR', 'NM', 'KY')
and ss_net_profit between 150 and 300
) or
(ss_addr_sk = ca_address_sk
and ca_country = 'United States'
and ca_state in ('VA', 'TX', 'MS')
and ss_net_profit between 50 and 250
))
---- PLAN
Max Per-Host Resource Reservation: Memory=45.01MB Threads=7
Per-Host Resource Estimates: Memory=461MB
PLAN-ROOT SINK
|
11:AGGREGATE [FINALIZE]
| output: avg(ss_quantity), avg(ss_ext_sales_price), avg(ss_ext_wholesale_cost), sum(ss_ext_wholesale_cost)
| row-size=40B cardinality=1
|
10:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=142B cardinality=2.55K
|
|--01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
09:HASH JOIN [INNER JOIN]
| hash predicates: cd_demo_sk = ss_cdemo_sk
| other predicates: cd_education_status = 'Advanced Degree' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR hd_dep_count = 1, cd_marital_status = 'M' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR hd_dep_count = 1, hd_dep_count = 3 OR cd_education_status = 'College' OR hd_dep_count = 1, cd_education_status = 'Advanced Degree' OR hd_dep_count = 1 OR hd_dep_count = 1, hd_dep_count IN (3, 1) OR cd_education_status = '2 yr Degree', hd_dep_count = 3 OR cd_education_status = 'College' OR cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR hd_dep_count = 1 OR cd_education_status = '2 yr Degree', cd_marital_status = 'M' OR hd_dep_count = 1 OR hd_dep_count = 1, hd_dep_count = 3 OR cd_marital_status = 'S' OR hd_dep_count = 1, hd_dep_count IN (3, 1) OR cd_marital_status = 'W', hd_dep_count = 3 OR cd_education_status = 'College' OR cd_marital_status = 'W', cd_marital_status = 'M' OR hd_dep_count = 1 OR cd_education_status = '2 yr Degree', hd_dep_count = 3 OR cd_marital_status = 'S' OR cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR hd_dep_count = 1 OR cd_marital_status = 'W', cd_marital_status = 'M' OR hd_dep_count = 1 OR cd_marital_status = 'W', hd_dep_count = 3 OR cd_marital_status = 'S' OR cd_marital_status = 'W', cd_marital_status = 'M' OR hd_dep_count = 1 OR ss_sales_price <= 200.00, cd_marital_status = 'M' OR hd_dep_count = 1 OR ss_sales_price >= 150.00, cd_marital_status = 'M' OR ss_sales_price <= 100.00 OR hd_dep_count = 1, cd_marital_status = 'M' OR ss_sales_price <= 100.00 OR ss_sales_price <= 200.00, cd_marital_status = 'M' OR ss_sales_price <= 100.00 OR ss_sales_price >= 150.00, cd_marital_status = 'M' OR ss_sales_price >= 50.00 OR hd_dep_count = 1, cd_marital_status = 'M' OR ss_sales_price >= 50.00 OR ss_sales_price <= 200.00, cd_marital_status = 'M' OR ss_sales_price >= 50.00 OR ss_sales_price >= 150.00, hd_dep_count = 3 OR cd_marital_status = 'S' OR ss_sales_price <= 200.00, hd_dep_count = 3 OR cd_marital_status = 'S' OR ss_sales_price >= 150.00, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR cd_marital_status = 'W', hd_dep_count = 3 OR ss_sales_price >= 50.00 OR cd_marital_status = 'W', ss_sales_price <= 150.00 OR cd_marital_status = 'S' OR hd_dep_count = 1, ss_sales_price <= 150.00 OR cd_marital_status = 'S' OR ss_sales_price <= 200.00, ss_sales_price <= 150.00 OR cd_marital_status = 'S' OR ss_sales_price >= 150.00, ss_sales_price <= 150.00 OR hd_dep_count = 1 OR cd_marital_status = 'W', ss_sales_price <= 150.00 OR ss_sales_price <= 100.00 OR cd_marital_status = 'W', ss_sales_price <= 150.00 OR ss_sales_price >= 50.00 OR cd_marital_status = 'W', ss_sales_price >= 100.00 OR cd_marital_status = 'S' OR hd_dep_count = 1, ss_sales_price >= 100.00 OR cd_marital_status = 'S' OR ss_sales_price <= 200.00, ss_sales_price >= 100.00 OR cd_marital_status = 'S' OR ss_sales_price >= 150.00, ss_sales_price >= 100.00 OR hd_dep_count = 1 OR cd_marital_status = 'W', ss_sales_price >= 100.00 OR ss_sales_price <= 100.00 OR cd_marital_status = 'W', ss_sales_price >= 100.00 OR ss_sales_price >= 50.00 OR cd_marital_status = 'W', cd_marital_status = 'M' OR ss_sales_price <= 100.00 OR cd_marital_status = 'W', cd_marital_status = 'M' OR ss_sales_price >= 50.00 OR cd_marital_status = 'W', ss_sales_price <= 150.00 OR cd_marital_status = 'S' OR cd_marital_status = 'W', ss_sales_price >= 100.00 OR cd_marital_status = 'S' OR cd_marital_status = 'W', hd_dep_count = 3 OR cd_education_status = 'College' OR ss_sales_price <= 200.00, hd_dep_count = 3 OR cd_education_status = 'College' OR ss_sales_price >= 150.00, ss_sales_price <= 150.00 OR cd_education_status = 'College' OR hd_dep_count = 1, ss_sales_price <= 150.00 OR cd_education_status = 'College' OR ss_sales_price <= 200.00, ss_sales_price <= 150.00 OR cd_education_status = 'College' OR ss_sales_price >= 150.00, ss_sales_price >= 100.00 OR cd_education_status = 'College' OR hd_dep_count = 1, ss_sales_price >= 100.00 OR cd_education_status = 'College' OR ss_sales_price <= 200.00, ss_sales_price >= 100.00 OR cd_education_status = 'College' OR ss_sales_price >= 150.00, ss_sales_price <= 150.00 OR cd_education_status = 'College' OR cd_marital_status = 'W', ss_sales_price >= 100.00 OR cd_education_status = 'College' OR cd_marital_status = 'W', hd_dep_count = 3 OR ss_sales_price <= 100.00 OR cd_education_status = '2 yr Degree', hd_dep_count = 3 OR ss_sales_price >= 50.00 OR cd_education_status = '2 yr Degree', ss_sales_price <= 150.00 OR hd_dep_count = 1 OR cd_education_status = '2 yr Degree', ss_sales_price <= 150.00 OR ss_sales_price <= 100.00 OR cd_education_status = '2 yr Degree', ss_sales_price <= 150.00 OR ss_sales_price >= 50.00 OR cd_education_status = '2 yr Degree', ss_sales_price >= 100.00 OR hd_dep_count = 1 OR cd_education_status = '2 yr Degree', ss_sales_price >= 100.00 OR ss_sales_price <= 100.00 OR cd_education_status = '2 yr Degree', ss_sales_price >= 100.00 OR ss_sales_price >= 50.00 OR cd_education_status = '2 yr Degree', cd_marital_status = 'M' OR ss_sales_price <= 100.00 OR cd_education_status = '2 yr Degree', cd_marital_status = 'M' OR ss_sales_price >= 50.00 OR cd_education_status = '2 yr Degree', ss_sales_price <= 150.00 OR cd_marital_status = 'S' OR cd_education_status = '2 yr Degree', ss_sales_price >= 100.00 OR cd_marital_status = 'S' OR cd_education_status = '2 yr Degree', cd_marital_status = 'M' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR ss_sales_price <= 200.00, cd_marital_status = 'M' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR ss_sales_price >= 150.00, cd_education_status = 'Advanced Degree' OR hd_dep_count = 1 OR ss_sales_price <= 200.00, cd_education_status = 'Advanced Degree' OR hd_dep_count = 1 OR ss_sales_price >= 150.00, cd_education_status = 'Advanced Degree' OR ss_sales_price <= 100.00 OR hd_dep_count = 1, cd_education_status = 'Advanced Degree' OR ss_sales_price <= 100.00 OR ss_sales_price <= 200.00, cd_education_status = 'Advanced Degree' OR ss_sales_price <= 100.00 OR ss_sales_price >= 150.00, cd_education_status = 'Advanced Degree' OR ss_sales_price >= 50.00 OR hd_dep_count = 1, cd_education_status = 'Advanced Degree' OR ss_sales_price >= 50.00 OR ss_sales_price <= 200.00, cd_education_status = 'Advanced Degree' OR ss_sales_price >= 50.00 OR ss_sales_price >= 150.00, cd_education_status = 'Advanced Degree' OR ss_sales_price <= 100.00 OR cd_marital_status = 'W', cd_education_status = 'Advanced Degree' OR ss_sales_price >= 50.00 OR cd_marital_status = 'W', ss_sales_price <= 150.00 OR cd_education_status = 'College' OR cd_education_status = '2 yr Degree', ss_sales_price >= 100.00 OR cd_education_status = 'College' OR cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR ss_sales_price <= 100.00 OR cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR ss_sales_price >= 50.00 OR cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR ss_sales_price <= 200.00, cd_education_status = 'Advanced Degree' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR ss_sales_price >= 150.00
| runtime filters: RF002 <- ss_cdemo_sk
| row-size=138B cardinality=2.55K
|
|--08:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = hd_demo_sk
| | other predicates: hd_dep_count IN (3, 1) OR ss_sales_price <= 200.00, hd_dep_count IN (3, 1) OR ss_sales_price >= 150.00, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR hd_dep_count = 1, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR ss_sales_price <= 200.00, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR ss_sales_price >= 150.00, hd_dep_count = 3 OR ss_sales_price >= 50.00 OR hd_dep_count = 1, hd_dep_count = 3 OR ss_sales_price >= 50.00 OR ss_sales_price <= 200.00, hd_dep_count = 3 OR ss_sales_price >= 50.00 OR ss_sales_price >= 150.00, ss_sales_price <= 150.00 OR hd_dep_count = 1 OR hd_dep_count = 1, ss_sales_price <= 150.00 OR hd_dep_count = 1 OR ss_sales_price <= 200.00, ss_sales_price <= 150.00 OR hd_dep_count = 1 OR ss_sales_price >= 150.00, ss_sales_price <= 150.00 OR ss_sales_price <= 100.00 OR hd_dep_count = 1, ss_sales_price <= 150.00 OR ss_sales_price >= 50.00 OR hd_dep_count = 1, ss_sales_price >= 100.00 OR hd_dep_count = 1 OR hd_dep_count = 1, ss_sales_price >= 100.00 OR hd_dep_count = 1 OR ss_sales_price <= 200.00, ss_sales_price >= 100.00 OR hd_dep_count = 1 OR ss_sales_price >= 150.00, ss_sales_price >= 100.00 OR ss_sales_price <= 100.00 OR hd_dep_count = 1, ss_sales_price >= 100.00 OR ss_sales_price >= 50.00 OR hd_dep_count = 1
| | runtime filters: RF004 <- hd_demo_sk
| | row-size=99B cardinality=3.05K
| |
| |--03:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: hd_dep_count IN (3, 1, 1)
| | row-size=8B cardinality=2.16K
| |
| 07:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=91B cardinality=10.43K
| |
| |--05:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 2001
| | row-size=8B cardinality=373
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: ss_addr_sk = ca_address_sk
| | other predicates: ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit <= 300 OR ss_net_profit <= 250, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit <= 300 OR ss_net_profit >= 50, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit >= 150 OR ss_net_profit <= 250, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit >= 150 OR ss_net_profit >= 50, ss_net_profit <= 200 OR ca_state IN ('OR', 'NM', 'KY') OR ss_net_profit <= 250, ss_net_profit <= 200 OR ca_state IN ('OR', 'NM', 'KY') OR ss_net_profit >= 50, ss_net_profit <= 200 OR ss_net_profit <= 300 OR ca_state IN ('VA', 'TX', 'MS'), ss_net_profit <= 200 OR ss_net_profit >= 150 OR ca_state IN ('VA', 'TX', 'MS'), ss_net_profit >= 100 OR ca_state IN ('OR', 'NM', 'KY') OR ss_net_profit <= 250, ss_net_profit >= 100 OR ca_state IN ('OR', 'NM', 'KY') OR ss_net_profit >= 50, ss_net_profit >= 100 OR ss_net_profit <= 300 OR ca_state IN ('VA', 'TX', 'MS'), ss_net_profit >= 100 OR ss_net_profit >= 150 OR ca_state IN ('VA', 'TX', 'MS'), ca_state IN ('TX', 'OH', 'TX', 'OR', 'NM', 'KY') OR ss_net_profit <= 250, ca_state IN ('TX', 'OH', 'TX', 'OR', 'NM', 'KY') OR ss_net_profit >= 50, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit <= 300 OR ca_state IN ('VA', 'TX', 'MS'), ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit >= 150 OR ca_state IN ('VA', 'TX', 'MS'), ss_net_profit <= 200 OR ca_state IN ('OR', 'NM', 'KY') OR ca_state IN ('VA', 'TX', 'MS'), ss_net_profit >= 100 OR ca_state IN ('OR', 'NM', 'KY') OR ca_state IN ('VA', 'TX', 'MS')
| | runtime filters: RF008 <- ca_address_sk
| | row-size=83B cardinality=50.98K
| |
| |--04:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_state IN ('TX', 'OH', 'TX', 'OR', 'NM', 'KY', 'VA', 'TX', 'MS'), ca_country = 'United States'
| | row-size=43B cardinality=8.82K
| |
| 00:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_net_profit <= 200 OR ss_net_profit <= 300 OR ss_net_profit <= 250, ss_net_profit <= 200 OR ss_net_profit <= 300 OR ss_net_profit >= 50, ss_net_profit <= 200 OR ss_net_profit >= 150 OR ss_net_profit <= 250, ss_net_profit <= 200 OR ss_net_profit >= 150 OR ss_net_profit >= 50, ss_net_profit >= 100 OR ss_net_profit <= 300 OR ss_net_profit <= 250, ss_net_profit >= 100 OR ss_net_profit <= 300 OR ss_net_profit >= 50, ss_net_profit >= 100 OR ss_net_profit >= 150 OR ss_net_profit <= 250, ss_net_profit >= 100 OR ss_net_profit >= 150 OR ss_net_profit >= 50, ss_sales_price <= 150.00 OR ss_sales_price <= 100.00 OR ss_sales_price <= 200.00, ss_sales_price <= 150.00 OR ss_sales_price <= 100.00 OR ss_sales_price >= 150.00, ss_sales_price <= 150.00 OR ss_sales_price >= 50.00 OR ss_sales_price <= 200.00, ss_sales_price <= 150.00 OR ss_sales_price >= 50.00 OR ss_sales_price >= 150.00, ss_sales_price >= 100.00 OR ss_sales_price <= 100.00 OR ss_sales_price <= 200.00, ss_sales_price >= 100.00 OR ss_sales_price <= 100.00 OR ss_sales_price >= 150.00, ss_sales_price >= 100.00 OR ss_sales_price >= 50.00 OR ss_sales_price <= 200.00, ss_sales_price >= 100.00 OR ss_sales_price >= 50.00 OR ss_sales_price >= 150.00
| runtime filters: RF000 -> ss_store_sk, RF004 -> ss_hdemo_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_addr_sk
| row-size=40B cardinality=288.04K
|
02:SCAN HDFS [tpcds.customer_demographics]
HDFS partitions=1/1 files=1 size=76.92MB
predicates: cd_marital_status = 'M' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR cd_marital_status = 'W' AND cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR cd_marital_status = 'W' AND cd_education_status = '2 yr Degree'
runtime filters: RF002 -> cd_demo_sk
row-size=39B cardinality=181.75K
====
# TPCDS-Q19
select
i_brand_id brand_id,
i_brand brand,
i_manufact_id,
i_manufact,
sum(ss_ext_sales_price) ext_price
from
date_dim,
store_sales,
item,
customer,
customer_address,
store
where
d_date_sk = ss_sold_date_sk
and ss_item_sk = i_item_sk
and i_manager_id = 7
and d_moy = 11
and d_year = 1999
and ss_customer_sk = c_customer_sk
and c_current_addr_sk = ca_address_sk
and substr(ca_zip, 1, 5) <> substr(s_zip, 1, 5)
and ss_store_sk = s_store_sk
and ss_sold_date_sk between 2451484 and 2451513
group by
i_brand,
i_brand_id,
i_manufact_id,
i_manufact
order by
ext_price desc,
i_brand,
i_brand_id,
i_manufact_id,
i_manufact
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=43.32MB Threads=7
Per-Host Resource Estimates: Memory=331MB
PLAN-ROOT SINK
|
12:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
| row-size=76B cardinality=24
|
11:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: i_brand, i_brand_id, i_manufact_id, i_manufact
| row-size=76B cardinality=24
|
10:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| other predicates: substr(ca_zip, 1, 5) != substr(s_zip, 1, 5)
| runtime filters: RF000 <- s_store_sk
| row-size=158B cardinality=24
|
|--05:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=21B cardinality=12
|
09:HASH JOIN [INNER JOIN]
| hash predicates: ca_address_sk = c_current_addr_sk
| runtime filters: RF002 <- c_current_addr_sk
| row-size=137B cardinality=24
|
|--08:HASH JOIN [INNER JOIN]
| | hash predicates: c_customer_sk = ss_customer_sk
| | runtime filters: RF004 <- ss_customer_sk
| | row-size=116B cardinality=24
| |
| |--07:HASH JOIN [INNER JOIN]
| | | hash predicates: ss_sold_date_sk = d_date_sk
| | | runtime filters: RF006 <- d_date_sk
| | | row-size=108B cardinality=24
| | |
| | |--00:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year = 1999, d_moy = 11, tpcds.date_dim.d_date_sk <= 2451513, tpcds.date_dim.d_date_sk >= 2451484
| | | row-size=12B cardinality=50
| | |
| | 06:HASH JOIN [INNER JOIN]
| | | hash predicates: ss_item_sk = i_item_sk
| | | runtime filters: RF008 <- i_item_sk
| | | row-size=96B cardinality=873
| | |
| | |--02:SCAN HDFS [tpcds.item]
| | | HDFS partitions=1/1 files=1 size=4.82MB
| | | predicates: i_manager_id = 7
| | | row-size=72B cardinality=182
| | |
| | 01:SCAN HDFS [tpcds.store_sales]
| | partition predicates: ss_sold_date_sk >= 2451484, ss_sold_date_sk <= 2451513
| | HDFS partitions=30/1824 files=30 size=10.55MB
| | runtime filters: RF000 -> ss_store_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_item_sk
| | row-size=24B cardinality=86.28K
| |
| 03:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF004 -> c_customer_sk
| row-size=8B cardinality=100.00K
|
04:SCAN HDFS [tpcds.customer_address]
HDFS partitions=1/1 files=1 size=5.25MB
runtime filters: RF002 -> ca_address_sk
row-size=21B cardinality=50.00K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=54.13MB Threads=16
Per-Host Resource Estimates: Memory=360MB
PLAN-ROOT SINK
|
22:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
| limit: 100
|
12:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
| row-size=76B cardinality=24
|
21:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_brand, i_brand_id, i_manufact_id, i_manufact
| row-size=76B cardinality=24
|
20:EXCHANGE [HASH(i_brand,i_brand_id,i_manufact_id,i_manufact)]
|
11:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_brand, i_brand_id, i_manufact_id, i_manufact
| row-size=76B cardinality=24
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| other predicates: substr(ca_zip, 1, 5) != substr(s_zip, 1, 5)
| runtime filters: RF000 <- s_store_sk
| row-size=158B cardinality=24
|
|--19:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=21B cardinality=12
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: c_current_addr_sk = ca_address_sk
| runtime filters: RF002 <- ca_address_sk
| row-size=137B cardinality=24
|
|--18:EXCHANGE [HASH(ca_address_sk)]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=21B cardinality=50.00K
|
17:EXCHANGE [HASH(c_current_addr_sk)]
|
08:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF004 <- c_customer_sk
| row-size=116B cardinality=24
|
|--16:EXCHANGE [HASH(c_customer_sk)]
| |
| 03:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF002 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
15:EXCHANGE [HASH(ss_customer_sk)]
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=108B cardinality=24
|
|--14:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1999, d_moy = 11, tpcds.date_dim.d_date_sk <= 2451513, tpcds.date_dim.d_date_sk >= 2451484
| row-size=12B cardinality=50
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF008 <- i_item_sk
| row-size=96B cardinality=873
|
|--13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_manager_id = 7
| row-size=72B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451484, ss_sold_date_sk <= 2451513
HDFS partitions=30/1824 files=30 size=10.55MB
runtime filters: RF000 -> ss_store_sk, RF004 -> ss_customer_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_item_sk
row-size=24B cardinality=86.28K
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=72.26MB Threads=21
Per-Host Resource Estimates: Memory=203MB
PLAN-ROOT SINK
|
22:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
| limit: 100
|
12:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
| row-size=76B cardinality=24
|
21:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_brand, i_brand_id, i_manufact_id, i_manufact
| row-size=76B cardinality=24
|
20:EXCHANGE [HASH(i_brand,i_brand_id,i_manufact_id,i_manufact)]
|
11:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_brand, i_brand_id, i_manufact_id, i_manufact
| row-size=76B cardinality=24
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| other predicates: substr(ca_zip, 1, 5) != substr(s_zip, 1, 5)
| row-size=158B cardinality=24
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF000 <- s_store_sk
| |
| 19:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=21B cardinality=12
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: c_current_addr_sk = ca_address_sk
| row-size=137B cardinality=24
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: ca_address_sk
| | runtime filters: RF002 <- ca_address_sk
| |
| 18:EXCHANGE [HASH(ca_address_sk)]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=21B cardinality=50.00K
|
17:EXCHANGE [HASH(c_current_addr_sk)]
|
08:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=116B cardinality=24
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF004 <- c_customer_sk
| |
| 16:EXCHANGE [HASH(c_customer_sk)]
| |
| 03:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF002 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
15:EXCHANGE [HASH(ss_customer_sk)]
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=108B cardinality=24
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF006 <- d_date_sk
| |
| 14:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1999, d_moy = 11, tpcds.date_dim.d_date_sk <= 2451513, tpcds.date_dim.d_date_sk >= 2451484
| row-size=12B cardinality=50
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=96B cardinality=873
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF008 <- i_item_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_manager_id = 7
| row-size=72B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451484, ss_sold_date_sk <= 2451513
HDFS partitions=30/1824 files=30 size=10.55MB
runtime filters: RF000 -> ss_store_sk, RF004 -> ss_customer_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_item_sk
row-size=24B cardinality=86.28K
====
# TPCDS-Q27
select
i_item_id,
s_state,
avg(ss_quantity) agg1,
avg(ss_list_price) agg2,
avg(ss_coupon_amt) agg3,
avg(ss_sales_price) agg4
from
store_sales,
customer_demographics,
date_dim,
store,
item
where
ss_sold_date_sk = d_date_sk
and ss_item_sk = i_item_sk
and ss_store_sk = s_store_sk
and ss_cdemo_sk = cd_demo_sk
and cd_gender = 'F'
and cd_marital_status = 'W'
and cd_education_status = 'Primary'
and d_year = 1998
and s_state in ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
group by
i_item_id,
s_state
order by
i_item_id,
s_state
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=50.32MB Threads=6
Per-Host Resource Estimates: Memory=434MB
PLAN-ROOT SINK
|
10:TOP-N [LIMIT=100]
| order by: i_item_id ASC, s_state ASC
| row-size=74B cardinality=100
|
09:AGGREGATE [FINALIZE]
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, s_state
| row-size=74B cardinality=8.85K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=150B cardinality=263.34K
|
|--04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=114B cardinality=263.34K
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
| row-size=18B cardinality=12
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=44B cardinality=589.03K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=54.26MB Threads=12
Per-Host Resource Estimates: Memory=460MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_item_id ASC, s_state ASC
| limit: 100
|
10:TOP-N [LIMIT=100]
| order by: i_item_id ASC, s_state ASC
| row-size=74B cardinality=100
|
16:AGGREGATE [FINALIZE]
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: i_item_id, s_state
| row-size=74B cardinality=8.85K
|
15:EXCHANGE [HASH(i_item_id,s_state)]
|
09:AGGREGATE [STREAMING]
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, s_state
| row-size=74B cardinality=8.85K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=150B cardinality=263.34K
|
|--14:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=114B cardinality=263.34K
|
|--13:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
| row-size=18B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=44B cardinality=589.03K
|
|--11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=84.51MB Threads=13
Per-Host Resource Estimates: Memory=260MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_item_id ASC, s_state ASC
| limit: 100
|
10:TOP-N [LIMIT=100]
| order by: i_item_id ASC, s_state ASC
| row-size=74B cardinality=100
|
16:AGGREGATE [FINALIZE]
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: i_item_id, s_state
| row-size=74B cardinality=8.85K
|
15:EXCHANGE [HASH(i_item_id,s_state)]
|
09:AGGREGATE [STREAMING]
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, s_state
| row-size=74B cardinality=8.85K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=150B cardinality=263.34K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF000 <- i_item_sk
| |
| 14:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=114B cardinality=263.34K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF002 <- s_store_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
| row-size=18B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: cd_demo_sk
| | runtime filters: RF004 <- cd_demo_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=44B cardinality=589.03K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF006 <- d_date_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
====
# TPCDS-Q34
select
c_last_name,
c_first_name,
c_salutation,
c_preferred_cust_flag,
ss_ticket_number,
cnt
from
(select
ss_ticket_number,
ss_customer_sk,
count(*) cnt
from
store_sales,
date_dim,
store,
household_demographics
where
store_sales.ss_sold_date_sk = date_dim.d_date_sk
and store_sales.ss_store_sk = store.s_store_sk
and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
and (date_dim.d_dom between 1 and 3
or date_dim.d_dom between 25 and 28)
and (household_demographics.hd_buy_potential = '>10000'
or household_demographics.hd_buy_potential = 'unknown')
and household_demographics.hd_vehicle_count > 0
and (case when household_demographics.hd_vehicle_count > 0 then household_demographics.hd_dep_count / household_demographics.hd_vehicle_count else null end) > 1.2
and date_dim.d_year in (1998, 1998 + 1, 1998 + 2)
and store.s_county in ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
group by
ss_ticket_number,
ss_customer_sk
) dn,
customer
where
ss_customer_sk = c_customer_sk
and cnt between 15 and 20
order by
c_last_name,
c_first_name,
c_salutation,
c_preferred_cust_flag desc
limit 100000
---- PLAN
Max Per-Host Resource Reservation: Memory=34.07MB Threads=6
Per-Host Resource Estimates: Memory=298MB
PLAN-ROOT SINK
|
10:TOP-N [LIMIT=100000]
| order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
| row-size=80B cardinality=3.15K
|
09:HASH JOIN [INNER JOIN]
| hash predicates: c_customer_sk = ss_customer_sk
| runtime filters: RF000 <- ss_customer_sk
| row-size=88B cardinality=3.15K
|
|--07:AGGREGATE [FINALIZE]
| | output: count(*)
| | group by: ss_ticket_number, ss_customer_sk
| | having: count(*) <= 20, count(*) >= 15
| | row-size=20B cardinality=3.15K
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_store_sk = store.s_store_sk
| | runtime filters: RF002 <- store.s_store_sk
| | row-size=101B cardinality=31.53K
| |
| |--02:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
| | row-size=33B cardinality=12
| |
| 05:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF004 <- date_dim.d_date_sk
| | row-size=68B cardinality=31.53K
| |
| |--01:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: date_dim.d_year IN (1998, 1999, 2000), (date_dim.d_dom >= 1 AND date_dim.d_dom <= 3 OR date_dim.d_dom >= 25 AND date_dim.d_dom <= 28)
| | row-size=12B cardinality=354
| |
| 04:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| | runtime filters: RF006 <- household_demographics.hd_demo_sk
| | row-size=56B cardinality=162.45K
| |
| |--03:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), (CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END) > 1.2
| | row-size=32B cardinality=416
| |
| 00:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
| row-size=24B cardinality=2.88M
|
08:SCAN HDFS [tpcds.customer]
HDFS partitions=1/1 files=1 size=12.60MB
runtime filters: RF000 -> c_customer_sk
row-size=68B cardinality=100.00K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=47.51MB Threads=13
Per-Host Resource Estimates: Memory=335MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
| limit: 100000
|
10:TOP-N [LIMIT=100000]
| order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
| row-size=80B cardinality=3.15K
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF000 <- c_customer_sk
| row-size=88B cardinality=3.15K
|
|--17:EXCHANGE [HASH(c_customer_sk)]
| |
| 08:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=68B cardinality=100.00K
|
16:EXCHANGE [HASH(ss_customer_sk)]
|
15:AGGREGATE [FINALIZE]
| output: count:merge(*)
| group by: ss_ticket_number, ss_customer_sk
| having: count(*) <= 20, count(*) >= 15
| row-size=20B cardinality=3.15K
|
14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
|
07:AGGREGATE [STREAMING]
| output: count(*)
| group by: ss_ticket_number, ss_customer_sk
| row-size=20B cardinality=31.53K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF002 <- store.s_store_sk
| row-size=101B cardinality=31.53K
|
|--13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
| row-size=33B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF004 <- date_dim.d_date_sk
| row-size=68B cardinality=31.53K
|
|--12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: date_dim.d_year IN (1998, 1999, 2000), (date_dim.d_dom >= 1 AND date_dim.d_dom <= 3 OR date_dim.d_dom >= 25 AND date_dim.d_dom <= 28)
| row-size=12B cardinality=354
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF006 <- household_demographics.hd_demo_sk
| row-size=56B cardinality=162.45K
|
|--11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), (CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END) > 1.2
| row-size=32B cardinality=416
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
row-size=24B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=68.26MB Threads=14
Per-Host Resource Estimates: Memory=188MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
| limit: 100000
|
10:TOP-N [LIMIT=100000]
| order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
| row-size=80B cardinality=3.15K
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=88B cardinality=3.15K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF000 <- c_customer_sk
| |
| 17:EXCHANGE [HASH(c_customer_sk)]
| |
| 08:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=68B cardinality=100.00K
|
16:EXCHANGE [HASH(ss_customer_sk)]
|
15:AGGREGATE [FINALIZE]
| output: count:merge(*)
| group by: ss_ticket_number, ss_customer_sk
| having: count(*) <= 20, count(*) >= 15
| row-size=20B cardinality=3.15K
|
14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
|
07:AGGREGATE [STREAMING]
| output: count(*)
| group by: ss_ticket_number, ss_customer_sk
| row-size=20B cardinality=31.53K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| row-size=101B cardinality=31.53K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: store.s_store_sk
| | runtime filters: RF002 <- store.s_store_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
| row-size=33B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| row-size=68B cardinality=31.53K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: date_dim.d_date_sk
| | runtime filters: RF004 <- date_dim.d_date_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: date_dim.d_year IN (1998, 1999, 2000), (date_dim.d_dom >= 1 AND date_dim.d_dom <= 3 OR date_dim.d_dom >= 25 AND date_dim.d_dom <= 28)
| row-size=12B cardinality=354
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| row-size=56B cardinality=162.45K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: household_demographics.hd_demo_sk
| | runtime filters: RF006 <- household_demographics.hd_demo_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), (CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END) > 1.2
| row-size=32B cardinality=416
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
row-size=24B cardinality=2.88M
====
# TPCDS-Q42
select
dt.d_year,
item.i_category_id,
item.i_category,
sum(ss_ext_sales_price)
from
date_dim dt,
store_sales,
item
where
dt.d_date_sk = store_sales.ss_sold_date_sk
and store_sales.ss_item_sk = item.i_item_sk
and item.i_manager_id = 1
and dt.d_moy = 12
and dt.d_year = 1998
group by
dt.d_year,
item.i_category_id,
item.i_category
order by
sum(ss_ext_sales_price) desc,
dt.d_year,
item.i_category_id,
item.i_category
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
Per-Host Resource Estimates: Memory=214MB
PLAN-ROOT SINK
|
06:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
| row-size=42B cardinality=100
|
05:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_category_id, item.i_category
| row-size=42B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| runtime filters: RF000 <- dt.d_date_sk
| row-size=62B cardinality=1.73K
|
|--00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_year = 1998, dt.d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| runtime filters: RF002 <- item.i_item_sk
| row-size=50B cardinality=29.12K
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manager_id = 1
| row-size=34B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=33.81MB Threads=8
Per-Host Resource Estimates: Memory=234MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
| row-size=42B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: dt.d_year, item.i_category_id, item.i_category
| row-size=42B cardinality=1.73K
|
09:EXCHANGE [HASH(dt.d_year,item.i_category_id,item.i_category)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_category_id, item.i_category
| row-size=42B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| runtime filters: RF000 <- dt.d_date_sk
| row-size=62B cardinality=1.73K
|
|--08:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_year = 1998, dt.d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| runtime filters: RF002 <- item.i_item_sk
| row-size=50B cardinality=29.12K
|
|--07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manager_id = 1
| row-size=34B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=51.62MB Threads=9
Per-Host Resource Estimates: Memory=124MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
| row-size=42B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: dt.d_year, item.i_category_id, item.i_category
| row-size=42B cardinality=1.73K
|
09:EXCHANGE [HASH(dt.d_year,item.i_category_id,item.i_category)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_category_id, item.i_category
| row-size=42B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| row-size=62B cardinality=1.73K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: dt.d_date_sk
| | runtime filters: RF000 <- dt.d_date_sk
| |
| 08:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_year = 1998, dt.d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| row-size=50B cardinality=29.12K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: item.i_item_sk
| | runtime filters: RF002 <- item.i_item_sk
| |
| 07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manager_id = 1
| row-size=34B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q43
select
s_store_name,
s_store_id,
sum(case when (d_day_name = 'Sunday') then ss_sales_price else null end) sun_sales,
sum(case when (d_day_name = 'Monday') then ss_sales_price else null end) mon_sales,
sum(case when (d_day_name = 'Tuesday') then ss_sales_price else null end) tue_sales,
sum(case when (d_day_name = 'Wednesday') then ss_sales_price else null end) wed_sales,
sum(case when (d_day_name = 'Thursday') then ss_sales_price else null end) thu_sales,
sum(case when (d_day_name = 'Friday') then ss_sales_price else null end) fri_sales,
sum(case when (d_day_name = 'Saturday') then ss_sales_price else null end) sat_sales
from
date_dim,
store_sales,
store
where
d_date_sk = ss_sold_date_sk
and s_store_sk = ss_store_sk
and s_gmt_offset = -5
and d_year = 1998
group by
s_store_name,
s_store_id
order by
s_store_name,
s_store_id,
sun_sales,
mon_sales,
tue_sales,
wed_sales,
thu_sales,
fri_sales,
sat_sales
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=21.88MB Threads=4
Per-Host Resource Estimates: Memory=214MB
PLAN-ROOT SINK
|
06:TOP-N [LIMIT=100]
| order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END) ASC
| row-size=156B cardinality=48
|
05:AGGREGATE [FINALIZE]
| output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: s_store_name, s_store_id
| row-size=156B cardinality=48
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=91B cardinality=589.03K
|
|--02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_gmt_offset = -5
| row-size=52B cardinality=12
|
03:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=39B cardinality=589.03K
|
|--00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=27B cardinality=373
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=25.82MB Threads=8
Per-Host Resource Estimates: Memory=234MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END) ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END) ASC
| row-size=156B cardinality=48
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: s_store_name, s_store_id
| row-size=156B cardinality=48
|
09:EXCHANGE [HASH(s_store_name,s_store_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: s_store_name, s_store_id
| row-size=156B cardinality=48
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=91B cardinality=589.03K
|
|--08:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_gmt_offset = -5
| row-size=52B cardinality=12
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=39B cardinality=589.03K
|
|--07:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=27B cardinality=373
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=43.63MB Threads=9
Per-Host Resource Estimates: Memory=124MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END) ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END) ASC
| row-size=156B cardinality=48
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: s_store_name, s_store_id
| row-size=156B cardinality=48
|
09:EXCHANGE [HASH(s_store_name,s_store_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: s_store_name, s_store_id
| row-size=156B cardinality=48
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=91B cardinality=589.03K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF000 <- s_store_sk
| |
| 08:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_gmt_offset = -5
| row-size=52B cardinality=12
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=39B cardinality=589.03K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF002 <- d_date_sk
| |
| 07:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998
| row-size=27B cardinality=373
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
====
# TPCDS-Q46
select
c_last_name,
c_first_name,
ca_city,
bought_city,
ss_ticket_number,
amt,
profit
from
(select
ss_ticket_number,
ss_customer_sk,
ca_city bought_city,
sum(ss_coupon_amt) amt,
sum(ss_net_profit) profit
from
store_sales,
date_dim,
store,
household_demographics,
customer_address
where
store_sales.ss_sold_date_sk = date_dim.d_date_sk
and store_sales.ss_store_sk = store.s_store_sk
and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
and store_sales.ss_addr_sk = customer_address.ca_address_sk
and (household_demographics.hd_dep_count = 5
or household_demographics.hd_vehicle_count = 3)
and date_dim.d_dow in (6, 0)
and date_dim.d_year in (1999, 1999 + 1, 1999 + 2)
and store.s_city in ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
group by
ss_ticket_number,
ss_customer_sk,
ss_addr_sk,
ca_city
) dn,
customer,
customer_address current_addr
where
ss_customer_sk = c_customer_sk
and customer.c_current_addr_sk = current_addr.ca_address_sk
and current_addr.ca_city <> bought_city
order by
c_last_name,
c_first_name,
ca_city,
bought_city,
ss_ticket_number
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=67.06MB Threads=8
Per-Host Resource Estimates: Memory=378MB
PLAN-ROOT SINK
|
14:TOP-N [LIMIT=100]
| order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
| row-size=118B cardinality=100
|
13:HASH JOIN [INNER JOIN]
| hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
| other predicates: current_addr.ca_city != ca_city
| runtime filters: RF000 <- current_addr.ca_address_sk
| row-size=138B cardinality=230.45K
|
|--11:SCAN HDFS [tpcds.customer_address current_addr]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
12:HASH JOIN [INNER JOIN]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=113B cardinality=230.45K
|
|--10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> customer.c_current_addr_sk
| row-size=44B cardinality=100.00K
|
09:AGGREGATE [FINALIZE]
| output: sum(ss_coupon_amt), sum(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=69B cardinality=230.45K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
| runtime filters: RF004 <- customer_address.ca_address_sk
| row-size=107B cardinality=230.45K
|
|--04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF006 <- store.s_store_sk
| row-size=83B cardinality=230.45K
|
|--02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_city IN ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
| row-size=23B cardinality=12
|
06:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF008 <- date_dim.d_date_sk
| row-size=60B cardinality=230.45K
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: date_dim.d_dow IN (6, 0), date_dim.d_year IN (1999, 2000, 2001)
| row-size=12B cardinality=598
|
05:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF010 <- household_demographics.hd_demo_sk
| row-size=48B cardinality=702.92K
|
|--03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
| row-size=12B cardinality=1.80K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
row-size=36B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=80.20MB Threads=17
Per-Host Resource Estimates: Memory=412MB
PLAN-ROOT SINK
|
24:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
| limit: 100
|
14:TOP-N [LIMIT=100]
| order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
| row-size=118B cardinality=100
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
| other predicates: current_addr.ca_city != ca_city
| runtime filters: RF000 <- current_addr.ca_address_sk
| row-size=138B cardinality=230.45K
|
|--23:EXCHANGE [BROADCAST]
| |
| 11:SCAN HDFS [tpcds.customer_address current_addr]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
12:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=113B cardinality=230.45K
|
|--22:EXCHANGE [HASH(c_customer_sk)]
| |
| 10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> customer.c_current_addr_sk
| row-size=44B cardinality=100.00K
|
21:EXCHANGE [HASH(ss_customer_sk)]
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=69B cardinality=230.45K
|
19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
|
09:AGGREGATE [STREAMING]
| output: sum(ss_coupon_amt), sum(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=69B cardinality=230.45K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
| runtime filters: RF004 <- customer_address.ca_address_sk
| row-size=107B cardinality=230.45K
|
|--18:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF006 <- store.s_store_sk
| row-size=83B cardinality=230.45K
|
|--17:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_city IN ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
| row-size=23B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF008 <- date_dim.d_date_sk
| row-size=60B cardinality=230.45K
|
|--16:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: date_dim.d_dow IN (6, 0), date_dim.d_year IN (1999, 2000, 2001)
| row-size=12B cardinality=598
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF010 <- household_demographics.hd_demo_sk
| row-size=48B cardinality=702.92K
|
|--15:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
| row-size=12B cardinality=1.80K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
row-size=36B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=107.76MB Threads=20
Per-Host Resource Estimates: Memory=257MB
PLAN-ROOT SINK
|
24:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
| limit: 100
|
14:TOP-N [LIMIT=100]
| order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
| row-size=118B cardinality=100
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
| other predicates: current_addr.ca_city != ca_city
| row-size=138B cardinality=230.45K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: current_addr.ca_address_sk
| | runtime filters: RF000 <- current_addr.ca_address_sk
| |
| 23:EXCHANGE [BROADCAST]
| |
| 11:SCAN HDFS [tpcds.customer_address current_addr]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
12:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=113B cardinality=230.45K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF002 <- c_customer_sk
| |
| 22:EXCHANGE [HASH(c_customer_sk)]
| |
| 10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> customer.c_current_addr_sk
| row-size=44B cardinality=100.00K
|
21:EXCHANGE [HASH(ss_customer_sk)]
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=69B cardinality=230.45K
|
19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
|
09:AGGREGATE [STREAMING]
| output: sum(ss_coupon_amt), sum(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=69B cardinality=230.45K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
| row-size=107B cardinality=230.45K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: customer_address.ca_address_sk
| | runtime filters: RF004 <- customer_address.ca_address_sk
| |
| 18:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| row-size=83B cardinality=230.45K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: store.s_store_sk
| | runtime filters: RF006 <- store.s_store_sk
| |
| 17:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_city IN ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
| row-size=23B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| row-size=60B cardinality=230.45K
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: date_dim.d_date_sk
| | runtime filters: RF008 <- date_dim.d_date_sk
| |
| 16:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: date_dim.d_dow IN (6, 0), date_dim.d_year IN (1999, 2000, 2001)
| row-size=12B cardinality=598
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| row-size=48B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=05 plan-id=06 cohort-id=01
| | build expressions: household_demographics.hd_demo_sk
| | runtime filters: RF010 <- household_demographics.hd_demo_sk
| |
| 15:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
| row-size=12B cardinality=1.80K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
row-size=36B cardinality=2.88M
====
# TPCDS-Q52
select
dt.d_year,
item.i_brand_id brand_id,
item.i_brand brand,
sum(ss_ext_sales_price) ext_price
from
date_dim dt,
store_sales,
item
where
dt.d_date_sk = store_sales.ss_sold_date_sk
and store_sales.ss_item_sk = item.i_item_sk
and item.i_manager_id = 1
and dt.d_moy = 12
and dt.d_year = 1998
group by
dt.d_year,
item.i_brand,
item.i_brand_id
order by
dt.d_year,
ext_price desc,
brand_id
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
Per-Host Resource Estimates: Memory=214MB
PLAN-ROOT SINK
|
06:TOP-N [LIMIT=100]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| row-size=52B cardinality=100
|
05:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| runtime filters: RF000 <- dt.d_date_sk
| row-size=72B cardinality=1.73K
|
|--00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_year = 1998, dt.d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| runtime filters: RF002 <- item.i_item_sk
| row-size=60B cardinality=29.12K
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manager_id = 1
| row-size=44B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=33.81MB Threads=8
Per-Host Resource Estimates: Memory=234MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| row-size=52B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=1.73K
|
09:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| runtime filters: RF000 <- dt.d_date_sk
| row-size=72B cardinality=1.73K
|
|--08:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_year = 1998, dt.d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| runtime filters: RF002 <- item.i_item_sk
| row-size=60B cardinality=29.12K
|
|--07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manager_id = 1
| row-size=44B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=51.62MB Threads=9
Per-Host Resource Estimates: Memory=125MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
| row-size=52B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=1.73K
|
09:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: dt.d_year, item.i_brand, item.i_brand_id
| row-size=52B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
| row-size=72B cardinality=1.73K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: dt.d_date_sk
| | runtime filters: RF000 <- dt.d_date_sk
| |
| 08:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim dt]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: dt.d_year = 1998, dt.d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_item_sk = item.i_item_sk
| row-size=60B cardinality=29.12K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: item.i_item_sk
| | runtime filters: RF002 <- item.i_item_sk
| |
| 07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: item.i_manager_id = 1
| row-size=44B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q53
select
*
from
(select
i_manufact_id,
sum(ss_sales_price) sum_sales
from
item,
store_sales,
date_dim,
store
where
ss_item_sk = i_item_sk
and ss_sold_date_sk = d_date_sk
and ss_store_sk = s_store_sk
and d_month_seq in (1212, 1212 + 1, 1212 + 2, 1212 + 3, 1212 + 4, 1212 + 5, 1212 + 6, 1212 + 7, 1212 + 8, 1212 + 9, 1212 + 10, 1212 + 11)
and ((i_category in ('Books', 'Children', 'Electronics')
and i_class in ('personal', 'portable', 'reference', 'self-help')
and i_brand in ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9'))
or (i_category in ('Women', 'Music', 'Men')
and i_class in ('accessories', 'classical', 'fragrances', 'pants')
and i_brand in ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
group by
i_manufact_id,
d_qoy
) tmp1
order by
sum_sales,
i_manufact_id
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=32.82MB Threads=5
Per-Host Resource Estimates: Memory=249MB
PLAN-ROOT SINK
|
08:TOP-N [LIMIT=100]
| order by: sum_sales ASC, i_manufact_id ASC
| row-size=20B cardinality=96
|
07:AGGREGATE [FINALIZE]
| output: sum(ss_sales_price)
| group by: i_manufact_id, d_qoy
| row-size=24B cardinality=96
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=114B cardinality=96
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=110B cardinality=96
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
| row-size=12B cardinality=362
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF004 <- i_item_sk
| row-size=98B cardinality=481
|
|--00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
| row-size=78B cardinality=3
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=36.76MB Threads=10
Per-Host Resource Estimates: Memory=269MB
PLAN-ROOT SINK
|
14:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum_sales ASC, i_manufact_id ASC
| limit: 100
|
08:TOP-N [LIMIT=100]
| order by: sum_sales ASC, i_manufact_id ASC
| row-size=20B cardinality=96
|
13:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_manufact_id, d_qoy
| row-size=24B cardinality=96
|
12:EXCHANGE [HASH(i_manufact_id,d_qoy)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_manufact_id, d_qoy
| row-size=24B cardinality=96
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=114B cardinality=96
|
|--11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=110B cardinality=96
|
|--10:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
| row-size=12B cardinality=362
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF004 <- i_item_sk
| row-size=98B cardinality=481
|
|--09:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
| row-size=78B cardinality=3
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=57.51MB Threads=11
Per-Host Resource Estimates: Memory=146MB
PLAN-ROOT SINK
|
14:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum_sales ASC, i_manufact_id ASC
| limit: 100
|
08:TOP-N [LIMIT=100]
| order by: sum_sales ASC, i_manufact_id ASC
| row-size=20B cardinality=96
|
13:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_manufact_id, d_qoy
| row-size=24B cardinality=96
|
12:EXCHANGE [HASH(i_manufact_id,d_qoy)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_manufact_id, d_qoy
| row-size=24B cardinality=96
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=114B cardinality=96
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF000 <- s_store_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=110B cardinality=96
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF002 <- d_date_sk
| |
| 10:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
| row-size=12B cardinality=362
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=98B cardinality=481
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF004 <- i_item_sk
| |
| 09:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
| row-size=78B cardinality=3
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=2.88M
====
# TPCDS-Q55
select
i_brand_id brand_id,
i_brand brand,
sum(ss_ext_sales_price) ext_price
from
date_dim,
store_sales,
item
where
d_date_sk = ss_sold_date_sk
and ss_item_sk = i_item_sk
and i_manager_id = 36
and d_moy = 12
and d_year = 2001
group by
i_brand,
i_brand_id
order by
ext_price desc,
i_brand_id
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
Per-Host Resource Estimates: Memory=214MB
PLAN-ROOT SINK
|
06:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
| row-size=48B cardinality=100
|
05:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: i_brand, i_brand_id
| row-size=48B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF000 <- d_date_sk
| row-size=72B cardinality=1.73K
|
|--00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2001, d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=60B cardinality=29.12K
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_manager_id = 36
| row-size=44B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=33.81MB Threads=8
Per-Host Resource Estimates: Memory=234MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
| row-size=48B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_brand, i_brand_id
| row-size=48B cardinality=1.73K
|
09:EXCHANGE [HASH(i_brand,i_brand_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_brand, i_brand_id
| row-size=48B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF000 <- d_date_sk
| row-size=72B cardinality=1.73K
|
|--08:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2001, d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=60B cardinality=29.12K
|
|--07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_manager_id = 36
| row-size=44B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
row-size=16B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=51.62MB Threads=9
Per-Host Resource Estimates: Memory=124MB
PLAN-ROOT SINK
|
11:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
| limit: 100
|
06:TOP-N [LIMIT=100]
| order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
| row-size=48B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_brand, i_brand_id
| row-size=48B cardinality=1.73K
|
09:EXCHANGE [HASH(i_brand,i_brand_id)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_brand, i_brand_id
| row-size=48B cardinality=1.73K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=72B cardinality=1.73K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF000 <- d_date_sk
| |
| 08:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2001, d_moy = 12
| row-size=12B cardinality=108
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=60B cardinality=29.12K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF002 <- i_item_sk
| |
| 07:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_manager_id = 36
| row-size=44B cardinality=182
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q59
with
wss as
(select
d_week_seq,
ss_store_sk,
sum(case when (d_day_name = 'Sunday') then ss_sales_price else null end) sun_sales,
sum(case when (d_day_name = 'Monday') then ss_sales_price else null end) mon_sales,
sum(case when (d_day_name = 'Tuesday') then ss_sales_price else null end) tue_sales,
sum(case when (d_day_name = 'Wednesday') then ss_sales_price else null end) wed_sales,
sum(case when (d_day_name = 'Thursday') then ss_sales_price else null end) thu_sales,
sum(case when (d_day_name = 'Friday') then ss_sales_price else null end) fri_sales,
sum(case when (d_day_name = 'Saturday') then ss_sales_price else null end) sat_sales
from
store_sales,
date_dim
where
d_date_sk = ss_sold_date_sk
group by
d_week_seq,
ss_store_sk
)
select
s_store_name1,
s_store_id1,
d_week_seq1,
sun_sales1 / sun_sales2,
mon_sales1 / mon_sales2,
tue_sales1 / tue_sales2,
wed_sales1 / wed_sales2,
thu_sales1 / thu_sales2,
fri_sales1 / fri_sales2,
sat_sales1 / sat_sales2
from
(select
s_store_name s_store_name1,
wss.d_week_seq d_week_seq1,
s_store_id s_store_id1,
sun_sales sun_sales1,
mon_sales mon_sales1,
tue_sales tue_sales1,
wed_sales wed_sales1,
thu_sales thu_sales1,
fri_sales fri_sales1,
sat_sales sat_sales1
from
wss,
store,
date_dim d
where
d.d_week_seq = wss.d_week_seq
and ss_store_sk = s_store_sk
and d_month_seq between 1185 and 1185 + 11
) y,
(select
s_store_name s_store_name2,
wss.d_week_seq d_week_seq2,
s_store_id s_store_id2,
sun_sales sun_sales2,
mon_sales mon_sales2,
tue_sales tue_sales2,
wed_sales wed_sales2,
thu_sales thu_sales2,
fri_sales fri_sales2,
sat_sales sat_sales2
from
wss,
store,
date_dim d
where
d.d_week_seq = wss.d_week_seq
and ss_store_sk = s_store_sk
and d_month_seq between 1185 + 12 and 1185 + 23
) x
where
s_store_id1 = s_store_id2
and d_week_seq1 = d_week_seq2 - 52
order by
s_store_name1,
s_store_id1,
d_week_seq1
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=70.52MB Threads=9
Per-Host Resource Estimates: Memory=534MB
PLAN-ROOT SINK
|
17:TOP-N [LIMIT=100]
| order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
| row-size=272B cardinality=100
|
16:HASH JOIN [INNER JOIN]
| hash predicates: d_week_seq = d_week_seq - 52, s_store_id = s_store_id
| runtime filters: RF000 <- d_week_seq - 52, RF001 <- s_store_id
| row-size=336B cardinality=419.05M
|
|--15:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF010 <- s_store_sk
| | row-size=160B cardinality=50.14K
| |
| |--12:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=32B cardinality=12
| |
| 14:HASH JOIN [INNER JOIN]
| | hash predicates: d_week_seq = d.d_week_seq
| | runtime filters: RF012 <- d.d_week_seq
| | row-size=128B cardinality=50.14K
| |
| |--13:SCAN HDFS [tpcds.date_dim d]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1208, d_month_seq >= 1197
| | row-size=8B cardinality=7.30K
| |
| 11:AGGREGATE [FINALIZE]
| | output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| | group by: d_week_seq, ss_store_sk
| | row-size=120B cardinality=63.85K
| |
| 10:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=39B cardinality=2.88M
| |
| |--09:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | runtime filters: RF012 -> tpcds.date_dim.d_week_seq
| | row-size=27B cardinality=73.05K
| |
| 08:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF010 -> tpcds.store_sales.ss_store_sk, RF014 -> ss_sold_date_sk
| row-size=12B cardinality=2.88M
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF004 <- s_store_sk
| row-size=176B cardinality=50.14K
|
|--04:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF001 -> s_store_id
| row-size=48B cardinality=12
|
06:HASH JOIN [INNER JOIN]
| hash predicates: d_week_seq = d.d_week_seq
| runtime filters: RF006 <- d.d_week_seq
| row-size=128B cardinality=50.14K
|
|--05:SCAN HDFS [tpcds.date_dim d]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1196, d_month_seq >= 1185
| runtime filters: RF000 -> d.d_week_seq
| row-size=8B cardinality=7.30K
|
03:AGGREGATE [FINALIZE]
| output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: d_week_seq, ss_store_sk
| row-size=120B cardinality=63.85K
|
02:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF008 <- d_date_sk
| row-size=39B cardinality=2.88M
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| runtime filters: RF000 -> tpcds.date_dim.d_week_seq, RF006 -> tpcds.date_dim.d_week_seq
| row-size=27B cardinality=73.05K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> tpcds.store_sales.ss_store_sk, RF008 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=103.14MB Threads=20
Per-Host Resource Estimates: Memory=601MB
PLAN-ROOT SINK
|
30:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
| limit: 100
|
17:TOP-N [LIMIT=100]
| order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
| row-size=272B cardinality=100
|
16:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: d_week_seq = d_week_seq - 52, s_store_id = s_store_id
| runtime filters: RF000 <- d_week_seq - 52, RF001 <- s_store_id
| row-size=336B cardinality=419.05M
|
|--29:EXCHANGE [HASH(d_week_seq - 52,s_store_id)]
| |
| 15:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF010 <- s_store_sk
| | row-size=160B cardinality=50.14K
| |
| |--27:EXCHANGE [BROADCAST]
| | |
| | 12:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=32B cardinality=12
| |
| 14:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: d_week_seq = d.d_week_seq
| | runtime filters: RF012 <- d.d_week_seq
| | row-size=128B cardinality=50.14K
| |
| |--26:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.date_dim d]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1208, d_month_seq >= 1197
| | row-size=8B cardinality=7.30K
| |
| 25:AGGREGATE [FINALIZE]
| | output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| | group by: d_week_seq, ss_store_sk
| | row-size=120B cardinality=63.85K
| |
| 24:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
| |
| 11:AGGREGATE [STREAMING]
| | output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| | group by: d_week_seq, ss_store_sk
| | row-size=120B cardinality=63.85K
| |
| 10:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=39B cardinality=2.88M
| |
| |--23:EXCHANGE [BROADCAST]
| | |
| | 09:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | runtime filters: RF012 -> tpcds.date_dim.d_week_seq
| | row-size=27B cardinality=73.05K
| |
| 08:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF010 -> tpcds.store_sales.ss_store_sk, RF014 -> ss_sold_date_sk
| row-size=12B cardinality=2.88M
|
28:EXCHANGE [HASH(d_week_seq,s_store_id)]
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF004 <- s_store_sk
| row-size=176B cardinality=50.14K
|
|--22:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF001 -> s_store_id
| row-size=48B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: d_week_seq = d.d_week_seq
| runtime filters: RF006 <- d.d_week_seq
| row-size=128B cardinality=50.14K
|
|--21:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.date_dim d]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1196, d_month_seq >= 1185
| runtime filters: RF000 -> d.d_week_seq
| row-size=8B cardinality=7.30K
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: d_week_seq, ss_store_sk
| row-size=120B cardinality=63.85K
|
19:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
|
03:AGGREGATE [STREAMING]
| output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: d_week_seq, ss_store_sk
| row-size=120B cardinality=63.85K
|
02:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF008 <- d_date_sk
| row-size=39B cardinality=2.88M
|
|--18:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| runtime filters: RF000 -> tpcds.date_dim.d_week_seq, RF006 -> tpcds.date_dim.d_week_seq
| row-size=27B cardinality=73.05K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> tpcds.store_sales.ss_store_sk, RF008 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=159.52MB Threads=25
Per-Host Resource Estimates: Memory=356MB
PLAN-ROOT SINK
|
30:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
| limit: 100
|
17:TOP-N [LIMIT=100]
| order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
| row-size=272B cardinality=100
|
16:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: d_week_seq = d_week_seq - 52, s_store_id = s_store_id
| row-size=336B cardinality=419.05M
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: d_week_seq - 52, s_store_id
| | runtime filters: RF000 <- d_week_seq - 52, RF001 <- s_store_id
| |
| 29:EXCHANGE [HASH(d_week_seq - 52,s_store_id)]
| |
| 15:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=160B cardinality=50.14K
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: s_store_sk
| | | runtime filters: RF010 <- s_store_sk
| | |
| | 27:EXCHANGE [BROADCAST]
| | |
| | 12:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=32B cardinality=12
| |
| 14:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: d_week_seq = d.d_week_seq
| | row-size=128B cardinality=50.14K
| |
| |--JOIN BUILD
| | | join-table-id=02 plan-id=03 cohort-id=02
| | | build expressions: d.d_week_seq
| | | runtime filters: RF012 <- d.d_week_seq
| | |
| | 26:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.date_dim d]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1208, d_month_seq >= 1197
| | row-size=8B cardinality=7.30K
| |
| 25:AGGREGATE [FINALIZE]
| | output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| | group by: d_week_seq, ss_store_sk
| | row-size=120B cardinality=63.85K
| |
| 24:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
| |
| 11:AGGREGATE [STREAMING]
| | output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| | group by: d_week_seq, ss_store_sk
| | row-size=120B cardinality=63.85K
| |
| 10:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | row-size=39B cardinality=2.88M
| |
| |--JOIN BUILD
| | | join-table-id=03 plan-id=04 cohort-id=02
| | | build expressions: d_date_sk
| | | runtime filters: RF014 <- d_date_sk
| | |
| | 23:EXCHANGE [BROADCAST]
| | |
| | 09:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | runtime filters: RF012 -> tpcds.date_dim.d_week_seq
| | row-size=27B cardinality=73.05K
| |
| 08:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF010 -> tpcds.store_sales.ss_store_sk, RF014 -> ss_sold_date_sk
| row-size=12B cardinality=2.88M
|
28:EXCHANGE [HASH(d_week_seq,s_store_id)]
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=176B cardinality=50.14K
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF004 <- s_store_sk
| |
| 22:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF001 -> s_store_id
| row-size=48B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: d_week_seq = d.d_week_seq
| row-size=128B cardinality=50.14K
|
|--JOIN BUILD
| | join-table-id=05 plan-id=06 cohort-id=01
| | build expressions: d.d_week_seq
| | runtime filters: RF006 <- d.d_week_seq
| |
| 21:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.date_dim d]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1196, d_month_seq >= 1185
| runtime filters: RF000 -> d.d_week_seq
| row-size=8B cardinality=7.30K
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: d_week_seq, ss_store_sk
| row-size=120B cardinality=63.85K
|
19:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
|
03:AGGREGATE [STREAMING]
| output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Saturday') THEN ss_sales_price ELSE NULL END)
| group by: d_week_seq, ss_store_sk
| row-size=120B cardinality=63.85K
|
02:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=39B cardinality=2.88M
|
|--JOIN BUILD
| | join-table-id=06 plan-id=07 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF008 <- d_date_sk
| |
| 18:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| runtime filters: RF000 -> tpcds.date_dim.d_week_seq, RF006 -> tpcds.date_dim.d_week_seq
| row-size=27B cardinality=73.05K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> tpcds.store_sales.ss_store_sk, RF008 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
====
# TPCDS-Q63
select
*
from
(select
i_manager_id,
sum(ss_sales_price) sum_sales,
avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales
from
item,
store_sales,
date_dim,
store
where
ss_item_sk = i_item_sk
and ss_sold_date_sk = d_date_sk
and ss_store_sk = s_store_sk
and d_month_seq in (1212, 1212 + 1, 1212 + 2, 1212 + 3, 1212 + 4, 1212 + 5, 1212 + 6, 1212 + 7, 1212 + 8, 1212 + 9, 1212 + 10, 1212 + 11)
and ((i_category in ('Books', 'Children', 'Electronics')
and i_class in ('personal', 'portable', 'refernece', 'self-help')
and i_brand in ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9'))
or (i_category in ('Women', 'Music', 'Men')
and i_class in ('accessories', 'classical', 'fragrances', 'pants')
and i_brand in ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
and ss_sold_date_sk between 2451911 and 2452275 -- partition key filter
group by
i_manager_id,
d_moy
) tmp1
where
case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1
order by
i_manager_id,
avg_monthly_sales,
sum_sales
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=29.32MB Threads=5
Per-Host Resource Estimates: Memory=253MB
PLAN-ROOT SINK
|
11:TOP-N [LIMIT=100]
| order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
| row-size=36B cardinality=1
|
10:SELECT
| predicates: CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
| row-size=40B cardinality=1
|
09:ANALYTIC
| functions: avg(sum(ss_sales_price))
| partition by: i_manager_id
| row-size=40B cardinality=6
|
08:SORT
| order by: i_manager_id ASC NULLS LAST
| row-size=24B cardinality=6
|
07:AGGREGATE [FINALIZE]
| output: sum(ss_sales_price)
| group by: i_manager_id, d_moy
| row-size=24B cardinality=6
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=114B cardinality=6
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=110B cardinality=6
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: tpcds.date_dim.d_date_sk <= 2452275, tpcds.date_dim.d_date_sk >= 2451911, d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
| row-size=12B cardinality=114
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF004 <- i_item_sk
| row-size=98B cardinality=92
|
|--00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'refernece', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
| row-size=78B cardinality=3
|
01:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2452275
HDFS partitions=364/1824 files=364 size=66.85MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=546.31K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=39.26MB Threads=10
Per-Host Resource Estimates: Memory=279MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
| row-size=36B cardinality=1
|
10:SELECT
| predicates: CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
| row-size=40B cardinality=1
|
09:ANALYTIC
| functions: avg(sum(ss_sales_price))
| partition by: i_manager_id
| row-size=40B cardinality=6
|
08:SORT
| order by: i_manager_id ASC NULLS LAST
| row-size=24B cardinality=6
|
16:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_manager_id, d_moy
| row-size=24B cardinality=6
|
15:EXCHANGE [HASH(i_manager_id)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_manager_id, d_moy
| row-size=24B cardinality=6
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=114B cardinality=6
|
|--14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=110B cardinality=6
|
|--13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: tpcds.date_dim.d_date_sk <= 2452275, tpcds.date_dim.d_date_sk >= 2451911, d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
| row-size=12B cardinality=114
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF004 <- i_item_sk
| row-size=98B cardinality=92
|
|--12:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'refernece', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
| row-size=78B cardinality=3
|
01:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2452275
HDFS partitions=364/1824 files=364 size=66.85MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=546.31K
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=62.51MB Threads=11
Per-Host Resource Estimates: Memory=166MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
| row-size=36B cardinality=1
|
10:SELECT
| predicates: CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
| row-size=40B cardinality=1
|
09:ANALYTIC
| functions: avg(sum(ss_sales_price))
| partition by: i_manager_id
| row-size=40B cardinality=6
|
08:SORT
| order by: i_manager_id ASC NULLS LAST
| row-size=24B cardinality=6
|
16:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_manager_id, d_moy
| row-size=24B cardinality=6
|
15:EXCHANGE [HASH(i_manager_id)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_manager_id, d_moy
| row-size=24B cardinality=6
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=114B cardinality=6
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF000 <- s_store_sk
| |
| 14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=110B cardinality=6
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF002 <- d_date_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: tpcds.date_dim.d_date_sk <= 2452275, tpcds.date_dim.d_date_sk >= 2451911, d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
| row-size=12B cardinality=114
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=98B cardinality=92
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF004 <- i_item_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'refernece', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
| row-size=78B cardinality=3
|
01:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2452275
HDFS partitions=364/1824 files=364 size=66.85MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=546.31K
====
# TPCDS-Q65
select
s_store_name,
i_item_desc,
sc.revenue,
i_current_price,
i_wholesale_cost,
i_brand
from
store,
item,
(select
ss_store_sk,
avg(revenue) as ave
from
(select
ss_store_sk,
ss_item_sk,
sum(ss_sales_price) as revenue
from
store_sales,
date_dim
where
ss_sold_date_sk = d_date_sk
and d_month_seq between 1212 and 1212 + 11
group by
ss_store_sk,
ss_item_sk
) sa
group by
ss_store_sk
) sb,
(select
ss_store_sk,
ss_item_sk,
sum(ss_sales_price) as revenue
from
store_sales,
date_dim
where
ss_sold_date_sk = d_date_sk
and d_month_seq between 1212 and 1212 + 11
group by
ss_store_sk,
ss_item_sk
) sc
where
sb.ss_store_sk = sc.ss_store_sk
and sc.revenue <= 0.1 * sb.ave
and s_store_sk = sc.ss_store_sk
and i_item_sk = sc.ss_item_sk
order by
s_store_name,
i_item_desc
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=55.57MB Threads=7
Per-Host Resource Estimates: Memory=432MB
PLAN-ROOT SINK
|
14:TOP-N [LIMIT=100]
| order by: s_store_name ASC, i_item_desc ASC
| row-size=181B cardinality=100
|
13:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = ss_store_sk
| other predicates: sum(ss_sales_price) <= 0.1 * avg(revenue)
| runtime filters: RF000 <- ss_store_sk
| row-size=225B cardinality=647.10K
|
|--06:AGGREGATE [FINALIZE]
| | output: avg(sum(ss_sales_price))
| | group by: ss_store_sk
| | row-size=20B cardinality=6
| |
| 05:AGGREGATE [FINALIZE]
| | output: sum(ss_sales_price)
| | group by: ss_store_sk, ss_item_sk
| | row-size=28B cardinality=107.85K
| |
| 04:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF008 <- d_date_sk
| | row-size=28B cardinality=2.88M
| |
| |--03:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1223, d_month_seq >= 1212
| | row-size=8B cardinality=7.30K
| |
| 02:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF008 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
12:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=205B cardinality=107.85K
|
|--01:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=157B cardinality=18.00K
|
11:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF004 <- s_store_sk
| row-size=48B cardinality=107.85K
|
|--00:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> tpcds.store.s_store_sk
| row-size=20B cardinality=12
|
10:AGGREGATE [FINALIZE]
| output: sum(ss_sales_price)
| group by: ss_store_sk, ss_item_sk
| row-size=28B cardinality=107.85K
|
09:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=28B cardinality=2.88M
|
|--08:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
07:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_item_sk, RF004 -> tpcds.store_sales.ss_store_sk, RF006 -> ss_sold_date_sk
row-size=20B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=76.51MB Threads=17
Per-Host Resource Estimates: Memory=502MB
PLAN-ROOT SINK
|
27:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name ASC, i_item_desc ASC
| limit: 100
|
14:TOP-N [LIMIT=100]
| order by: s_store_name ASC, i_item_desc ASC
| row-size=181B cardinality=100
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = ss_store_sk
| other predicates: sum(ss_sales_price) <= 0.1 * avg(revenue)
| runtime filters: RF000 <- ss_store_sk
| row-size=225B cardinality=647.10K
|
|--26:EXCHANGE [BROADCAST]
| |
| 25:AGGREGATE [FINALIZE]
| | output: avg:merge(revenue)
| | group by: ss_store_sk
| | row-size=20B cardinality=6
| |
| 24:EXCHANGE [HASH(ss_store_sk)]
| |
| 06:AGGREGATE [STREAMING]
| | output: avg(sum(ss_sales_price))
| | group by: ss_store_sk
| | row-size=20B cardinality=6
| |
| 23:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_sales_price)
| | group by: ss_store_sk, ss_item_sk
| | row-size=28B cardinality=107.85K
| |
| 22:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
| |
| 05:AGGREGATE [STREAMING]
| | output: sum(ss_sales_price)
| | group by: ss_store_sk, ss_item_sk
| | row-size=28B cardinality=107.85K
| |
| 04:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF008 <- d_date_sk
| | row-size=28B cardinality=2.88M
| |
| |--21:EXCHANGE [BROADCAST]
| | |
| | 03:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1223, d_month_seq >= 1212
| | row-size=8B cardinality=7.30K
| |
| 02:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF008 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
12:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=205B cardinality=107.85K
|
|--20:EXCHANGE [HASH(i_item_sk)]
| |
| 01:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=157B cardinality=18.00K
|
19:EXCHANGE [HASH(ss_item_sk)]
|
11:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF004 <- s_store_sk
| row-size=48B cardinality=107.85K
|
|--18:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> tpcds.store.s_store_sk
| row-size=20B cardinality=12
|
17:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: ss_store_sk, ss_item_sk
| row-size=28B cardinality=107.85K
|
16:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
|
10:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: ss_store_sk, ss_item_sk
| row-size=28B cardinality=107.85K
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=28B cardinality=2.88M
|
|--15:EXCHANGE [BROADCAST]
| |
| 08:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
07:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_item_sk, RF004 -> tpcds.store_sales.ss_store_sk, RF006 -> ss_sold_date_sk
row-size=20B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=123.01MB Threads=23
Per-Host Resource Estimates: Memory=310MB
PLAN-ROOT SINK
|
27:MERGING-EXCHANGE [UNPARTITIONED]
| order by: s_store_name ASC, i_item_desc ASC
| limit: 100
|
14:TOP-N [LIMIT=100]
| order by: s_store_name ASC, i_item_desc ASC
| row-size=181B cardinality=100
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = ss_store_sk
| other predicates: sum(ss_sales_price) <= 0.1 * avg(revenue)
| row-size=225B cardinality=647.10K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: ss_store_sk
| | runtime filters: RF000 <- ss_store_sk
| |
| 26:EXCHANGE [BROADCAST]
| |
| 25:AGGREGATE [FINALIZE]
| | output: avg:merge(revenue)
| | group by: ss_store_sk
| | row-size=20B cardinality=6
| |
| 24:EXCHANGE [HASH(ss_store_sk)]
| |
| 06:AGGREGATE [STREAMING]
| | output: avg(sum(ss_sales_price))
| | group by: ss_store_sk
| | row-size=20B cardinality=6
| |
| 23:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_sales_price)
| | group by: ss_store_sk, ss_item_sk
| | row-size=28B cardinality=107.85K
| |
| 22:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
| |
| 05:AGGREGATE [STREAMING]
| | output: sum(ss_sales_price)
| | group by: ss_store_sk, ss_item_sk
| | row-size=28B cardinality=107.85K
| |
| 04:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | row-size=28B cardinality=2.88M
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: d_date_sk
| | | runtime filters: RF008 <- d_date_sk
| | |
| | 21:EXCHANGE [BROADCAST]
| | |
| | 03:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1223, d_month_seq >= 1212
| | row-size=8B cardinality=7.30K
| |
| 02:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF008 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
12:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_item_sk = i_item_sk
| row-size=205B cardinality=107.85K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF002 <- i_item_sk
| |
| 20:EXCHANGE [HASH(i_item_sk)]
| |
| 01:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=157B cardinality=18.00K
|
19:EXCHANGE [HASH(ss_item_sk)]
|
11:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=48B cardinality=107.85K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF004 <- s_store_sk
| |
| 18:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> tpcds.store.s_store_sk
| row-size=20B cardinality=12
|
17:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: ss_store_sk, ss_item_sk
| row-size=28B cardinality=107.85K
|
16:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
|
10:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: ss_store_sk, ss_item_sk
| row-size=28B cardinality=107.85K
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=28B cardinality=2.88M
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF006 <- d_date_sk
| |
| 15:EXCHANGE [BROADCAST]
| |
| 08:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
07:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_item_sk, RF004 -> tpcds.store_sales.ss_store_sk, RF006 -> ss_sold_date_sk
row-size=20B cardinality=2.88M
====
# TPCDS-Q68
select
c_last_name,
c_first_name,
ca_city,
bought_city,
ss_ticket_number,
extended_price,
extended_tax,
list_price
from
(select
ss_ticket_number,
ss_customer_sk,
ca_city bought_city,
sum(ss_ext_sales_price) extended_price,
sum(ss_ext_list_price) list_price,
sum(ss_ext_tax) extended_tax
from
store_sales,
date_dim,
store,
household_demographics,
customer_address
where
store_sales.ss_sold_date_sk = date_dim.d_date_sk
and store_sales.ss_store_sk = store.s_store_sk
and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
and store_sales.ss_addr_sk = customer_address.ca_address_sk
and (household_demographics.hd_dep_count = 5
or household_demographics.hd_vehicle_count = 3)
and store.s_city in ('Midway', 'Fairview')
and d_date between '1999-01-01' and '1999-03-31'
group by
ss_ticket_number,
ss_customer_sk,
ss_addr_sk,
ca_city
) dn,
customer,
customer_address current_addr
where
ss_customer_sk = c_customer_sk
and customer.c_current_addr_sk = current_addr.ca_address_sk
and current_addr.ca_city <> bought_city
order by
c_last_name,
ss_ticket_number
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=84.06MB Threads=8
Per-Host Resource Estimates: Memory=378MB
PLAN-ROOT SINK
|
14:TOP-N [LIMIT=100]
| order by: c_last_name ASC, ss_ticket_number ASC
| row-size=134B cardinality=100
|
13:HASH JOIN [INNER JOIN]
| hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
| other predicates: current_addr.ca_city != ca_city
| runtime filters: RF000 <- current_addr.ca_address_sk
| row-size=154B cardinality=702.92K
|
|--11:SCAN HDFS [tpcds.customer_address current_addr]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
12:HASH JOIN [INNER JOIN]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=129B cardinality=702.92K
|
|--10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> customer.c_current_addr_sk
| row-size=44B cardinality=100.00K
|
09:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price), sum(ss_ext_list_price), sum(ss_ext_tax)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=85B cardinality=702.92K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
| runtime filters: RF004 <- customer_address.ca_address_sk
| row-size=125B cardinality=702.92K
|
|--04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF006 <- store.s_store_sk
| row-size=101B cardinality=702.92K
|
|--02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_city IN ('Midway', 'Fairview')
| row-size=23B cardinality=12
|
06:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF008 <- date_dim.d_date_sk
| row-size=78B cardinality=702.92K
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
| row-size=26B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF010 <- household_demographics.hd_demo_sk
| row-size=52B cardinality=702.92K
|
|--03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
| row-size=12B cardinality=1.80K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
row-size=40B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=136.32MB Threads=16
Per-Host Resource Estimates: Memory=465MB
PLAN-ROOT SINK
|
23:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, ss_ticket_number ASC
| limit: 100
|
14:TOP-N [LIMIT=100]
| order by: c_last_name ASC, ss_ticket_number ASC
| row-size=134B cardinality=100
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
| other predicates: current_addr.ca_city != ca_city
| runtime filters: RF000 <- current_addr.ca_address_sk
| row-size=154B cardinality=702.92K
|
|--22:EXCHANGE [BROADCAST]
| |
| 11:SCAN HDFS [tpcds.customer_address current_addr]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=129B cardinality=702.92K
|
|--21:EXCHANGE [BROADCAST]
| |
| 10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> customer.c_current_addr_sk
| row-size=44B cardinality=100.00K
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price), sum:merge(ss_ext_list_price), sum:merge(ss_ext_tax)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=85B cardinality=702.92K
|
19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
|
09:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price), sum(ss_ext_list_price), sum(ss_ext_tax)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=85B cardinality=702.92K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
| runtime filters: RF004 <- customer_address.ca_address_sk
| row-size=125B cardinality=702.92K
|
|--18:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF006 <- store.s_store_sk
| row-size=101B cardinality=702.92K
|
|--17:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_city IN ('Midway', 'Fairview')
| row-size=23B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF008 <- date_dim.d_date_sk
| row-size=78B cardinality=702.92K
|
|--16:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
| row-size=26B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF010 <- household_demographics.hd_demo_sk
| row-size=52B cardinality=702.92K
|
|--15:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
| row-size=12B cardinality=1.80K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
row-size=40B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=168.38MB Threads=17
Per-Host Resource Estimates: Memory=292MB
PLAN-ROOT SINK
|
23:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, ss_ticket_number ASC
| limit: 100
|
14:TOP-N [LIMIT=100]
| order by: c_last_name ASC, ss_ticket_number ASC
| row-size=134B cardinality=100
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
| other predicates: current_addr.ca_city != ca_city
| row-size=154B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: current_addr.ca_address_sk
| | runtime filters: RF000 <- current_addr.ca_address_sk
| |
| 22:EXCHANGE [BROADCAST]
| |
| 11:SCAN HDFS [tpcds.customer_address current_addr]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=129B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF002 <- c_customer_sk
| |
| 21:EXCHANGE [BROADCAST]
| |
| 10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> customer.c_current_addr_sk
| row-size=44B cardinality=100.00K
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price), sum:merge(ss_ext_list_price), sum:merge(ss_ext_tax)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=85B cardinality=702.92K
|
19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
|
09:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price), sum(ss_ext_list_price), sum(ss_ext_tax)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
| row-size=85B cardinality=702.92K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
| row-size=125B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: customer_address.ca_address_sk
| | runtime filters: RF004 <- customer_address.ca_address_sk
| |
| 18:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=25B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| row-size=101B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: store.s_store_sk
| | runtime filters: RF006 <- store.s_store_sk
| |
| 17:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_city IN ('Midway', 'Fairview')
| row-size=23B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| row-size=78B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: date_dim.d_date_sk
| | runtime filters: RF008 <- date_dim.d_date_sk
| |
| 16:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
| row-size=26B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| row-size=52B cardinality=702.92K
|
|--JOIN BUILD
| | join-table-id=05 plan-id=06 cohort-id=01
| | build expressions: household_demographics.hd_demo_sk
| | runtime filters: RF010 <- household_demographics.hd_demo_sk
| |
| 15:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
| row-size=12B cardinality=1.80K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
row-size=40B cardinality=2.88M
====
# TPCDS-Q73
select
c_last_name,
c_first_name,
c_salutation,
c_preferred_cust_flag,
ss_ticket_number,
cnt
from
(select
ss_ticket_number,
ss_customer_sk,
count(*) cnt
from
store_sales,
date_dim,
store,
household_demographics
where
store_sales.ss_sold_date_sk = date_dim.d_date_sk
and store_sales.ss_store_sk = store.s_store_sk
and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
and (household_demographics.hd_buy_potential = '>10000'
or household_demographics.hd_buy_potential = 'unknown')
and household_demographics.hd_vehicle_count > 0
and case when household_demographics.hd_vehicle_count > 0 then household_demographics.hd_dep_count / household_demographics.hd_vehicle_count else null end > 1
and store.s_county in ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
group by
ss_ticket_number,
ss_customer_sk
) dj,
customer
where
ss_customer_sk = c_customer_sk
and cnt between 1 and 5
order by
cnt desc
limit 1000
---- PLAN
Max Per-Host Resource Reservation: Memory=34.07MB Threads=6
Per-Host Resource Estimates: Memory=298MB
PLAN-ROOT SINK
|
10:TOP-N [LIMIT=1000]
| order by: cnt DESC
| row-size=80B cardinality=1.00K
|
09:HASH JOIN [INNER JOIN]
| hash predicates: c_customer_sk = ss_customer_sk
| runtime filters: RF000 <- ss_customer_sk
| row-size=88B cardinality=16.25K
|
|--07:AGGREGATE [FINALIZE]
| | output: count(*)
| | group by: ss_ticket_number, ss_customer_sk
| | having: count(*) <= 5, count(*) >= 1
| | row-size=20B cardinality=16.25K
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_store_sk = store.s_store_sk
| | runtime filters: RF002 <- store.s_store_sk
| | row-size=93B cardinality=162.45K
| |
| |--02:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
| | row-size=33B cardinality=12
| |
| 05:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF004 <- date_dim.d_date_sk
| | row-size=60B cardinality=162.45K
| |
| |--01:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | row-size=4B cardinality=73.05K
| |
| 04:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| | runtime filters: RF006 <- household_demographics.hd_demo_sk
| | row-size=56B cardinality=162.45K
| |
| |--03:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END > 1
| | row-size=32B cardinality=416
| |
| 00:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
| row-size=24B cardinality=2.88M
|
08:SCAN HDFS [tpcds.customer]
HDFS partitions=1/1 files=1 size=12.60MB
runtime filters: RF000 -> c_customer_sk
row-size=68B cardinality=100.00K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=49.45MB Threads=13
Per-Host Resource Estimates: Memory=336MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: cnt DESC
| limit: 1000
|
10:TOP-N [LIMIT=1000]
| order by: cnt DESC
| row-size=80B cardinality=1.00K
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF000 <- c_customer_sk
| row-size=88B cardinality=16.25K
|
|--17:EXCHANGE [HASH(c_customer_sk)]
| |
| 08:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=68B cardinality=100.00K
|
16:EXCHANGE [HASH(ss_customer_sk)]
|
15:AGGREGATE [FINALIZE]
| output: count:merge(*)
| group by: ss_ticket_number, ss_customer_sk
| having: count(*) <= 5, count(*) >= 1
| row-size=20B cardinality=16.25K
|
14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
|
07:AGGREGATE [STREAMING]
| output: count(*)
| group by: ss_ticket_number, ss_customer_sk
| row-size=20B cardinality=162.45K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF002 <- store.s_store_sk
| row-size=93B cardinality=162.45K
|
|--13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
| row-size=33B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF004 <- date_dim.d_date_sk
| row-size=60B cardinality=162.45K
|
|--12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| row-size=4B cardinality=73.05K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF006 <- household_demographics.hd_demo_sk
| row-size=56B cardinality=162.45K
|
|--11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END > 1
| row-size=32B cardinality=416
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
row-size=24B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=68.26MB Threads=14
Per-Host Resource Estimates: Memory=190MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: cnt DESC
| limit: 1000
|
10:TOP-N [LIMIT=1000]
| order by: cnt DESC
| row-size=80B cardinality=1.00K
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=88B cardinality=16.25K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF000 <- c_customer_sk
| |
| 17:EXCHANGE [HASH(c_customer_sk)]
| |
| 08:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=68B cardinality=100.00K
|
16:EXCHANGE [HASH(ss_customer_sk)]
|
15:AGGREGATE [FINALIZE]
| output: count:merge(*)
| group by: ss_ticket_number, ss_customer_sk
| having: count(*) <= 5, count(*) >= 1
| row-size=20B cardinality=16.25K
|
14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
|
07:AGGREGATE [STREAMING]
| output: count(*)
| group by: ss_ticket_number, ss_customer_sk
| row-size=20B cardinality=162.45K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| row-size=93B cardinality=162.45K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: store.s_store_sk
| | runtime filters: RF002 <- store.s_store_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
| row-size=33B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| row-size=60B cardinality=162.45K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: date_dim.d_date_sk
| | runtime filters: RF004 <- date_dim.d_date_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| row-size=4B cardinality=73.05K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| row-size=56B cardinality=162.45K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: household_demographics.hd_demo_sk
| | runtime filters: RF006 <- household_demographics.hd_demo_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END > 1
| row-size=32B cardinality=416
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
row-size=24B cardinality=2.88M
====
# TPCDS-Q79
select
c_last_name,
c_first_name,
substr(s_city, 1, 30),
ss_ticket_number,
amt,
profit
from
(select
ss_ticket_number,
ss_customer_sk,
store.s_city,
sum(ss_coupon_amt) amt,
sum(ss_net_profit) profit
from
store_sales,
date_dim,
store,
household_demographics
where
store_sales.ss_sold_date_sk = date_dim.d_date_sk
and store_sales.ss_store_sk = store.s_store_sk
and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
and (household_demographics.hd_dep_count = 8
or household_demographics.hd_vehicle_count > 0)
and store.s_number_employees between 200 and 295
and d_date between '1999-01-01' and '1999-03-31'
group by
ss_ticket_number,
ss_customer_sk,
ss_addr_sk,
store.s_city
) ms,
customer
where
ss_customer_sk = c_customer_sk
order by
c_last_name,
c_first_name,
substr(s_city, 1, 30),
profit
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=34.07MB Threads=6
Per-Host Resource Estimates: Memory=298MB
PLAN-ROOT SINK
|
10:TOP-N [LIMIT=100]
| order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
| row-size=88B cardinality=100
|
09:HASH JOIN [INNER JOIN]
| hash predicates: c_customer_sk = ss_customer_sk
| runtime filters: RF000 <- ss_customer_sk
| row-size=106B cardinality=46.86K
|
|--07:AGGREGATE [FINALIZE]
| | output: sum(ss_coupon_amt), sum(ss_net_profit)
| | group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
| | row-size=67B cardinality=46.86K
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF002 <- date_dim.d_date_sk
| | row-size=101B cardinality=46.86K
| |
| |--01:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
| | row-size=26B cardinality=7.30K
| |
| 05:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_store_sk = store.s_store_sk
| | runtime filters: RF004 <- store.s_store_sk
| | row-size=75B cardinality=46.86K
| |
| |--02:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_number_employees <= 295, store.s_number_employees >= 200
| | row-size=27B cardinality=1
| |
| 04:HASH JOIN [INNER JOIN]
| | hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| | runtime filters: RF006 <- household_demographics.hd_demo_sk
| | row-size=48B cardinality=281.17K
| |
| |--03:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: (household_demographics.hd_dep_count = 8 OR household_demographics.hd_vehicle_count > 0)
| | row-size=12B cardinality=720
| |
| 00:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF002 -> store_sales.ss_sold_date_sk, RF004 -> store_sales.ss_store_sk, RF006 -> store_sales.ss_hdemo_sk
| row-size=36B cardinality=2.88M
|
08:SCAN HDFS [tpcds.customer]
HDFS partitions=1/1 files=1 size=12.60MB
runtime filters: RF000 -> c_customer_sk
row-size=40B cardinality=100.00K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=45.70MB Threads=13
Per-Host Resource Estimates: Memory=330MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
| limit: 100
|
10:TOP-N [LIMIT=100]
| order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
| row-size=88B cardinality=100
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF000 <- c_customer_sk
| row-size=106B cardinality=46.86K
|
|--17:EXCHANGE [HASH(c_customer_sk)]
| |
| 08:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=40B cardinality=100.00K
|
16:EXCHANGE [HASH(ss_customer_sk)]
|
15:AGGREGATE [FINALIZE]
| output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
| row-size=67B cardinality=46.86K
|
14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_coupon_amt), sum(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
| row-size=67B cardinality=46.86K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF002 <- date_dim.d_date_sk
| row-size=101B cardinality=46.86K
|
|--13:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
| row-size=26B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| runtime filters: RF004 <- store.s_store_sk
| row-size=75B cardinality=46.86K
|
|--12:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_number_employees <= 295, store.s_number_employees >= 200
| row-size=27B cardinality=1
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF006 <- household_demographics.hd_demo_sk
| row-size=48B cardinality=281.17K
|
|--11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 8 OR household_demographics.hd_vehicle_count > 0)
| row-size=12B cardinality=720
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_sold_date_sk, RF004 -> store_sales.ss_store_sk, RF006 -> store_sales.ss_hdemo_sk
row-size=36B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=64.51MB Threads=14
Per-Host Resource Estimates: Memory=185MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
| limit: 100
|
10:TOP-N [LIMIT=100]
| order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
| row-size=88B cardinality=100
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=106B cardinality=46.86K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF000 <- c_customer_sk
| |
| 17:EXCHANGE [HASH(c_customer_sk)]
| |
| 08:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=40B cardinality=100.00K
|
16:EXCHANGE [HASH(ss_customer_sk)]
|
15:AGGREGATE [FINALIZE]
| output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
| row-size=67B cardinality=46.86K
|
14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_coupon_amt), sum(ss_net_profit)
| group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
| row-size=67B cardinality=46.86K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| row-size=101B cardinality=46.86K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: date_dim.d_date_sk
| | runtime filters: RF002 <- date_dim.d_date_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
| row-size=26B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_store_sk = store.s_store_sk
| row-size=75B cardinality=46.86K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: store.s_store_sk
| | runtime filters: RF004 <- store.s_store_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_number_employees <= 295, store.s_number_employees >= 200
| row-size=27B cardinality=1
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
| row-size=48B cardinality=281.17K
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: household_demographics.hd_demo_sk
| | runtime filters: RF006 <- household_demographics.hd_demo_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: (household_demographics.hd_dep_count = 8 OR household_demographics.hd_vehicle_count > 0)
| row-size=12B cardinality=720
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_sold_date_sk, RF004 -> store_sales.ss_store_sk, RF006 -> store_sales.ss_hdemo_sk
row-size=36B cardinality=2.88M
====
# TPCDS-Q89
select * from (select *
from (
select i_category, i_class, i_brand,
s_store_name, s_company_name,
d_moy,
sum(ss_sales_price) sum_sales,
avg(sum(ss_sales_price)) over
(partition by i_category, i_brand, s_store_name, s_company_name)
avg_monthly_sales
from item, store_sales, date_dim, store
where ss_item_sk = i_item_sk and
ss_sold_date_sk = d_date_sk and
ss_store_sk = s_store_sk and
d_year in (2000) and
((i_category in ('Children','Music','Home') and
i_class in ('toddlers','pop','lighting')
)
or (i_category in ('Jewelry','Books','Sports') and
i_class in ('costume','travel','football')
))
group by i_category, i_class, i_brand,
s_store_name, s_company_name, d_moy) tmp1
where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1
order by sum_sales - avg_monthly_sales, s_store_name
limit 100) tmp2
---- PLAN
Max Per-Host Resource Reservation: Memory=36.82MB Threads=5
Per-Host Resource Estimates: Memory=253MB
PLAN-ROOT SINK
|
11:TOP-N [LIMIT=100]
| order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
| row-size=137B cardinality=100
|
10:SELECT
| predicates: CASE WHEN (avg(sum(ss_sales_price)) != 0) THEN (abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price))) ELSE NULL END > 0.1
| row-size=137B cardinality=1.07K
|
09:ANALYTIC
| functions: avg(sum(ss_sales_price))
| partition by: i_category, i_brand, s_store_name, s_company_name
| row-size=137B cardinality=10.67K
|
08:SORT
| order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST
| row-size=121B cardinality=10.67K
|
07:AGGREGATE [FINALIZE]
| output: sum(ss_sales_price)
| group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
| row-size=121B cardinality=10.67K
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=145B cardinality=10.67K
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=39B cardinality=12
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=106B cardinality=10.67K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year IN (2000)
| row-size=12B cardinality=373
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF004 <- i_item_sk
| row-size=94B cardinality=52.17K
|
|--00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Children', 'Music', 'Home') AND i_class IN ('toddlers', 'pop', 'lighting')) OR (i_category IN ('Jewelry', 'Books', 'Sports') AND i_class IN ('costume', 'travel', 'football')))
| row-size=74B cardinality=326
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=52.76MB Threads=10
Per-Host Resource Estimates: Memory=285MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
| row-size=137B cardinality=100
|
10:SELECT
| predicates: CASE WHEN (avg(sum(ss_sales_price)) != 0) THEN (abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price))) ELSE NULL END > 0.1
| row-size=137B cardinality=1.07K
|
09:ANALYTIC
| functions: avg(sum(ss_sales_price))
| partition by: i_category, i_brand, s_store_name, s_company_name
| row-size=137B cardinality=10.67K
|
08:SORT
| order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST
| row-size=121B cardinality=10.67K
|
16:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
| row-size=121B cardinality=10.67K
|
15:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
| row-size=121B cardinality=10.67K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=145B cardinality=10.67K
|
|--14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=39B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=106B cardinality=10.67K
|
|--13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year IN (2000)
| row-size=12B cardinality=373
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF004 <- i_item_sk
| row-size=94B cardinality=52.17K
|
|--12:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Children', 'Music', 'Home') AND i_class IN ('toddlers', 'pop', 'lighting')) OR (i_category IN ('Jewelry', 'Books', 'Sports') AND i_class IN ('costume', 'travel', 'football')))
| row-size=74B cardinality=326
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=89.51MB Threads=11
Per-Host Resource Estimates: Memory=178MB
PLAN-ROOT SINK
|
17:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
| row-size=137B cardinality=100
|
10:SELECT
| predicates: CASE WHEN (avg(sum(ss_sales_price)) != 0) THEN (abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price))) ELSE NULL END > 0.1
| row-size=137B cardinality=1.07K
|
09:ANALYTIC
| functions: avg(sum(ss_sales_price))
| partition by: i_category, i_brand, s_store_name, s_company_name
| row-size=137B cardinality=10.67K
|
08:SORT
| order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST
| row-size=121B cardinality=10.67K
|
16:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
| row-size=121B cardinality=10.67K
|
15:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
|
07:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
| row-size=121B cardinality=10.67K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=145B cardinality=10.67K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF000 <- s_store_sk
| |
| 14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=39B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=106B cardinality=10.67K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF002 <- d_date_sk
| |
| 13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year IN (2000)
| row-size=12B cardinality=373
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=94B cardinality=52.17K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF004 <- i_item_sk
| |
| 12:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: ((i_category IN ('Children', 'Music', 'Home') AND i_class IN ('toddlers', 'pop', 'lighting')) OR (i_category IN ('Jewelry', 'Books', 'Sports') AND i_class IN ('costume', 'travel', 'football')))
| row-size=74B cardinality=326
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
row-size=20B cardinality=2.88M
====
# TPCDS-Q96
SELECT
COUNT(*) AS total
FROM store_sales ss
JOIN time_dim td
ON (ss.ss_sold_time_sk = td.t_time_sk)
JOIN household_demographics hd
ON (ss.ss_hdemo_sk = hd.hd_demo_sk)
JOIN store s
ON (ss.ss_store_sk = s.s_store_sk)
WHERE
td.t_hour = 8
AND td.t_minute >= 30
AND hd.hd_dep_count = 5
AND s.s_store_name = 'ese'
---- PLAN
Max Per-Host Resource Reservation: Memory=25.07MB Threads=5
Per-Host Resource Estimates: Memory=233MB
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss.ss_store_sk = s.s_store_sk
| runtime filters: RF000 <- s.s_store_sk
| row-size=52B cardinality=2.27K
|
|--03:SCAN HDFS [tpcds.store s]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s.s_store_name = 'ese'
| row-size=20B cardinality=2
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss.ss_hdemo_sk = hd.hd_demo_sk
| runtime filters: RF002 <- hd.hd_demo_sk
| row-size=32B cardinality=6.82K
|
|--02:SCAN HDFS [tpcds.household_demographics hd]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: hd.hd_dep_count = 5
| row-size=8B cardinality=720
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss.ss_sold_time_sk = td.t_time_sk
| runtime filters: RF004 <- td.t_time_sk
| row-size=24B cardinality=69.82K
|
|--01:SCAN HDFS [tpcds.time_dim td]
| HDFS partitions=1/1 files=1 size=4.87MB
| predicates: td.t_hour = 8, td.t_minute >= 30
| row-size=12B cardinality=1.14K
|
00:SCAN HDFS [tpcds.store_sales ss]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss.ss_store_sk, RF002 -> ss.ss_hdemo_sk, RF004 -> ss.ss_sold_time_sk
row-size=12B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=25.07MB Threads=9
Per-Host Resource Estimates: Memory=253MB
PLAN-ROOT SINK
|
12:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
11:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss.ss_store_sk = s.s_store_sk
| runtime filters: RF000 <- s.s_store_sk
| row-size=52B cardinality=2.27K
|
|--10:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store s]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s.s_store_name = 'ese'
| row-size=20B cardinality=2
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss.ss_hdemo_sk = hd.hd_demo_sk
| runtime filters: RF002 <- hd.hd_demo_sk
| row-size=32B cardinality=6.82K
|
|--09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.household_demographics hd]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: hd.hd_dep_count = 5
| row-size=8B cardinality=720
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss.ss_sold_time_sk = td.t_time_sk
| runtime filters: RF004 <- td.t_time_sk
| row-size=24B cardinality=69.82K
|
|--08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.time_dim td]
| HDFS partitions=1/1 files=1 size=4.87MB
| predicates: td.t_hour = 8, td.t_minute >= 30
| row-size=12B cardinality=1.14K
|
00:SCAN HDFS [tpcds.store_sales ss]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss.ss_store_sk, RF002 -> ss.ss_hdemo_sk, RF004 -> ss.ss_sold_time_sk
row-size=12B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=41.88MB Threads=9
Per-Host Resource Estimates: Memory=128MB
PLAN-ROOT SINK
|
12:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
11:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss.ss_store_sk = s.s_store_sk
| row-size=52B cardinality=2.27K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s.s_store_sk
| | runtime filters: RF000 <- s.s_store_sk
| |
| 10:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store s]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s.s_store_name = 'ese'
| row-size=20B cardinality=2
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss.ss_hdemo_sk = hd.hd_demo_sk
| row-size=32B cardinality=6.82K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: hd.hd_demo_sk
| | runtime filters: RF002 <- hd.hd_demo_sk
| |
| 09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.household_demographics hd]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: hd.hd_dep_count = 5
| row-size=8B cardinality=720
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss.ss_sold_time_sk = td.t_time_sk
| row-size=24B cardinality=69.82K
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: td.t_time_sk
| | runtime filters: RF004 <- td.t_time_sk
| |
| 08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.time_dim td]
| HDFS partitions=1/1 files=1 size=4.87MB
| predicates: td.t_hour = 8, td.t_minute >= 30
| row-size=12B cardinality=1.14K
|
00:SCAN HDFS [tpcds.store_sales ss]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss.ss_store_sk, RF002 -> ss.ss_hdemo_sk, RF004 -> ss.ss_sold_time_sk
row-size=12B cardinality=2.88M
====
# TPCDS-Q98
select
i_item_desc,
i_category,
i_class,
i_current_price,
sum(ss_ext_sales_price) as itemrevenue,
sum(ss_ext_sales_price)*100/sum(sum(ss_ext_sales_price)) over (partition by i_class) as revenueratio
from
store_sales,
item,
date_dim
where
ss_item_sk = i_item_sk
and i_category in ('Jewelry', 'Sports', 'Books')
and ss_sold_date_sk = d_date_sk
and ss_sold_date_sk between 2451911 and 2451941
and d_date between '2001-01-01' and '2001-01-31' -- original uses interval and the
group by
i_item_id,
i_item_desc,
i_category,
i_class,
i_current_price
order by
i_category,
i_class,
i_item_id,
i_item_desc,
revenueratio
limit 1000
---- PLAN
Max Per-Host Resource Reservation: Memory=26.50MB Threads=4
Per-Host Resource Estimates: Memory=218MB
PLAN-ROOT SINK
|
08:TOP-N [LIMIT=1000]
| order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
| row-size=214B cardinality=1.00K
|
07:ANALYTIC
| functions: sum(sum(ss_ext_sales_price))
| partition by: i_class
| row-size=214B cardinality=29.80K
|
06:SORT
| order by: i_class ASC NULLS LAST
| row-size=198B cardinality=29.80K
|
05:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
| row-size=198B cardinality=29.80K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF000 <- d_date_sk
| row-size=232B cardinality=29.80K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: tpcds.date_dim.d_date_sk <= 2451941, tpcds.date_dim.d_date_sk >= 2451911, d_date <= '2001-01-31', d_date >= '2001-01-01'
| row-size=26B cardinality=7.30K
|
03:HASH JOIN [INNER JOIN]
| hash predicates: i_item_sk = ss_item_sk
| runtime filters: RF002 <- ss_item_sk
| row-size=206B cardinality=29.80K
|
|--00:SCAN HDFS [tpcds.store_sales]
| partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2451941
| HDFS partitions=31/1824 files=31 size=3.64MB
| runtime filters: RF000 -> ss_sold_date_sk
| row-size=16B cardinality=29.76K
|
01:SCAN HDFS [tpcds.item]
HDFS partitions=1/1 files=1 size=4.82MB
predicates: i_category IN ('Jewelry', 'Sports', 'Books')
runtime filters: RF002 -> i_item_sk
row-size=190B cardinality=5.40K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=57.88MB Threads=9
Per-Host Resource Estimates: Memory=254MB
PLAN-ROOT SINK
|
14:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
| limit: 1000
|
08:TOP-N [LIMIT=1000]
| order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
| row-size=214B cardinality=1.00K
|
07:ANALYTIC
| functions: sum(sum(ss_ext_sales_price))
| partition by: i_class
| row-size=214B cardinality=29.80K
|
06:SORT
| order by: i_class ASC NULLS LAST
| row-size=198B cardinality=29.80K
|
13:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
| row-size=198B cardinality=29.80K
|
12:EXCHANGE [HASH(i_class)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
| row-size=198B cardinality=29.80K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF000 <- d_date_sk
| row-size=232B cardinality=29.80K
|
|--11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: tpcds.date_dim.d_date_sk <= 2451941, tpcds.date_dim.d_date_sk >= 2451911, d_date <= '2001-01-31', d_date >= '2001-01-01'
| row-size=26B cardinality=7.30K
|
03:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=206B cardinality=29.80K
|
|--10:EXCHANGE [HASH(i_item_sk)]
| |
| 01:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category IN ('Jewelry', 'Sports', 'Books')
| row-size=190B cardinality=5.40K
|
09:EXCHANGE [HASH(ss_item_sk)]
|
00:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2451941
HDFS partitions=31/1824 files=31 size=3.64MB
runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
row-size=16B cardinality=29.76K
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=60.31MB Threads=9
Per-Host Resource Estimates: Memory=120MB
PLAN-ROOT SINK
|
14:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
| limit: 1000
|
08:TOP-N [LIMIT=1000]
| order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
| row-size=214B cardinality=1.00K
|
07:ANALYTIC
| functions: sum(sum(ss_ext_sales_price))
| partition by: i_class
| row-size=214B cardinality=29.80K
|
06:SORT
| order by: i_class ASC NULLS LAST
| row-size=198B cardinality=29.80K
|
13:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
| row-size=198B cardinality=29.80K
|
12:EXCHANGE [HASH(i_class)]
|
05:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
| row-size=198B cardinality=29.80K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=232B cardinality=29.80K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF000 <- d_date_sk
| |
| 11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: tpcds.date_dim.d_date_sk <= 2451941, tpcds.date_dim.d_date_sk >= 2451911, d_date <= '2001-01-31', d_date >= '2001-01-01'
| row-size=26B cardinality=7.30K
|
03:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_item_sk = i_item_sk
| row-size=206B cardinality=29.80K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF002 <- i_item_sk
| |
| 10:EXCHANGE [HASH(i_item_sk)]
| |
| 01:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category IN ('Jewelry', 'Sports', 'Books')
| row-size=190B cardinality=5.40K
|
09:EXCHANGE [HASH(ss_item_sk)]
|
00:SCAN HDFS [tpcds.store_sales]
partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2451941
HDFS partitions=31/1824 files=31 size=3.64MB
runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
row-size=16B cardinality=29.76K
====
# TPCD-Q6
select * from (
select a.ca_state state, count(*) cnt
from customer_address a
,customer c
,store_sales s
,date_dim d
,item i
where
a.ca_address_sk = c.c_current_addr_sk
and c.c_customer_sk = s.ss_customer_sk
and s.ss_sold_date_sk = d.d_date_sk
and s.ss_item_sk = i.i_item_sk
and d.d_month_seq =
(select distinct (d_month_seq)
from date_dim
where d_year = 1999
and d_moy = 1
limit 1)
and i.i_current_price > 1.2 *
(select avg(j.i_current_price)
from item j
where j.i_category = i.i_category)
group by a.ca_state
having count(*) >= 10
order by cnt limit 100) as t
---- PLAN
Max Per-Host Resource Reservation: Memory=73.62MB Threads=8
Per-Host Resource Estimates: Memory=402MB
PLAN-ROOT SINK
|
16:TOP-N [LIMIT=100]
| order by: count(*) ASC
| row-size=22B cardinality=5
|
15:AGGREGATE [FINALIZE]
| output: count(*)
| group by: a.ca_state
| having: count(*) >= 10
| row-size=22B cardinality=5
|
14:HASH JOIN [LEFT SEMI JOIN]
| hash predicates: i.i_category = j.i_category
| other join predicates: i.i_current_price > 1.2 * avg(j.i_current_price)
| runtime filters: RF000 <- j.i_category
| row-size=80B cardinality=1.19K
|
|--08:AGGREGATE [FINALIZE]
| | output: avg(j.i_current_price)
| | group by: j.i_category
| | row-size=26B cardinality=10
| |
| 07:SCAN HDFS [tpcds.item j]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=22B cardinality=18.00K
|
13:HASH JOIN [LEFT SEMI JOIN]
| hash predicates: d.d_month_seq = (d_month_seq)
| runtime filters: RF002 <- (d_month_seq)
| row-size=80B cardinality=1.19K
|
|--06:AGGREGATE [FINALIZE]
| | group by: (d_month_seq)
| | limit: 1
| | row-size=4B cardinality=1
| |
| 05:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1999, d_moy = 1
| row-size=12B cardinality=108
|
12:HASH JOIN [INNER JOIN]
| hash predicates: s.ss_item_sk = i.i_item_sk
| runtime filters: RF004 <- i.i_item_sk
| row-size=80B cardinality=2.88M
|
|--04:SCAN HDFS [tpcds.item i]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i.i_category
| row-size=30B cardinality=18.00K
|
11:HASH JOIN [INNER JOIN]
| hash predicates: s.ss_sold_date_sk = d.d_date_sk
| runtime filters: RF006 <- d.d_date_sk
| row-size=50B cardinality=2.88M
|
|--03:SCAN HDFS [tpcds.date_dim d]
| HDFS partitions=1/1 files=1 size=9.84MB
| runtime filters: RF002 -> d.d_month_seq
| row-size=8B cardinality=73.05K
|
10:HASH JOIN [INNER JOIN]
| hash predicates: c.c_current_addr_sk = a.ca_address_sk
| runtime filters: RF008 <- a.ca_address_sk
| row-size=42B cardinality=2.88M
|
|--00:SCAN HDFS [tpcds.customer_address a]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=18B cardinality=50.00K
|
09:HASH JOIN [INNER JOIN]
| hash predicates: s.ss_customer_sk = c.c_customer_sk
| runtime filters: RF010 <- c.c_customer_sk
| row-size=24B cardinality=2.88M
|
|--01:SCAN HDFS [tpcds.customer c]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF008 -> c.c_current_addr_sk
| row-size=8B cardinality=100.00K
|
02:SCAN HDFS [tpcds.store_sales s]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> s.ss_item_sk, RF006 -> s.ss_sold_date_sk, RF010 -> s.ss_customer_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=88.44MB Threads=19
Per-Host Resource Estimates: Memory=452MB
PLAN-ROOT SINK
|
30:MERGING-EXCHANGE [UNPARTITIONED]
| order by: count(*) ASC
| limit: 100
|
16:TOP-N [LIMIT=100]
| order by: count(*) ASC
| row-size=22B cardinality=5
|
29:AGGREGATE [FINALIZE]
| output: count:merge(*)
| group by: a.ca_state
| having: count(*) >= 10
| row-size=22B cardinality=5
|
28:EXCHANGE [HASH(a.ca_state)]
|
15:AGGREGATE [STREAMING]
| output: count(*)
| group by: a.ca_state
| row-size=22B cardinality=51
|
14:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: i.i_category = j.i_category
| other join predicates: i.i_current_price > 1.2 * avg(j.i_current_price)
| runtime filters: RF000 <- j.i_category
| row-size=80B cardinality=1.19K
|
|--27:EXCHANGE [BROADCAST]
| |
| 26:AGGREGATE [FINALIZE]
| | output: avg:merge(j.i_current_price)
| | group by: j.i_category
| | row-size=26B cardinality=10
| |
| 25:EXCHANGE [HASH(j.i_category)]
| |
| 08:AGGREGATE [STREAMING]
| | output: avg(j.i_current_price)
| | group by: j.i_category
| | row-size=26B cardinality=10
| |
| 07:SCAN HDFS [tpcds.item j]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=22B cardinality=18.00K
|
13:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: d.d_month_seq = (d_month_seq)
| runtime filters: RF002 <- (d_month_seq)
| row-size=80B cardinality=1.19K
|
|--24:EXCHANGE [BROADCAST]
| |
| 23:EXCHANGE [UNPARTITIONED]
| | limit: 1
| |
| 22:AGGREGATE [FINALIZE]
| | group by: (d_month_seq)
| | limit: 1
| | row-size=4B cardinality=1
| |
| 21:EXCHANGE [HASH((d_month_seq))]
| |
| 06:AGGREGATE [STREAMING]
| | group by: (d_month_seq)
| | row-size=4B cardinality=108
| |
| 05:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1999, d_moy = 1
| row-size=12B cardinality=108
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: s.ss_item_sk = i.i_item_sk
| runtime filters: RF004 <- i.i_item_sk
| row-size=80B cardinality=2.88M
|
|--20:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item i]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i.i_category
| row-size=30B cardinality=18.00K
|
11:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: s.ss_sold_date_sk = d.d_date_sk
| runtime filters: RF006 <- d.d_date_sk
| row-size=50B cardinality=2.88M
|
|--19:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.date_dim d]
| HDFS partitions=1/1 files=1 size=9.84MB
| runtime filters: RF002 -> d.d_month_seq
| row-size=8B cardinality=73.05K
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: c.c_current_addr_sk = a.ca_address_sk
| runtime filters: RF008 <- a.ca_address_sk
| row-size=42B cardinality=2.88M
|
|--18:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.customer_address a]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=18B cardinality=50.00K
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: s.ss_customer_sk = c.c_customer_sk
| runtime filters: RF010 <- c.c_customer_sk
| row-size=24B cardinality=2.88M
|
|--17:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer c]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF008 -> c.c_current_addr_sk
| row-size=8B cardinality=100.00K
|
02:SCAN HDFS [tpcds.store_sales s]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> s.ss_item_sk, RF006 -> s.ss_sold_date_sk, RF010 -> s.ss_customer_sk
row-size=16B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=115.00MB Threads=20
Per-Host Resource Estimates: Memory=270MB
PLAN-ROOT SINK
|
30:MERGING-EXCHANGE [UNPARTITIONED]
| order by: count(*) ASC
| limit: 100
|
16:TOP-N [LIMIT=100]
| order by: count(*) ASC
| row-size=22B cardinality=5
|
29:AGGREGATE [FINALIZE]
| output: count:merge(*)
| group by: a.ca_state
| having: count(*) >= 10
| row-size=22B cardinality=5
|
28:EXCHANGE [HASH(a.ca_state)]
|
15:AGGREGATE [STREAMING]
| output: count(*)
| group by: a.ca_state
| row-size=22B cardinality=51
|
14:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: i.i_category = j.i_category
| other join predicates: i.i_current_price > 1.2 * avg(j.i_current_price)
| row-size=80B cardinality=1.19K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: j.i_category
| | runtime filters: RF000 <- j.i_category
| |
| 27:EXCHANGE [BROADCAST]
| |
| 26:AGGREGATE [FINALIZE]
| | output: avg:merge(j.i_current_price)
| | group by: j.i_category
| | row-size=26B cardinality=10
| |
| 25:EXCHANGE [HASH(j.i_category)]
| |
| 08:AGGREGATE [STREAMING]
| | output: avg(j.i_current_price)
| | group by: j.i_category
| | row-size=26B cardinality=10
| |
| 07:SCAN HDFS [tpcds.item j]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=22B cardinality=18.00K
|
13:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: d.d_month_seq = (d_month_seq)
| row-size=80B cardinality=1.19K
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: (d_month_seq)
| | runtime filters: RF002 <- (d_month_seq)
| |
| 24:EXCHANGE [BROADCAST]
| |
| 23:EXCHANGE [UNPARTITIONED]
| | limit: 1
| |
| 22:AGGREGATE [FINALIZE]
| | group by: (d_month_seq)
| | limit: 1
| | row-size=4B cardinality=1
| |
| 21:EXCHANGE [HASH((d_month_seq))]
| |
| 06:AGGREGATE [STREAMING]
| | group by: (d_month_seq)
| | row-size=4B cardinality=108
| |
| 05:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1999, d_moy = 1
| row-size=12B cardinality=108
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: s.ss_item_sk = i.i_item_sk
| row-size=80B cardinality=2.88M
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: i.i_item_sk
| | runtime filters: RF004 <- i.i_item_sk
| |
| 20:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item i]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i.i_category
| row-size=30B cardinality=18.00K
|
11:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: s.ss_sold_date_sk = d.d_date_sk
| row-size=50B cardinality=2.88M
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: d.d_date_sk
| | runtime filters: RF006 <- d.d_date_sk
| |
| 19:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.date_dim d]
| HDFS partitions=1/1 files=1 size=9.84MB
| runtime filters: RF002 -> d.d_month_seq
| row-size=8B cardinality=73.05K
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: c.c_current_addr_sk = a.ca_address_sk
| row-size=42B cardinality=2.88M
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: a.ca_address_sk
| | runtime filters: RF008 <- a.ca_address_sk
| |
| 18:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [tpcds.customer_address a]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=18B cardinality=50.00K
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: s.ss_customer_sk = c.c_customer_sk
| row-size=24B cardinality=2.88M
|
|--JOIN BUILD
| | join-table-id=05 plan-id=06 cohort-id=01
| | build expressions: c.c_customer_sk
| | runtime filters: RF010 <- c.c_customer_sk
| |
| 17:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer c]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF008 -> c.c_current_addr_sk
| row-size=8B cardinality=100.00K
|
02:SCAN HDFS [tpcds.store_sales s]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> s.ss_item_sk, RF006 -> s.ss_sold_date_sk, RF010 -> s.ss_customer_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q47
with v1 as (
select i_category, i_brand,
s_store_name, s_company_name,
d_year, d_moy,
sum(ss_sales_price) sum_sales,
avg(sum(ss_sales_price)) over
(partition by i_category, i_brand,
s_store_name, s_company_name, d_year)
avg_monthly_sales,
rank() over
(partition by i_category, i_brand,
s_store_name, s_company_name
order by d_year, d_moy) rn
from item, store_sales, date_dim, store
where ss_item_sk = i_item_sk and
ss_sold_date_sk = d_date_sk and
ss_store_sk = s_store_sk and
(
d_year = 2000 or
( d_year = 2000-1 and d_moy =12) or
( d_year = 2000+1 and d_moy =1)
)
group by i_category, i_brand,
s_store_name, s_company_name,
d_year, d_moy),
v2 as(
select v1.i_category, v1.i_brand
,v1.d_year
,v1.avg_monthly_sales
,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum
from v1, v1 v1_lag, v1 v1_lead
where v1.i_category = v1_lag.i_category and
v1.i_category = v1_lead.i_category and
v1.i_brand = v1_lag.i_brand and
v1.i_brand = v1_lead.i_brand and
v1.s_store_name = v1_lag.s_store_name and
v1.s_store_name = v1_lead.s_store_name and
v1.s_company_name = v1_lag.s_company_name and
v1.s_company_name = v1_lead.s_company_name and
v1.rn = v1_lag.rn + 1 and
v1.rn = v1_lead.rn - 1)
select * from ( select *
from v2
where d_year = 2000 and
avg_monthly_sales > 0 and
case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1
order by sum_sales - avg_monthly_sales, d_year
limit 100
) as v3
---- PLAN
Max Per-Host Resource Reservation: Memory=168.44MB Threads=13
Per-Host Resource Estimates: Memory=762MB
PLAN-ROOT SINK
|
35:TOP-N [LIMIT=100]
| order by: sum_sales - avg_monthly_sales ASC, d_year ASC
| row-size=114B cardinality=100
|
34:HASH JOIN [INNER JOIN]
| hash predicates: rank() = rank() - 1, s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
| row-size=356B cardinality=1.09G
|
|--32:ANALYTIC
| | functions: rank()
| | partition by: i_category, i_brand, s_store_name, s_company_name
| | order by: d_year ASC, d_moy ASC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=113B cardinality=685.36K
| |
| 31:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| | row-size=105B cardinality=685.36K
| |
| 30:AGGREGATE [FINALIZE]
| | output: sum(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 29:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF012 <- s_store_sk
| | row-size=125B cardinality=685.36K
| |
| |--26:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=39B cardinality=12
| |
| 28:HASH JOIN [INNER JOIN]
| | hash predicates: ss_item_sk = i_item_sk
| | runtime filters: RF014 <- i_item_sk
| | row-size=86B cardinality=685.36K
| |
| |--23:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=54B cardinality=18.00K
| |
| 27:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF016 <- d_date_sk
| | row-size=32B cardinality=685.36K
| |
| |--25:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| | row-size=12B cardinality=434
| |
| 24:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF012 -> ss_store_sk, RF014 -> ss_item_sk, RF016 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
33:HASH JOIN [INNER JOIN]
| hash predicates: rank() + 1 = rank(), s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
| row-size=243B cardinality=1.10M
|
|--12:SELECT
| | predicates: d_year = 2000, avg(sum(ss_sales_price)) > 0, CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
| | row-size=129B cardinality=1.11K
| |
| 11:ANALYTIC
| | functions: avg(sum(ss_sales_price))
| | partition by: i_category, i_brand, s_store_name, s_company_name, d_year
| | row-size=129B cardinality=685.36K
| |
| 10:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC NULLS LAST
| | row-size=113B cardinality=685.36K
| |
| 09:ANALYTIC
| | functions: rank()
| | partition by: i_category, i_brand, s_store_name, s_company_name
| | order by: d_year ASC, d_moy ASC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=113B cardinality=685.36K
| |
| 08:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| | row-size=105B cardinality=685.36K
| |
| 07:AGGREGATE [FINALIZE]
| | output: sum(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF006 <- s_store_sk
| | row-size=125B cardinality=685.36K
| |
| |--03:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=39B cardinality=12
| |
| 05:HASH JOIN [INNER JOIN]
| | hash predicates: ss_item_sk = i_item_sk
| | runtime filters: RF008 <- i_item_sk
| | row-size=86B cardinality=685.36K
| |
| |--00:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=54B cardinality=18.00K
| |
| 04:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=32B cardinality=685.36K
| |
| |--02:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| | row-size=12B cardinality=434
| |
| 01:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_store_sk, RF008 -> ss_item_sk, RF010 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
22:ANALYTIC
| functions: rank()
| partition by: i_category, i_brand, s_store_name, s_company_name
| order by: d_year ASC, d_moy ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=113B cardinality=685.36K
|
21:SORT
| order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| row-size=105B cardinality=685.36K
|
20:AGGREGATE [FINALIZE]
| output: sum(ss_sales_price)
| group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| row-size=105B cardinality=685.36K
|
19:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=125B cardinality=685.36K
|
|--16:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=39B cardinality=12
|
18:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=86B cardinality=685.36K
|
|--13:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=54B cardinality=18.00K
|
17:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF004 <- d_date_sk
| row-size=32B cardinality=685.36K
|
|--15:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| row-size=12B cardinality=434
|
14:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
row-size=20B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=390.40MB Threads=29
Per-Host Resource Estimates: Memory=1.06GB
PLAN-ROOT SINK
|
54:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum_sales - avg_monthly_sales ASC, d_year ASC
| limit: 100
|
35:TOP-N [LIMIT=100]
| order by: sum_sales - avg_monthly_sales ASC, d_year ASC
| row-size=114B cardinality=100
|
34:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: rank() = rank() - 1, s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
| row-size=356B cardinality=1.09G
|
|--53:EXCHANGE [HASH(rank() - 1,s_store_name,i_category,s_company_name,i_brand)]
| |
| 32:ANALYTIC
| | functions: rank()
| | partition by: i_category, i_brand, s_store_name, s_company_name
| | order by: d_year ASC, d_moy ASC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=113B cardinality=685.36K
| |
| 31:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| | row-size=105B cardinality=685.36K
| |
| 51:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 50:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
| |
| 30:AGGREGATE [STREAMING]
| | output: sum(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 29:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF012 <- s_store_sk
| | row-size=125B cardinality=685.36K
| |
| |--49:EXCHANGE [BROADCAST]
| | |
| | 26:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=39B cardinality=12
| |
| 28:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_item_sk = i_item_sk
| | runtime filters: RF014 <- i_item_sk
| | row-size=86B cardinality=685.36K
| |
| |--48:EXCHANGE [BROADCAST]
| | |
| | 23:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=54B cardinality=18.00K
| |
| 27:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF016 <- d_date_sk
| | row-size=32B cardinality=685.36K
| |
| |--47:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| | row-size=12B cardinality=434
| |
| 24:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF012 -> ss_store_sk, RF014 -> ss_item_sk, RF016 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
52:EXCHANGE [HASH(rank(),s_store_name,i_category,s_company_name,i_brand)]
|
33:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: rank() + 1 = rank(), s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
| row-size=243B cardinality=1.10M
|
|--46:EXCHANGE [BROADCAST]
| |
| 12:SELECT
| | predicates: d_year = 2000, avg(sum(ss_sales_price)) > 0, CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
| | row-size=129B cardinality=1.11K
| |
| 11:ANALYTIC
| | functions: avg(sum(ss_sales_price))
| | partition by: i_category, i_brand, s_store_name, s_company_name, d_year
| | row-size=129B cardinality=685.36K
| |
| 10:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC NULLS LAST
| | row-size=113B cardinality=685.36K
| |
| 09:ANALYTIC
| | functions: rank()
| | partition by: i_category, i_brand, s_store_name, s_company_name
| | order by: d_year ASC, d_moy ASC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=113B cardinality=685.36K
| |
| 08:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| | row-size=105B cardinality=685.36K
| |
| 45:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 44:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
| |
| 07:AGGREGATE [STREAMING]
| | output: sum(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 06:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF006 <- s_store_sk
| | row-size=125B cardinality=685.36K
| |
| |--43:EXCHANGE [BROADCAST]
| | |
| | 03:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=39B cardinality=12
| |
| 05:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_item_sk = i_item_sk
| | runtime filters: RF008 <- i_item_sk
| | row-size=86B cardinality=685.36K
| |
| |--42:EXCHANGE [BROADCAST]
| | |
| | 00:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=54B cardinality=18.00K
| |
| 04:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=32B cardinality=685.36K
| |
| |--41:EXCHANGE [BROADCAST]
| | |
| | 02:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| | row-size=12B cardinality=434
| |
| 01:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_store_sk, RF008 -> ss_item_sk, RF010 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
22:ANALYTIC
| functions: rank()
| partition by: i_category, i_brand, s_store_name, s_company_name
| order by: d_year ASC, d_moy ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=113B cardinality=685.36K
|
21:SORT
| order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| row-size=105B cardinality=685.36K
|
40:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| row-size=105B cardinality=685.36K
|
39:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
|
20:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| row-size=105B cardinality=685.36K
|
19:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=125B cardinality=685.36K
|
|--38:EXCHANGE [BROADCAST]
| |
| 16:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=39B cardinality=12
|
18:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=86B cardinality=685.36K
|
|--37:EXCHANGE [BROADCAST]
| |
| 13:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=54B cardinality=18.00K
|
17:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF004 <- d_date_sk
| row-size=32B cardinality=685.36K
|
|--36:EXCHANGE [BROADCAST]
| |
| 15:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| row-size=12B cardinality=434
|
14:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
row-size=20B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=698.77MB Threads=36
Per-Host Resource Estimates: Memory=915MB
PLAN-ROOT SINK
|
54:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum_sales - avg_monthly_sales ASC, d_year ASC
| limit: 100
|
35:TOP-N [LIMIT=100]
| order by: sum_sales - avg_monthly_sales ASC, d_year ASC
| row-size=114B cardinality=100
|
34:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: rank() = rank() - 1, s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
| row-size=356B cardinality=1.09G
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: rank() - 1, s_store_name, i_category, s_company_name, i_brand
| |
| 53:EXCHANGE [HASH(rank() - 1,s_store_name,i_category,s_company_name,i_brand)]
| |
| 32:ANALYTIC
| | functions: rank()
| | partition by: i_category, i_brand, s_store_name, s_company_name
| | order by: d_year ASC, d_moy ASC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=113B cardinality=685.36K
| |
| 31:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| | row-size=105B cardinality=685.36K
| |
| 51:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 50:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
| |
| 30:AGGREGATE [STREAMING]
| | output: sum(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 29:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=125B cardinality=685.36K
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: s_store_sk
| | | runtime filters: RF012 <- s_store_sk
| | |
| | 49:EXCHANGE [BROADCAST]
| | |
| | 26:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=39B cardinality=12
| |
| 28:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_item_sk = i_item_sk
| | row-size=86B cardinality=685.36K
| |
| |--JOIN BUILD
| | | join-table-id=02 plan-id=03 cohort-id=02
| | | build expressions: i_item_sk
| | | runtime filters: RF014 <- i_item_sk
| | |
| | 48:EXCHANGE [BROADCAST]
| | |
| | 23:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=54B cardinality=18.00K
| |
| 27:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | row-size=32B cardinality=685.36K
| |
| |--JOIN BUILD
| | | join-table-id=03 plan-id=04 cohort-id=02
| | | build expressions: d_date_sk
| | | runtime filters: RF016 <- d_date_sk
| | |
| | 47:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| | row-size=12B cardinality=434
| |
| 24:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF012 -> ss_store_sk, RF014 -> ss_item_sk, RF016 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
52:EXCHANGE [HASH(rank(),s_store_name,i_category,s_company_name,i_brand)]
|
33:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: rank() + 1 = rank(), s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
| row-size=243B cardinality=1.10M
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: rank(), s_store_name, i_category, s_company_name, i_brand
| |
| 46:EXCHANGE [BROADCAST]
| |
| 12:SELECT
| | predicates: d_year = 2000, avg(sum(ss_sales_price)) > 0, CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
| | row-size=129B cardinality=1.11K
| |
| 11:ANALYTIC
| | functions: avg(sum(ss_sales_price))
| | partition by: i_category, i_brand, s_store_name, s_company_name, d_year
| | row-size=129B cardinality=685.36K
| |
| 10:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC NULLS LAST
| | row-size=113B cardinality=685.36K
| |
| 09:ANALYTIC
| | functions: rank()
| | partition by: i_category, i_brand, s_store_name, s_company_name
| | order by: d_year ASC, d_moy ASC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=113B cardinality=685.36K
| |
| 08:SORT
| | order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| | row-size=105B cardinality=685.36K
| |
| 45:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 44:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
| |
| 07:AGGREGATE [STREAMING]
| | output: sum(ss_sales_price)
| | group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| | row-size=105B cardinality=685.36K
| |
| 06:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=125B cardinality=685.36K
| |
| |--JOIN BUILD
| | | join-table-id=05 plan-id=06 cohort-id=03
| | | build expressions: s_store_sk
| | | runtime filters: RF006 <- s_store_sk
| | |
| | 43:EXCHANGE [BROADCAST]
| | |
| | 03:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=39B cardinality=12
| |
| 05:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_item_sk = i_item_sk
| | row-size=86B cardinality=685.36K
| |
| |--JOIN BUILD
| | | join-table-id=06 plan-id=07 cohort-id=03
| | | build expressions: i_item_sk
| | | runtime filters: RF008 <- i_item_sk
| | |
| | 42:EXCHANGE [BROADCAST]
| | |
| | 00:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=54B cardinality=18.00K
| |
| 04:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | row-size=32B cardinality=685.36K
| |
| |--JOIN BUILD
| | | join-table-id=07 plan-id=08 cohort-id=03
| | | build expressions: d_date_sk
| | | runtime filters: RF010 <- d_date_sk
| | |
| | 41:EXCHANGE [BROADCAST]
| | |
| | 02:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| | row-size=12B cardinality=434
| |
| 01:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_store_sk, RF008 -> ss_item_sk, RF010 -> ss_sold_date_sk
| row-size=20B cardinality=2.88M
|
22:ANALYTIC
| functions: rank()
| partition by: i_category, i_brand, s_store_name, s_company_name
| order by: d_year ASC, d_moy ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=113B cardinality=685.36K
|
21:SORT
| order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
| row-size=105B cardinality=685.36K
|
40:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| row-size=105B cardinality=685.36K
|
39:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
|
20:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
| row-size=105B cardinality=685.36K
|
19:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=125B cardinality=685.36K
|
|--JOIN BUILD
| | join-table-id=08 plan-id=09 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF000 <- s_store_sk
| |
| 38:EXCHANGE [BROADCAST]
| |
| 16:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=39B cardinality=12
|
18:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=86B cardinality=685.36K
|
|--JOIN BUILD
| | join-table-id=09 plan-id=10 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF002 <- i_item_sk
| |
| 37:EXCHANGE [BROADCAST]
| |
| 13:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=54B cardinality=18.00K
|
17:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=32B cardinality=685.36K
|
|--JOIN BUILD
| | join-table-id=10 plan-id=11 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF004 <- d_date_sk
| |
| 36:EXCHANGE [BROADCAST]
| |
| 15:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
| row-size=12B cardinality=434
|
14:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
row-size=20B cardinality=2.88M
====
# TPCDS-Q66
select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100
from
(select sum(ss_ext_sales_price) promotions
from store_sales
,store
,promotion
,date_dim
,customer
,customer_address
,item
where ss_sold_date_sk = d_date_sk
and ss_store_sk = s_store_sk
and ss_promo_sk = p_promo_sk
and ss_customer_sk= c_customer_sk
and ca_address_sk = c_current_addr_sk
and ss_item_sk = i_item_sk
and ca_gmt_offset = -5
and i_category = 'Books'
and (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y')
and s_gmt_offset = -5
and d_year = 2000
and d_moy = 11) promotional_sales,
(select sum(ss_ext_sales_price) total
from store_sales
,store
,date_dim
,customer
,customer_address
,item
where ss_sold_date_sk = d_date_sk
and ss_store_sk = s_store_sk
and ss_customer_sk= c_customer_sk
and ca_address_sk = c_current_addr_sk
and ss_item_sk = i_item_sk
and ca_gmt_offset = -5
and i_category = 'Books'
and s_gmt_offset = -5
and d_year = 2000
and d_moy = 11) all_sales
order by promotions, total
---- PLAN
Max Per-Host Resource Reservation: Memory=111.39MB Threads=14
Per-Host Resource Estimates: Memory=703MB
PLAN-ROOT SINK
|
27:SORT
| order by: promotions ASC, total ASC
| row-size=32B cardinality=1
|
26:NESTED LOOP JOIN [CROSS JOIN]
| row-size=32B cardinality=1
|
|--25:AGGREGATE [FINALIZE]
| | output: sum(ss_ext_sales_price)
| | row-size=16B cardinality=1
| |
| 24:HASH JOIN [INNER JOIN]
| | hash predicates: c_current_addr_sk = ca_address_sk
| | runtime filters: RF012 <- ca_address_sk
| | row-size=86B cardinality=3.30K
| |
| |--18:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 23:HASH JOIN [INNER JOIN]
| | hash predicates: ss_customer_sk = c_customer_sk
| | runtime filters: RF014 <- c_customer_sk
| | row-size=78B cardinality=17.06K
| |
| |--17:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | runtime filters: RF012 -> c_current_addr_sk
| | row-size=8B cardinality=100.00K
| |
| 22:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=70B cardinality=17.06K
| |
| |--15:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: s_gmt_offset = -5
| | row-size=8B cardinality=12
| |
| 21:HASH JOIN [INNER JOIN]
| | hash predicates: ss_item_sk = i_item_sk
| | runtime filters: RF018 <- i_item_sk
| | row-size=62B cardinality=17.06K
| |
| |--19:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category = 'Books'
| | row-size=26B cardinality=1.80K
| |
| 20:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF020 <- d_date_sk
| | row-size=36B cardinality=170.55K
| |
| |--16:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 2000, d_moy = 11
| | row-size=12B cardinality=108
| |
| 14:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF020 -> ss_sold_date_sk, RF018 -> ss_item_sk, RF014 -> ss_customer_sk
| row-size=24B cardinality=2.88M
|
13:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| row-size=16B cardinality=1
|
12:HASH JOIN [INNER JOIN]
| hash predicates: c_current_addr_sk = ca_address_sk
| runtime filters: RF000 <- ca_address_sk
| row-size=133B cardinality=3.28K
|
|--05:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
11:HASH JOIN [INNER JOIN]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=125B cardinality=16.94K
|
|--04:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
10:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF004 <- s_store_sk
| row-size=117B cardinality=16.94K
|
|--01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_gmt_offset = -5
| row-size=8B cardinality=12
|
09:HASH JOIN [INNER JOIN]
| hash predicates: ss_promo_sk = p_promo_sk
| runtime filters: RF006 <- p_promo_sk
| row-size=109B cardinality=16.94K
|
|--02:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: (p_channel_dmail = 'Y' OR p_channel_email = 'Y' OR p_channel_tv = 'Y')
| row-size=43B cardinality=300
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF008 <- i_item_sk
| row-size=66B cardinality=17.06K
|
|--06:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category = 'Books'
| row-size=26B cardinality=1.80K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF010 <- d_date_sk
| row-size=40B cardinality=170.55K
|
|--03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2000, d_moy = 11
| row-size=12B cardinality=108
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF010 -> ss_sold_date_sk, RF008 -> ss_item_sk, RF006 -> ss_promo_sk, RF002 -> ss_customer_sk, RF004 -> ss_store_sk
row-size=28B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=121.39MB Threads=30
Per-Host Resource Estimates: Memory=755MB
PLAN-ROOT SINK
|
27:SORT
| order by: promotions ASC, total ASC
| row-size=32B cardinality=1
|
26:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=32B cardinality=1
|
|--45:EXCHANGE [UNPARTITIONED]
| |
| 44:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_ext_sales_price)
| | row-size=16B cardinality=1
| |
| 43:EXCHANGE [UNPARTITIONED]
| |
| 25:AGGREGATE
| | output: sum(ss_ext_sales_price)
| | row-size=16B cardinality=1
| |
| 24:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: c_current_addr_sk = ca_address_sk
| | runtime filters: RF012 <- ca_address_sk
| | row-size=86B cardinality=3.30K
| |
| |--42:EXCHANGE [BROADCAST]
| | |
| | 18:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 23:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: ss_customer_sk = c_customer_sk
| | runtime filters: RF014 <- c_customer_sk
| | row-size=78B cardinality=17.06K
| |
| |--41:EXCHANGE [HASH(c_customer_sk)]
| | |
| | 17:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | runtime filters: RF012 -> c_current_addr_sk
| | row-size=8B cardinality=100.00K
| |
| 40:EXCHANGE [HASH(ss_customer_sk)]
| |
| 22:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=70B cardinality=17.06K
| |
| |--39:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: s_gmt_offset = -5
| | row-size=8B cardinality=12
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_item_sk = i_item_sk
| | runtime filters: RF018 <- i_item_sk
| | row-size=62B cardinality=17.06K
| |
| |--38:EXCHANGE [BROADCAST]
| | |
| | 19:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category = 'Books'
| | row-size=26B cardinality=1.80K
| |
| 20:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF020 <- d_date_sk
| | row-size=36B cardinality=170.55K
| |
| |--37:EXCHANGE [BROADCAST]
| | |
| | 16:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 2000, d_moy = 11
| | row-size=12B cardinality=108
| |
| 14:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF020 -> ss_sold_date_sk, RF018 -> ss_item_sk, RF014 -> ss_customer_sk
| row-size=24B cardinality=2.88M
|
36:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| row-size=16B cardinality=1
|
35:EXCHANGE [UNPARTITIONED]
|
13:AGGREGATE
| output: sum(ss_ext_sales_price)
| row-size=16B cardinality=1
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: c_current_addr_sk = ca_address_sk
| runtime filters: RF000 <- ca_address_sk
| row-size=133B cardinality=3.28K
|
|--34:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
11:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=125B cardinality=16.94K
|
|--33:EXCHANGE [HASH(c_customer_sk)]
| |
| 04:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
32:EXCHANGE [HASH(ss_customer_sk)]
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF004 <- s_store_sk
| row-size=117B cardinality=16.94K
|
|--31:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_gmt_offset = -5
| row-size=8B cardinality=12
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_promo_sk = p_promo_sk
| runtime filters: RF006 <- p_promo_sk
| row-size=109B cardinality=16.94K
|
|--30:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: (p_channel_dmail = 'Y' OR p_channel_email = 'Y' OR p_channel_tv = 'Y')
| row-size=43B cardinality=300
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF008 <- i_item_sk
| row-size=66B cardinality=17.06K
|
|--29:EXCHANGE [BROADCAST]
| |
| 06:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category = 'Books'
| row-size=26B cardinality=1.80K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF010 <- d_date_sk
| row-size=40B cardinality=170.55K
|
|--28:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2000, d_moy = 11
| row-size=12B cardinality=108
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF010 -> ss_sold_date_sk, RF008 -> ss_item_sk, RF006 -> ss_promo_sk, RF002 -> ss_customer_sk, RF004 -> ss_store_sk
row-size=28B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=166.70MB Threads=35
Per-Host Resource Estimates: Memory=411MB
PLAN-ROOT SINK
|
27:SORT
| order by: promotions ASC, total ASC
| row-size=32B cardinality=1
|
26:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 00
| row-size=32B cardinality=1
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| |
| 45:EXCHANGE [UNPARTITIONED]
| |
| 44:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_ext_sales_price)
| | row-size=16B cardinality=1
| |
| 43:EXCHANGE [UNPARTITIONED]
| |
| 25:AGGREGATE
| | output: sum(ss_ext_sales_price)
| | row-size=16B cardinality=1
| |
| 24:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: c_current_addr_sk = ca_address_sk
| | row-size=86B cardinality=3.30K
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: ca_address_sk
| | | runtime filters: RF012 <- ca_address_sk
| | |
| | 42:EXCHANGE [BROADCAST]
| | |
| | 18:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 23:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: ss_customer_sk = c_customer_sk
| | row-size=78B cardinality=17.06K
| |
| |--JOIN BUILD
| | | join-table-id=02 plan-id=03 cohort-id=02
| | | build expressions: c_customer_sk
| | | runtime filters: RF014 <- c_customer_sk
| | |
| | 41:EXCHANGE [HASH(c_customer_sk)]
| | |
| | 17:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | runtime filters: RF012 -> c_current_addr_sk
| | row-size=8B cardinality=100.00K
| |
| 40:EXCHANGE [HASH(ss_customer_sk)]
| |
| 22:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=70B cardinality=17.06K
| |
| |--JOIN BUILD
| | | join-table-id=03 plan-id=04 cohort-id=02
| | | build expressions: s_store_sk
| | |
| | 39:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: s_gmt_offset = -5
| | row-size=8B cardinality=12
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_item_sk = i_item_sk
| | row-size=62B cardinality=17.06K
| |
| |--JOIN BUILD
| | | join-table-id=04 plan-id=05 cohort-id=02
| | | build expressions: i_item_sk
| | | runtime filters: RF018 <- i_item_sk
| | |
| | 38:EXCHANGE [BROADCAST]
| | |
| | 19:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category = 'Books'
| | row-size=26B cardinality=1.80K
| |
| 20:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | row-size=36B cardinality=170.55K
| |
| |--JOIN BUILD
| | | join-table-id=05 plan-id=06 cohort-id=02
| | | build expressions: d_date_sk
| | | runtime filters: RF020 <- d_date_sk
| | |
| | 37:EXCHANGE [BROADCAST]
| | |
| | 16:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 2000, d_moy = 11
| | row-size=12B cardinality=108
| |
| 14:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF020 -> ss_sold_date_sk, RF018 -> ss_item_sk, RF014 -> ss_customer_sk
| row-size=24B cardinality=2.88M
|
36:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| row-size=16B cardinality=1
|
35:EXCHANGE [UNPARTITIONED]
|
13:AGGREGATE
| output: sum(ss_ext_sales_price)
| row-size=16B cardinality=1
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: c_current_addr_sk = ca_address_sk
| row-size=133B cardinality=3.28K
|
|--JOIN BUILD
| | join-table-id=06 plan-id=07 cohort-id=01
| | build expressions: ca_address_sk
| | runtime filters: RF000 <- ca_address_sk
| |
| 34:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
11:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_customer_sk = c_customer_sk
| row-size=125B cardinality=16.94K
|
|--JOIN BUILD
| | join-table-id=07 plan-id=08 cohort-id=01
| | build expressions: c_customer_sk
| | runtime filters: RF002 <- c_customer_sk
| |
| 33:EXCHANGE [HASH(c_customer_sk)]
| |
| 04:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
32:EXCHANGE [HASH(ss_customer_sk)]
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=117B cardinality=16.94K
|
|--JOIN BUILD
| | join-table-id=08 plan-id=09 cohort-id=01
| | build expressions: s_store_sk
| | runtime filters: RF004 <- s_store_sk
| |
| 31:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_gmt_offset = -5
| row-size=8B cardinality=12
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_promo_sk = p_promo_sk
| row-size=109B cardinality=16.94K
|
|--JOIN BUILD
| | join-table-id=09 plan-id=10 cohort-id=01
| | build expressions: p_promo_sk
| | runtime filters: RF006 <- p_promo_sk
| |
| 30:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: (p_channel_dmail = 'Y' OR p_channel_email = 'Y' OR p_channel_tv = 'Y')
| row-size=43B cardinality=300
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| row-size=66B cardinality=17.06K
|
|--JOIN BUILD
| | join-table-id=10 plan-id=11 cohort-id=01
| | build expressions: i_item_sk
| | runtime filters: RF008 <- i_item_sk
| |
| 29:EXCHANGE [BROADCAST]
| |
| 06:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category = 'Books'
| row-size=26B cardinality=1.80K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| row-size=40B cardinality=170.55K
|
|--JOIN BUILD
| | join-table-id=11 plan-id=12 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF010 <- d_date_sk
| |
| 28:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2000, d_moy = 11
| row-size=12B cardinality=108
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF010 -> ss_sold_date_sk, RF008 -> ss_item_sk, RF006 -> ss_promo_sk, RF002 -> ss_customer_sk, RF004 -> ss_store_sk
row-size=28B cardinality=2.88M
====
# TPCDS-Q88
select *
from
(select count(*) h8_30_to_9
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 8
and time_dim.t_minute >= 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s1,
(select count(*) h9_to_9_30
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 9
and time_dim.t_minute < 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s2,
(select count(*) h9_30_to_10
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 9
and time_dim.t_minute >= 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s3,
(select count(*) h10_to_10_30
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 10
and time_dim.t_minute < 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s4,
(select count(*) h10_30_to_11
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 10
and time_dim.t_minute >= 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s5,
(select count(*) h11_to_11_30
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 11
and time_dim.t_minute < 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s6,
(select count(*) h11_30_to_12
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 11
and time_dim.t_minute >= 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s7,
(select count(*) h12_to_12_30
from store_sales, household_demographics , time_dim, store
where ss_sold_time_sk = time_dim.t_time_sk
and ss_hdemo_sk = household_demographics.hd_demo_sk
and ss_store_sk = s_store_sk
and time_dim.t_hour = 12
and time_dim.t_minute < 30
and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
(household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
(household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
and store.s_store_name = 'ese') s8
---- PLAN
Max Per-Host Resource Reservation: Memory=186.56MB Threads=33
Per-Host Resource Estimates: Memory=1.81GB
PLAN-ROOT SINK
|
70:NESTED LOOP JOIN [CROSS JOIN]
| row-size=64B cardinality=1
|
|--63:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 62:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--59:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 61:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--57:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 60:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF046 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--58:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 12, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 56:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF046 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
69:NESTED LOOP JOIN [CROSS JOIN]
| row-size=56B cardinality=1
|
|--55:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 54:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--51:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 53:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--49:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 52:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF040 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--50:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 11, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 48:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF040 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
68:NESTED LOOP JOIN [CROSS JOIN]
| row-size=48B cardinality=1
|
|--47:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 46:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--43:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 45:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--41:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 44:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF034 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--42:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 11, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 40:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF034 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
67:NESTED LOOP JOIN [CROSS JOIN]
| row-size=40B cardinality=1
|
|--39:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 38:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--35:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 37:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--33:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 36:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF028 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--34:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 10, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 32:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF028 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
66:NESTED LOOP JOIN [CROSS JOIN]
| row-size=32B cardinality=1
|
|--31:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 30:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--27:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 29:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--25:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 28:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF022 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--26:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 10, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 24:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF022 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
65:NESTED LOOP JOIN [CROSS JOIN]
| row-size=24B cardinality=1
|
|--23:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 22:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--19:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 21:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--17:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 20:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF016 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--18:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 9, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 16:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF016 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
64:NESTED LOOP JOIN [CROSS JOIN]
| row-size=16B cardinality=1
|
|--15:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 14:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--11:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 13:HASH JOIN [INNER JOIN]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | runtime filters: RF008 <- household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--09:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 12:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF010 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--10:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 9, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 08:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF010 -> ss_sold_time_sk, RF008 -> ss_hdemo_sk
| row-size=12B cardinality=2.88M
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| row-size=56B cardinality=2.27K
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_store_name = 'ese'
| row-size=20B cardinality=2
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF002 <- household_demographics.hd_demo_sk
| row-size=36B cardinality=6.82K
|
|--01:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| row-size=12B cardinality=720
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| runtime filters: RF004 <- time_dim.t_time_sk
| row-size=24B cardinality=69.82K
|
|--02:SCAN HDFS [tpcds.time_dim]
| HDFS partitions=1/1 files=1 size=4.87MB
| predicates: time_dim.t_hour = 8, time_dim.t_minute >= 30
| row-size=12B cardinality=1.14K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> ss_sold_time_sk, RF002 -> ss_hdemo_sk
row-size=12B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=186.56MB Threads=72
Per-Host Resource Estimates: Memory=1.96GB
PLAN-ROOT SINK
|
70:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=64B cardinality=1
|
|--117:EXCHANGE [UNPARTITIONED]
| |
| 116:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 115:EXCHANGE [UNPARTITIONED]
| |
| 63:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 62:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--114:EXCHANGE [BROADCAST]
| | |
| | 59:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 61:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--113:EXCHANGE [BROADCAST]
| | |
| | 57:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 60:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF046 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--112:EXCHANGE [BROADCAST]
| | |
| | 58:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 12, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 56:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF046 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
69:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=56B cardinality=1
|
|--111:EXCHANGE [UNPARTITIONED]
| |
| 110:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 109:EXCHANGE [UNPARTITIONED]
| |
| 55:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 54:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--108:EXCHANGE [BROADCAST]
| | |
| | 51:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 53:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--107:EXCHANGE [BROADCAST]
| | |
| | 49:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 52:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF040 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--106:EXCHANGE [BROADCAST]
| | |
| | 50:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 11, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 48:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF040 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
68:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=48B cardinality=1
|
|--105:EXCHANGE [UNPARTITIONED]
| |
| 104:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 103:EXCHANGE [UNPARTITIONED]
| |
| 47:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 46:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--102:EXCHANGE [BROADCAST]
| | |
| | 43:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 45:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--101:EXCHANGE [BROADCAST]
| | |
| | 41:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 44:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF034 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--100:EXCHANGE [BROADCAST]
| | |
| | 42:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 11, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 40:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF034 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
67:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=40B cardinality=1
|
|--99:EXCHANGE [UNPARTITIONED]
| |
| 98:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 97:EXCHANGE [UNPARTITIONED]
| |
| 39:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 38:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--96:EXCHANGE [BROADCAST]
| | |
| | 35:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 37:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--95:EXCHANGE [BROADCAST]
| | |
| | 33:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 36:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF028 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--94:EXCHANGE [BROADCAST]
| | |
| | 34:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 10, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 32:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF028 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
66:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=32B cardinality=1
|
|--93:EXCHANGE [UNPARTITIONED]
| |
| 92:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 91:EXCHANGE [UNPARTITIONED]
| |
| 31:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 30:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--90:EXCHANGE [BROADCAST]
| | |
| | 27:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 29:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--89:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 28:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF022 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--88:EXCHANGE [BROADCAST]
| | |
| | 26:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 10, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 24:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF022 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
65:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=24B cardinality=1
|
|--87:EXCHANGE [UNPARTITIONED]
| |
| 86:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 85:EXCHANGE [UNPARTITIONED]
| |
| 23:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 22:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--84:EXCHANGE [BROADCAST]
| | |
| | 19:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--83:EXCHANGE [BROADCAST]
| | |
| | 17:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 20:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF016 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--82:EXCHANGE [BROADCAST]
| | |
| | 18:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 9, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 16:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF016 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
64:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=16B cardinality=1
|
|--81:EXCHANGE [UNPARTITIONED]
| |
| 80:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 79:EXCHANGE [UNPARTITIONED]
| |
| 15:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 14:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--78:EXCHANGE [BROADCAST]
| | |
| | 11:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 13:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | runtime filters: RF008 <- household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--77:EXCHANGE [BROADCAST]
| | |
| | 09:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 12:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | runtime filters: RF010 <- time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--76:EXCHANGE [BROADCAST]
| | |
| | 10:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 9, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 08:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF010 -> ss_sold_time_sk, RF008 -> ss_hdemo_sk
| row-size=12B cardinality=2.88M
|
75:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
74:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=56B cardinality=2.27K
|
|--73:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_store_name = 'ese'
| row-size=20B cardinality=2
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| runtime filters: RF002 <- household_demographics.hd_demo_sk
| row-size=36B cardinality=6.82K
|
|--72:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| row-size=12B cardinality=720
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| runtime filters: RF004 <- time_dim.t_time_sk
| row-size=24B cardinality=69.82K
|
|--71:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.time_dim]
| HDFS partitions=1/1 files=1 size=4.87MB
| predicates: time_dim.t_hour = 8, time_dim.t_minute >= 30
| row-size=12B cardinality=1.14K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> ss_sold_time_sk, RF002 -> ss_hdemo_sk
row-size=12B cardinality=2.88M
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=307.06MB Threads=79
Per-Host Resource Estimates: Memory=994MB
PLAN-ROOT SINK
|
70:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 00
| row-size=64B cardinality=1
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| |
| 117:EXCHANGE [UNPARTITIONED]
| |
| 116:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 115:EXCHANGE [UNPARTITIONED]
| |
| 63:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 62:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: s_store_sk
| | |
| | 114:EXCHANGE [BROADCAST]
| | |
| | 59:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 61:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=02 plan-id=03 cohort-id=02
| | | build expressions: household_demographics.hd_demo_sk
| | |
| | 113:EXCHANGE [BROADCAST]
| | |
| | 57:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 60:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=03 plan-id=04 cohort-id=02
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF046 <- time_dim.t_time_sk
| | |
| | 112:EXCHANGE [BROADCAST]
| | |
| | 58:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 12, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 56:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF046 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
69:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 04
| row-size=56B cardinality=1
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| |
| 111:EXCHANGE [UNPARTITIONED]
| |
| 110:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 109:EXCHANGE [UNPARTITIONED]
| |
| 55:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 54:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=05 plan-id=06 cohort-id=03
| | | build expressions: s_store_sk
| | |
| | 108:EXCHANGE [BROADCAST]
| | |
| | 51:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 53:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=06 plan-id=07 cohort-id=03
| | | build expressions: household_demographics.hd_demo_sk
| | |
| | 107:EXCHANGE [BROADCAST]
| | |
| | 49:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 52:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=07 plan-id=08 cohort-id=03
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF040 <- time_dim.t_time_sk
| | |
| | 106:EXCHANGE [BROADCAST]
| | |
| | 50:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 11, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 48:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF040 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
68:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 08
| row-size=48B cardinality=1
|
|--JOIN BUILD
| | join-table-id=08 plan-id=09 cohort-id=01
| |
| 105:EXCHANGE [UNPARTITIONED]
| |
| 104:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 103:EXCHANGE [UNPARTITIONED]
| |
| 47:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 46:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=09 plan-id=10 cohort-id=04
| | | build expressions: s_store_sk
| | |
| | 102:EXCHANGE [BROADCAST]
| | |
| | 43:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 45:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=10 plan-id=11 cohort-id=04
| | | build expressions: household_demographics.hd_demo_sk
| | |
| | 101:EXCHANGE [BROADCAST]
| | |
| | 41:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 44:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=11 plan-id=12 cohort-id=04
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF034 <- time_dim.t_time_sk
| | |
| | 100:EXCHANGE [BROADCAST]
| | |
| | 42:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 11, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 40:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF034 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
67:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 12
| row-size=40B cardinality=1
|
|--JOIN BUILD
| | join-table-id=12 plan-id=13 cohort-id=01
| |
| 99:EXCHANGE [UNPARTITIONED]
| |
| 98:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 97:EXCHANGE [UNPARTITIONED]
| |
| 39:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 38:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=13 plan-id=14 cohort-id=05
| | | build expressions: s_store_sk
| | |
| | 96:EXCHANGE [BROADCAST]
| | |
| | 35:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 37:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=14 plan-id=15 cohort-id=05
| | | build expressions: household_demographics.hd_demo_sk
| | |
| | 95:EXCHANGE [BROADCAST]
| | |
| | 33:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 36:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=15 plan-id=16 cohort-id=05
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF028 <- time_dim.t_time_sk
| | |
| | 94:EXCHANGE [BROADCAST]
| | |
| | 34:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 10, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 32:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF028 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
66:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 16
| row-size=32B cardinality=1
|
|--JOIN BUILD
| | join-table-id=16 plan-id=17 cohort-id=01
| |
| 93:EXCHANGE [UNPARTITIONED]
| |
| 92:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 91:EXCHANGE [UNPARTITIONED]
| |
| 31:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 30:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=17 plan-id=18 cohort-id=06
| | | build expressions: s_store_sk
| | |
| | 90:EXCHANGE [BROADCAST]
| | |
| | 27:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 29:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=18 plan-id=19 cohort-id=06
| | | build expressions: household_demographics.hd_demo_sk
| | |
| | 89:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 28:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=19 plan-id=20 cohort-id=06
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF022 <- time_dim.t_time_sk
| | |
| | 88:EXCHANGE [BROADCAST]
| | |
| | 26:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 10, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 24:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF022 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
65:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 20
| row-size=24B cardinality=1
|
|--JOIN BUILD
| | join-table-id=20 plan-id=21 cohort-id=01
| |
| 87:EXCHANGE [UNPARTITIONED]
| |
| 86:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 85:EXCHANGE [UNPARTITIONED]
| |
| 23:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 22:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=21 plan-id=22 cohort-id=07
| | | build expressions: s_store_sk
| | |
| | 84:EXCHANGE [BROADCAST]
| | |
| | 19:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=22 plan-id=23 cohort-id=07
| | | build expressions: household_demographics.hd_demo_sk
| | |
| | 83:EXCHANGE [BROADCAST]
| | |
| | 17:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 20:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=23 plan-id=24 cohort-id=07
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF016 <- time_dim.t_time_sk
| | |
| | 82:EXCHANGE [BROADCAST]
| | |
| | 18:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 9, time_dim.t_minute >= 30
| | row-size=12B cardinality=1.14K
| |
| 16:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF016 -> ss_sold_time_sk
| row-size=12B cardinality=2.88M
|
64:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 24
| row-size=16B cardinality=1
|
|--JOIN BUILD
| | join-table-id=24 plan-id=25 cohort-id=01
| |
| 81:EXCHANGE [UNPARTITIONED]
| |
| 80:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 79:EXCHANGE [UNPARTITIONED]
| |
| 15:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 14:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | row-size=56B cardinality=2.27K
| |
| |--JOIN BUILD
| | | join-table-id=25 plan-id=26 cohort-id=08
| | | build expressions: s_store_sk
| | |
| | 78:EXCHANGE [BROADCAST]
| | |
| | 11:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | predicates: store.s_store_name = 'ese'
| | row-size=20B cardinality=2
| |
| 13:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| | row-size=36B cardinality=6.82K
| |
| |--JOIN BUILD
| | | join-table-id=26 plan-id=27 cohort-id=08
| | | build expressions: household_demographics.hd_demo_sk
| | | runtime filters: RF008 <- household_demographics.hd_demo_sk
| | |
| | 77:EXCHANGE [BROADCAST]
| | |
| | 09:SCAN HDFS [tpcds.household_demographics]
| | HDFS partitions=1/1 files=1 size=148.10KB
| | predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| | row-size=12B cardinality=720
| |
| 12:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| | row-size=24B cardinality=69.82K
| |
| |--JOIN BUILD
| | | join-table-id=27 plan-id=28 cohort-id=08
| | | build expressions: time_dim.t_time_sk
| | | runtime filters: RF010 <- time_dim.t_time_sk
| | |
| | 76:EXCHANGE [BROADCAST]
| | |
| | 10:SCAN HDFS [tpcds.time_dim]
| | HDFS partitions=1/1 files=1 size=4.87MB
| | predicates: time_dim.t_hour = 9, time_dim.t_minute < 30
| | row-size=12B cardinality=1.14K
| |
| 08:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF010 -> ss_sold_time_sk, RF008 -> ss_hdemo_sk
| row-size=12B cardinality=2.88M
|
75:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
74:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| row-size=56B cardinality=2.27K
|
|--JOIN BUILD
| | join-table-id=28 plan-id=29 cohort-id=01
| | build expressions: s_store_sk
| |
| 73:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: store.s_store_name = 'ese'
| row-size=20B cardinality=2
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
| row-size=36B cardinality=6.82K
|
|--JOIN BUILD
| | join-table-id=29 plan-id=30 cohort-id=01
| | build expressions: household_demographics.hd_demo_sk
| | runtime filters: RF002 <- household_demographics.hd_demo_sk
| |
| 72:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.household_demographics]
| HDFS partitions=1/1 files=1 size=148.10KB
| predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
| row-size=12B cardinality=720
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_time_sk = time_dim.t_time_sk
| row-size=24B cardinality=69.82K
|
|--JOIN BUILD
| | join-table-id=30 plan-id=31 cohort-id=01
| | build expressions: time_dim.t_time_sk
| | runtime filters: RF004 <- time_dim.t_time_sk
| |
| 71:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.time_dim]
| HDFS partitions=1/1 files=1 size=4.87MB
| predicates: time_dim.t_hour = 8, time_dim.t_minute >= 30
| row-size=12B cardinality=1.14K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF004 -> ss_sold_time_sk, RF002 -> ss_hdemo_sk
row-size=12B cardinality=2.88M
====
# TPCDS-Q9
select case when (select count(*)
from store_sales
where ss_quantity between 1 and 20) > 74129
then (select avg(ss_ext_discount_amt)
from store_sales
where ss_quantity between 1 and 20)
else (select avg(ss_net_profit)
from store_sales
where ss_quantity between 1 and 20) end bucket1,
case when (select count(*)
from store_sales
where ss_quantity between 21 and 40) > 122840
then (select avg(ss_ext_discount_amt)
from store_sales
where ss_quantity between 21 and 40)
else (select avg(ss_net_profit)
from store_sales
where ss_quantity between 21 and 40) end bucket2,
case when (select count(*)
from store_sales
where ss_quantity between 41 and 60) > 56580
then (select avg(ss_ext_discount_amt)
from store_sales
where ss_quantity between 41 and 60)
else (select avg(ss_net_profit)
from store_sales
where ss_quantity between 41 and 60) end bucket3,
case when (select count(*)
from store_sales
where ss_quantity between 61 and 80) > 10097
then (select avg(ss_ext_discount_amt)
from store_sales
where ss_quantity between 61 and 80)
else (select avg(ss_net_profit)
from store_sales
where ss_quantity between 61 and 80) end bucket4,
case when (select count(*)
from store_sales
where ss_quantity between 81 and 100) > 165306
then (select avg(ss_ext_discount_amt)
from store_sales
where ss_quantity between 81 and 100)
else (select avg(ss_net_profit)
from store_sales
where ss_quantity between 81 and 100) end bucket5
from reason
where r_reason_sk = 1
---- PLAN
Max Per-Host Resource Reservation: Memory=120.01MB Threads=17
Per-Host Resource Estimates: Memory=2.05GB
PLAN-ROOT SINK
|
45:NESTED LOOP JOIN [CROSS JOIN]
| row-size=124B cardinality=1
|
|--30:AGGREGATE [FINALIZE]
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 29:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=8B cardinality=288.04K
|
44:NESTED LOOP JOIN [CROSS JOIN]
| row-size=116B cardinality=1
|
|--28:AGGREGATE [FINALIZE]
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 27:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=8B cardinality=288.04K
|
43:NESTED LOOP JOIN [CROSS JOIN]
| row-size=108B cardinality=1
|
|--26:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 25:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=4B cardinality=288.04K
|
42:NESTED LOOP JOIN [CROSS JOIN]
| row-size=100B cardinality=1
|
|--24:AGGREGATE [FINALIZE]
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 23:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=8B cardinality=288.04K
|
41:NESTED LOOP JOIN [CROSS JOIN]
| row-size=92B cardinality=1
|
|--22:AGGREGATE [FINALIZE]
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 21:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=8B cardinality=288.04K
|
40:NESTED LOOP JOIN [CROSS JOIN]
| row-size=84B cardinality=1
|
|--20:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 19:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=4B cardinality=288.04K
|
39:NESTED LOOP JOIN [CROSS JOIN]
| row-size=76B cardinality=1
|
|--18:AGGREGATE [FINALIZE]
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 17:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=8B cardinality=288.04K
|
38:NESTED LOOP JOIN [CROSS JOIN]
| row-size=68B cardinality=1
|
|--16:AGGREGATE [FINALIZE]
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 15:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=8B cardinality=288.04K
|
37:NESTED LOOP JOIN [CROSS JOIN]
| row-size=60B cardinality=1
|
|--14:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 13:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=4B cardinality=288.04K
|
36:NESTED LOOP JOIN [CROSS JOIN]
| row-size=52B cardinality=1
|
|--12:AGGREGATE [FINALIZE]
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 11:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=8B cardinality=288.04K
|
35:NESTED LOOP JOIN [CROSS JOIN]
| row-size=44B cardinality=1
|
|--10:AGGREGATE [FINALIZE]
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 09:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=8B cardinality=288.04K
|
34:NESTED LOOP JOIN [CROSS JOIN]
| row-size=36B cardinality=1
|
|--08:AGGREGATE [FINALIZE]
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 07:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=4B cardinality=288.04K
|
33:NESTED LOOP JOIN [CROSS JOIN]
| row-size=28B cardinality=1
|
|--06:AGGREGATE [FINALIZE]
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 05:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 20, ss_quantity >= 1
| row-size=8B cardinality=288.04K
|
32:NESTED LOOP JOIN [CROSS JOIN]
| row-size=20B cardinality=1
|
|--04:AGGREGATE [FINALIZE]
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 03:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 20, ss_quantity >= 1
| row-size=8B cardinality=288.04K
|
31:NESTED LOOP JOIN [CROSS JOIN]
| row-size=12B cardinality=1
|
|--00:SCAN HDFS [tpcds.reason]
| HDFS partitions=1/1 files=1 size=1.31KB
| predicates: r_reason_sk = 1
| row-size=4B cardinality=1
|
02:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
predicates: ss_quantity <= 20, ss_quantity >= 1
row-size=4B cardinality=288.04K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=120.01MB Threads=47
Per-Host Resource Estimates: Memory=2.20GB
PLAN-ROOT SINK
|
45:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=124B cardinality=1
|
|--90:EXCHANGE [UNPARTITIONED]
| |
| 89:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 88:EXCHANGE [UNPARTITIONED]
| |
| 30:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 29:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=8B cardinality=288.04K
|
44:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=116B cardinality=1
|
|--87:EXCHANGE [UNPARTITIONED]
| |
| 86:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 85:EXCHANGE [UNPARTITIONED]
| |
| 28:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 27:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=8B cardinality=288.04K
|
43:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=108B cardinality=1
|
|--84:EXCHANGE [UNPARTITIONED]
| |
| 83:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 82:EXCHANGE [UNPARTITIONED]
| |
| 26:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 25:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=4B cardinality=288.04K
|
42:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=100B cardinality=1
|
|--81:EXCHANGE [UNPARTITIONED]
| |
| 80:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 79:EXCHANGE [UNPARTITIONED]
| |
| 24:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 23:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=8B cardinality=288.04K
|
41:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=92B cardinality=1
|
|--78:EXCHANGE [UNPARTITIONED]
| |
| 77:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 76:EXCHANGE [UNPARTITIONED]
| |
| 22:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 21:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=8B cardinality=288.04K
|
40:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=84B cardinality=1
|
|--75:EXCHANGE [UNPARTITIONED]
| |
| 74:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 73:EXCHANGE [UNPARTITIONED]
| |
| 20:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 19:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=4B cardinality=288.04K
|
39:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=76B cardinality=1
|
|--72:EXCHANGE [UNPARTITIONED]
| |
| 71:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 70:EXCHANGE [UNPARTITIONED]
| |
| 18:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 17:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=8B cardinality=288.04K
|
38:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=68B cardinality=1
|
|--69:EXCHANGE [UNPARTITIONED]
| |
| 68:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 67:EXCHANGE [UNPARTITIONED]
| |
| 16:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 15:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=8B cardinality=288.04K
|
37:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=60B cardinality=1
|
|--66:EXCHANGE [UNPARTITIONED]
| |
| 65:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 64:EXCHANGE [UNPARTITIONED]
| |
| 14:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 13:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=4B cardinality=288.04K
|
36:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=52B cardinality=1
|
|--63:EXCHANGE [UNPARTITIONED]
| |
| 62:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 61:EXCHANGE [UNPARTITIONED]
| |
| 12:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 11:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=8B cardinality=288.04K
|
35:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=44B cardinality=1
|
|--60:EXCHANGE [UNPARTITIONED]
| |
| 59:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 58:EXCHANGE [UNPARTITIONED]
| |
| 10:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 09:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=8B cardinality=288.04K
|
34:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=36B cardinality=1
|
|--57:EXCHANGE [UNPARTITIONED]
| |
| 56:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 55:EXCHANGE [UNPARTITIONED]
| |
| 08:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 07:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=4B cardinality=288.04K
|
33:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=28B cardinality=1
|
|--54:EXCHANGE [UNPARTITIONED]
| |
| 53:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 52:EXCHANGE [UNPARTITIONED]
| |
| 06:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 05:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 20, ss_quantity >= 1
| row-size=8B cardinality=288.04K
|
32:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=20B cardinality=1
|
|--51:EXCHANGE [UNPARTITIONED]
| |
| 50:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 49:EXCHANGE [UNPARTITIONED]
| |
| 04:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 03:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 20, ss_quantity >= 1
| row-size=8B cardinality=288.04K
|
31:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| row-size=12B cardinality=1
|
|--48:EXCHANGE [UNPARTITIONED]
| |
| 00:SCAN HDFS [tpcds.reason]
| HDFS partitions=1/1 files=1 size=1.31KB
| predicates: r_reason_sk = 1
| row-size=4B cardinality=1
|
47:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
46:EXCHANGE [UNPARTITIONED]
|
02:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
predicates: ss_quantity <= 20, ss_quantity >= 1
row-size=4B cardinality=288.04K
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=240.01MB Threads=61
Per-Host Resource Estimates: Memory=946MB
PLAN-ROOT SINK
|
45:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 00
| row-size=124B cardinality=1
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| |
| 90:EXCHANGE [UNPARTITIONED]
| |
| 89:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 88:EXCHANGE [UNPARTITIONED]
| |
| 30:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 29:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=8B cardinality=288.04K
|
44:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 01
| row-size=116B cardinality=1
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| |
| 87:EXCHANGE [UNPARTITIONED]
| |
| 86:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 85:EXCHANGE [UNPARTITIONED]
| |
| 28:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 27:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=8B cardinality=288.04K
|
43:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 02
| row-size=108B cardinality=1
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| |
| 84:EXCHANGE [UNPARTITIONED]
| |
| 83:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 82:EXCHANGE [UNPARTITIONED]
| |
| 26:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 25:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 100, ss_quantity >= 81
| row-size=4B cardinality=288.04K
|
42:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 03
| row-size=100B cardinality=1
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| |
| 81:EXCHANGE [UNPARTITIONED]
| |
| 80:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 79:EXCHANGE [UNPARTITIONED]
| |
| 24:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 23:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=8B cardinality=288.04K
|
41:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 04
| row-size=92B cardinality=1
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| |
| 78:EXCHANGE [UNPARTITIONED]
| |
| 77:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 76:EXCHANGE [UNPARTITIONED]
| |
| 22:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 21:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=8B cardinality=288.04K
|
40:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 05
| row-size=84B cardinality=1
|
|--JOIN BUILD
| | join-table-id=05 plan-id=06 cohort-id=01
| |
| 75:EXCHANGE [UNPARTITIONED]
| |
| 74:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 73:EXCHANGE [UNPARTITIONED]
| |
| 20:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 19:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 80, ss_quantity >= 61
| row-size=4B cardinality=288.04K
|
39:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 06
| row-size=76B cardinality=1
|
|--JOIN BUILD
| | join-table-id=06 plan-id=07 cohort-id=01
| |
| 72:EXCHANGE [UNPARTITIONED]
| |
| 71:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 70:EXCHANGE [UNPARTITIONED]
| |
| 18:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 17:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=8B cardinality=288.04K
|
38:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 07
| row-size=68B cardinality=1
|
|--JOIN BUILD
| | join-table-id=07 plan-id=08 cohort-id=01
| |
| 69:EXCHANGE [UNPARTITIONED]
| |
| 68:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 67:EXCHANGE [UNPARTITIONED]
| |
| 16:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 15:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=8B cardinality=288.04K
|
37:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 08
| row-size=60B cardinality=1
|
|--JOIN BUILD
| | join-table-id=08 plan-id=09 cohort-id=01
| |
| 66:EXCHANGE [UNPARTITIONED]
| |
| 65:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 64:EXCHANGE [UNPARTITIONED]
| |
| 14:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 13:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 60, ss_quantity >= 41
| row-size=4B cardinality=288.04K
|
36:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 09
| row-size=52B cardinality=1
|
|--JOIN BUILD
| | join-table-id=09 plan-id=10 cohort-id=01
| |
| 63:EXCHANGE [UNPARTITIONED]
| |
| 62:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 61:EXCHANGE [UNPARTITIONED]
| |
| 12:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 11:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=8B cardinality=288.04K
|
35:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 10
| row-size=44B cardinality=1
|
|--JOIN BUILD
| | join-table-id=10 plan-id=11 cohort-id=01
| |
| 60:EXCHANGE [UNPARTITIONED]
| |
| 59:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 58:EXCHANGE [UNPARTITIONED]
| |
| 10:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 09:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=8B cardinality=288.04K
|
34:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 11
| row-size=36B cardinality=1
|
|--JOIN BUILD
| | join-table-id=11 plan-id=12 cohort-id=01
| |
| 57:EXCHANGE [UNPARTITIONED]
| |
| 56:AGGREGATE [FINALIZE]
| | output: count:merge(*)
| | row-size=8B cardinality=1
| |
| 55:EXCHANGE [UNPARTITIONED]
| |
| 08:AGGREGATE
| | output: count(*)
| | row-size=8B cardinality=1
| |
| 07:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 40, ss_quantity >= 21
| row-size=4B cardinality=288.04K
|
33:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 12
| row-size=28B cardinality=1
|
|--JOIN BUILD
| | join-table-id=12 plan-id=13 cohort-id=01
| |
| 54:EXCHANGE [UNPARTITIONED]
| |
| 53:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 52:EXCHANGE [UNPARTITIONED]
| |
| 06:AGGREGATE
| | output: avg(ss_net_profit)
| | row-size=8B cardinality=1
| |
| 05:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 20, ss_quantity >= 1
| row-size=8B cardinality=288.04K
|
32:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 13
| row-size=20B cardinality=1
|
|--JOIN BUILD
| | join-table-id=13 plan-id=14 cohort-id=01
| |
| 51:EXCHANGE [UNPARTITIONED]
| |
| 50:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 49:EXCHANGE [UNPARTITIONED]
| |
| 04:AGGREGATE
| | output: avg(ss_ext_discount_amt)
| | row-size=8B cardinality=1
| |
| 03:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_quantity <= 20, ss_quantity >= 1
| row-size=8B cardinality=288.04K
|
31:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| join table id: 14
| row-size=12B cardinality=1
|
|--JOIN BUILD
| | join-table-id=14 plan-id=15 cohort-id=01
| |
| 48:EXCHANGE [UNPARTITIONED]
| |
| 00:SCAN HDFS [tpcds.reason]
| HDFS partitions=1/1 files=1 size=1.31KB
| predicates: r_reason_sk = 1
| row-size=4B cardinality=1
|
47:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
46:EXCHANGE [UNPARTITIONED]
|
02:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
predicates: ss_quantity <= 20, ss_quantity >= 1
row-size=4B cardinality=288.04K
====
# TPCDS-Q44
SELECT asceding.rnk,
i1.i_product_name best_performing,
i2.i_product_name worst_performing
FROM
(SELECT *
FROM
(SELECT item_sk,
rank() OVER (
ORDER BY rank_col ASC) rnk
FROM
(SELECT ss_item_sk item_sk,
avg(ss_net_profit) rank_col
FROM store_sales ss1
WHERE ss_store_sk = 4
GROUP BY ss_item_sk
HAVING avg(ss_net_profit) > 0.9*
(SELECT avg(ss_net_profit) rank_col
FROM store_sales
WHERE ss_store_sk = 4
AND ss_addr_sk IS NULL
GROUP BY ss_store_sk))V1)V11
WHERE rnk < 11) asceding,
(SELECT *
FROM
(SELECT item_sk,
rank() OVER (
ORDER BY rank_col DESC) rnk
FROM
(SELECT ss_item_sk item_sk,
avg(ss_net_profit) rank_col
FROM store_sales ss1
WHERE ss_store_sk = 4
GROUP BY ss_item_sk
HAVING avg(ss_net_profit) > 0.9*
(SELECT avg(ss_net_profit) rank_col
FROM store_sales
WHERE ss_store_sk = 4
AND ss_addr_sk IS NULL
GROUP BY ss_store_sk))V2)V21
WHERE rnk < 11) descending,
item i1,
item i2
WHERE asceding.rnk = descending.rnk
AND i1.i_item_sk=asceding.item_sk
AND i2.i_item_sk=descending.item_sk
ORDER BY asceding.rnk
LIMIT 100
---- PLAN
Max Per-Host Resource Reservation: Memory=65.75MB Threads=7
Per-Host Resource Estimates: Memory=626MB
PLAN-ROOT SINK
|
23:TOP-N [LIMIT=100]
| order by: rnk ASC
| row-size=68B cardinality=100
|
22:HASH JOIN [INNER JOIN]
| hash predicates: i2.i_item_sk = ss_item_sk
| runtime filters: RF000 <- ss_item_sk
| row-size=148B cardinality=1.80K
|
|--21:HASH JOIN [INNER JOIN]
| | hash predicates: rank() = rank()
| | row-size=110B cardinality=1.80K
| |
| |--17:SELECT
| | | predicates: rank() < 11
| | | row-size=36B cardinality=1.80K
| | |
| | 16:ANALYTIC
| | | functions: rank()
| | | order by: avg(ss_net_profit) DESC
| | | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | | row-size=36B cardinality=17.98K
| | |
| | 15:SORT
| | | order by: avg(ss_net_profit) DESC
| | | row-size=28B cardinality=17.98K
| | |
| | 14:NESTED LOOP JOIN [INNER JOIN]
| | | predicates: avg(ss_net_profit) > 0.9 * avg(ss_net_profit)
| | | row-size=28B cardinality=17.98K
| | |
| | |--13:CARDINALITY CHECK
| | | | limit: 1
| | | | row-size=12B cardinality=1
| | | |
| | | 12:AGGREGATE [FINALIZE]
| | | | output: avg(ss_net_profit)
| | | | group by: ss_store_sk
| | | | limit: 2
| | | | row-size=12B cardinality=2
| | | |
| | | 11:SCAN HDFS [tpcds.store_sales]
| | | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | | predicates: ss_addr_sk IS NULL, ss_store_sk = 4
| | | row-size=12B cardinality=53.06K
| | |
| | 10:AGGREGATE [FINALIZE]
| | | output: avg(ss_net_profit)
| | | group by: ss_item_sk
| | | row-size=16B cardinality=17.98K
| | |
| | 09:SCAN HDFS [tpcds.store_sales ss1]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | predicates: ss_store_sk = 4
| | row-size=16B cardinality=480.07K
| |
| 20:HASH JOIN [INNER JOIN]
| | hash predicates: i1.i_item_sk = ss_item_sk
| | runtime filters: RF002 <- ss_item_sk
| | row-size=74B cardinality=1.80K
| |
| |--08:SELECT
| | | predicates: rank() < 11
| | | row-size=36B cardinality=1.80K
| | |
| | 07:ANALYTIC
| | | functions: rank()
| | | order by: avg(ss_net_profit) ASC
| | | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | | row-size=36B cardinality=17.98K
| | |
| | 06:SORT
| | | order by: avg(ss_net_profit) ASC
| | | row-size=28B cardinality=17.98K
| | |
| | 05:NESTED LOOP JOIN [INNER JOIN]
| | | predicates: avg(ss_net_profit) > 0.9 * avg(ss_net_profit)
| | | row-size=28B cardinality=17.98K
| | |
| | |--04:CARDINALITY CHECK
| | | | limit: 1
| | | | row-size=12B cardinality=1
| | | |
| | | 03:AGGREGATE [FINALIZE]
| | | | output: avg(ss_net_profit)
| | | | group by: ss_store_sk
| | | | limit: 2
| | | | row-size=12B cardinality=2
| | | |
| | | 02:SCAN HDFS [tpcds.store_sales]
| | | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | | predicates: ss_addr_sk IS NULL, ss_store_sk = 4
| | | row-size=12B cardinality=53.06K
| | |
| | 01:AGGREGATE [FINALIZE]
| | | output: avg(ss_net_profit)
| | | group by: ss_item_sk
| | | row-size=16B cardinality=17.98K
| | |
| | 00:SCAN HDFS [tpcds.store_sales ss1]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | predicates: ss_store_sk = 4
| | row-size=16B cardinality=480.07K
| |
| 18:SCAN HDFS [tpcds.item i1]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF002 -> i1.i_item_sk
| row-size=38B cardinality=18.00K
|
19:SCAN HDFS [tpcds.item i2]
HDFS partitions=1/1 files=1 size=4.82MB
runtime filters: RF000 -> i2.i_item_sk
row-size=38B cardinality=18.00K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=90.56MB Threads=21
Per-Host Resource Estimates: Memory=685MB
PLAN-ROOT SINK
|
41:MERGING-EXCHANGE [UNPARTITIONED]
| order by: rnk ASC
| limit: 100
|
23:TOP-N [LIMIT=100]
| order by: rnk ASC
| row-size=68B cardinality=100
|
22:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: i2.i_item_sk = ss_item_sk
| runtime filters: RF000 <- ss_item_sk
| row-size=148B cardinality=1.80K
|
|--40:EXCHANGE [BROADCAST]
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: rank() = rank()
| | row-size=110B cardinality=1.80K
| |
| |--39:EXCHANGE [UNPARTITIONED]
| | |
| | 20:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ss_item_sk = i1.i_item_sk
| | | row-size=74B cardinality=1.80K
| | |
| | |--38:EXCHANGE [UNPARTITIONED]
| | | |
| | | 18:SCAN HDFS [tpcds.item i1]
| | | HDFS partitions=1/1 files=1 size=4.82MB
| | | row-size=38B cardinality=18.00K
| | |
| | 08:SELECT
| | | predicates: rank() < 11
| | | row-size=36B cardinality=1.80K
| | |
| | 07:ANALYTIC
| | | functions: rank()
| | | order by: avg(ss_net_profit) ASC
| | | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | | row-size=36B cardinality=17.98K
| | |
| | 37:MERGING-EXCHANGE [UNPARTITIONED]
| | | order by: avg(ss_net_profit) ASC
| | |
| | 06:SORT
| | | order by: avg(ss_net_profit) ASC
| | | row-size=28B cardinality=17.98K
| | |
| | 05:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
| | | predicates: avg(ss_net_profit) > 0.9 * avg(ss_net_profit)
| | | row-size=28B cardinality=17.98K
| | |
| | |--36:EXCHANGE [BROADCAST]
| | | |
| | | 04:CARDINALITY CHECK
| | | | limit: 1
| | | | row-size=12B cardinality=1
| | | |
| | | 35:EXCHANGE [UNPARTITIONED]
| | | | limit: 2
| | | |
| | | 34:AGGREGATE [FINALIZE]
| | | | output: avg:merge(ss_net_profit)
| | | | group by: ss_store_sk
| | | | limit: 2
| | | | row-size=12B cardinality=2
| | | |
| | | 33:EXCHANGE [HASH(ss_store_sk)]
| | | |
| | | 03:AGGREGATE [STREAMING]
| | | | output: avg(ss_net_profit)
| | | | group by: ss_store_sk
| | | | row-size=12B cardinality=6
| | | |
| | | 02:SCAN HDFS [tpcds.store_sales]
| | | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | | predicates: ss_addr_sk IS NULL, ss_store_sk = 4
| | | row-size=12B cardinality=53.06K
| | |
| | 32:AGGREGATE [FINALIZE]
| | | output: avg:merge(ss_net_profit)
| | | group by: ss_item_sk
| | | row-size=16B cardinality=17.98K
| | |
| | 31:EXCHANGE [HASH(ss_item_sk)]
| | |
| | 01:AGGREGATE [STREAMING]
| | | output: avg(ss_net_profit)
| | | group by: ss_item_sk
| | | row-size=16B cardinality=17.98K
| | |
| | 00:SCAN HDFS [tpcds.store_sales ss1]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | predicates: ss_store_sk = 4
| | row-size=16B cardinality=480.07K
| |
| 17:SELECT
| | predicates: rank() < 11
| | row-size=36B cardinality=1.80K
| |
| 16:ANALYTIC
| | functions: rank()
| | order by: avg(ss_net_profit) DESC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=36B cardinality=17.98K
| |
| 30:MERGING-EXCHANGE [UNPARTITIONED]
| | order by: avg(ss_net_profit) DESC
| |
| 15:SORT
| | order by: avg(ss_net_profit) DESC
| | row-size=28B cardinality=17.98K
| |
| 14:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
| | predicates: avg(ss_net_profit) > 0.9 * avg(ss_net_profit)
| | row-size=28B cardinality=17.98K
| |
| |--29:EXCHANGE [BROADCAST]
| | |
| | 13:CARDINALITY CHECK
| | | limit: 1
| | | row-size=12B cardinality=1
| | |
| | 28:EXCHANGE [UNPARTITIONED]
| | | limit: 2
| | |
| | 27:AGGREGATE [FINALIZE]
| | | output: avg:merge(ss_net_profit)
| | | group by: ss_store_sk
| | | limit: 2
| | | row-size=12B cardinality=2
| | |
| | 26:EXCHANGE [HASH(ss_store_sk)]
| | |
| | 12:AGGREGATE [STREAMING]
| | | output: avg(ss_net_profit)
| | | group by: ss_store_sk
| | | row-size=12B cardinality=6
| | |
| | 11:SCAN HDFS [tpcds.store_sales]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | predicates: ss_addr_sk IS NULL, ss_store_sk = 4
| | row-size=12B cardinality=53.06K
| |
| 25:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | group by: ss_item_sk
| | row-size=16B cardinality=17.98K
| |
| 24:EXCHANGE [HASH(ss_item_sk)]
| |
| 10:AGGREGATE [STREAMING]
| | output: avg(ss_net_profit)
| | group by: ss_item_sk
| | row-size=16B cardinality=17.98K
| |
| 09:SCAN HDFS [tpcds.store_sales ss1]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_store_sk = 4
| row-size=16B cardinality=480.07K
|
19:SCAN HDFS [tpcds.item i2]
HDFS partitions=1/1 files=1 size=4.82MB
runtime filters: RF000 -> i2.i_item_sk
row-size=38B cardinality=18.00K
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=157.12MB Threads=28
Per-Host Resource Estimates: Memory=368MB
PLAN-ROOT SINK
|
41:MERGING-EXCHANGE [UNPARTITIONED]
| order by: rnk ASC
| limit: 100
|
23:TOP-N [LIMIT=100]
| order by: rnk ASC
| row-size=68B cardinality=100
|
22:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: i2.i_item_sk = ss_item_sk
| row-size=148B cardinality=1.80K
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: ss_item_sk
| | runtime filters: RF000 <- ss_item_sk
| |
| 40:EXCHANGE [BROADCAST]
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: rank() = rank()
| | row-size=110B cardinality=1.80K
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: rank()
| | |
| | 39:EXCHANGE [UNPARTITIONED]
| | |
| | 20:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ss_item_sk = i1.i_item_sk
| | | row-size=74B cardinality=1.80K
| | |
| | |--JOIN BUILD
| | | | join-table-id=02 plan-id=03 cohort-id=03
| | | | build expressions: i1.i_item_sk
| | | |
| | | 38:EXCHANGE [UNPARTITIONED]
| | | |
| | | 18:SCAN HDFS [tpcds.item i1]
| | | HDFS partitions=1/1 files=1 size=4.82MB
| | | row-size=38B cardinality=18.00K
| | |
| | 08:SELECT
| | | predicates: rank() < 11
| | | row-size=36B cardinality=1.80K
| | |
| | 07:ANALYTIC
| | | functions: rank()
| | | order by: avg(ss_net_profit) ASC
| | | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | | row-size=36B cardinality=17.98K
| | |
| | 37:MERGING-EXCHANGE [UNPARTITIONED]
| | | order by: avg(ss_net_profit) ASC
| | |
| | 06:SORT
| | | order by: avg(ss_net_profit) ASC
| | | row-size=28B cardinality=17.98K
| | |
| | 05:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
| | | join table id: 03
| | | predicates: avg(ss_net_profit) > 0.9 * avg(ss_net_profit)
| | | row-size=28B cardinality=17.98K
| | |
| | |--JOIN BUILD
| | | | join-table-id=03 plan-id=04 cohort-id=03
| | | |
| | | 36:EXCHANGE [BROADCAST]
| | | |
| | | 04:CARDINALITY CHECK
| | | | limit: 1
| | | | row-size=12B cardinality=1
| | | |
| | | 35:EXCHANGE [UNPARTITIONED]
| | | | limit: 2
| | | |
| | | 34:AGGREGATE [FINALIZE]
| | | | output: avg:merge(ss_net_profit)
| | | | group by: ss_store_sk
| | | | limit: 2
| | | | row-size=12B cardinality=2
| | | |
| | | 33:EXCHANGE [HASH(ss_store_sk)]
| | | |
| | | 03:AGGREGATE [STREAMING]
| | | | output: avg(ss_net_profit)
| | | | group by: ss_store_sk
| | | | row-size=12B cardinality=6
| | | |
| | | 02:SCAN HDFS [tpcds.store_sales]
| | | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | | predicates: ss_addr_sk IS NULL, ss_store_sk = 4
| | | row-size=12B cardinality=53.06K
| | |
| | 32:AGGREGATE [FINALIZE]
| | | output: avg:merge(ss_net_profit)
| | | group by: ss_item_sk
| | | row-size=16B cardinality=17.98K
| | |
| | 31:EXCHANGE [HASH(ss_item_sk)]
| | |
| | 01:AGGREGATE [STREAMING]
| | | output: avg(ss_net_profit)
| | | group by: ss_item_sk
| | | row-size=16B cardinality=17.98K
| | |
| | 00:SCAN HDFS [tpcds.store_sales ss1]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | predicates: ss_store_sk = 4
| | row-size=16B cardinality=480.07K
| |
| 17:SELECT
| | predicates: rank() < 11
| | row-size=36B cardinality=1.80K
| |
| 16:ANALYTIC
| | functions: rank()
| | order by: avg(ss_net_profit) DESC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=36B cardinality=17.98K
| |
| 30:MERGING-EXCHANGE [UNPARTITIONED]
| | order by: avg(ss_net_profit) DESC
| |
| 15:SORT
| | order by: avg(ss_net_profit) DESC
| | row-size=28B cardinality=17.98K
| |
| 14:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
| | join table id: 04
| | predicates: avg(ss_net_profit) > 0.9 * avg(ss_net_profit)
| | row-size=28B cardinality=17.98K
| |
| |--JOIN BUILD
| | | join-table-id=04 plan-id=05 cohort-id=02
| | |
| | 29:EXCHANGE [BROADCAST]
| | |
| | 13:CARDINALITY CHECK
| | | limit: 1
| | | row-size=12B cardinality=1
| | |
| | 28:EXCHANGE [UNPARTITIONED]
| | | limit: 2
| | |
| | 27:AGGREGATE [FINALIZE]
| | | output: avg:merge(ss_net_profit)
| | | group by: ss_store_sk
| | | limit: 2
| | | row-size=12B cardinality=2
| | |
| | 26:EXCHANGE [HASH(ss_store_sk)]
| | |
| | 12:AGGREGATE [STREAMING]
| | | output: avg(ss_net_profit)
| | | group by: ss_store_sk
| | | row-size=12B cardinality=6
| | |
| | 11:SCAN HDFS [tpcds.store_sales]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | predicates: ss_addr_sk IS NULL, ss_store_sk = 4
| | row-size=12B cardinality=53.06K
| |
| 25:AGGREGATE [FINALIZE]
| | output: avg:merge(ss_net_profit)
| | group by: ss_item_sk
| | row-size=16B cardinality=17.98K
| |
| 24:EXCHANGE [HASH(ss_item_sk)]
| |
| 10:AGGREGATE [STREAMING]
| | output: avg(ss_net_profit)
| | group by: ss_item_sk
| | row-size=16B cardinality=17.98K
| |
| 09:SCAN HDFS [tpcds.store_sales ss1]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| predicates: ss_store_sk = 4
| row-size=16B cardinality=480.07K
|
19:SCAN HDFS [tpcds.item i2]
HDFS partitions=1/1 files=1 size=4.82MB
runtime filters: RF000 -> i2.i_item_sk
row-size=38B cardinality=18.00K
====
# TPCDS-Q45
SELECT ca_zip,
ca_city,
sum(ws_sales_price)
FROM web_sales,
customer,
customer_address,
date_dim,
item
WHERE ws_bill_customer_sk = c_customer_sk
AND c_current_addr_sk = ca_address_sk
AND ws_item_sk = i_item_sk
AND (SUBSTRING(ca_zip,1,5) IN ('85669',
'86197',
'88274',
'83405',
'86475',
'85392',
'85460',
'80348',
'81792')
OR i_item_id IN
(SELECT i_item_id
FROM item
WHERE i_item_sk IN (2,
3,
5,
7,
11,
13,
17,
19,
23,
29) ))
AND ws_sold_date_sk = d_date_sk
AND d_qoy = 2
AND d_year = 2001
GROUP BY ca_zip,
ca_city
ORDER BY ca_zip,
ca_city
LIMIT 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=62.62MB Threads=7
Per-Host Resource Estimates: Memory=375MB
PLAN-ROOT SINK
|
13:TOP-N [LIMIT=100]
| order by: ca_zip ASC, ca_city ASC
| row-size=54B cardinality=100
|
12:AGGREGATE [FINALIZE]
| output: sum(ws_sales_price)
| group by: ca_zip, ca_city
| row-size=54B cardinality=73.80K
|
11:HASH JOIN [LEFT OUTER JOIN]
| hash predicates: i_item_id = i_item_id
| other predicates: (substring(ca_zip, 1, 5) IN ('85669', '86197', '88274', '83405', '86475', '85392', '85460', '80348', '81792') OR i_item_id IS NOT NULL)
| row-size=146B cardinality=73.80K
|
|--06:AGGREGATE [FINALIZE]
| | group by: i_item_id
| | row-size=28B cardinality=10
| |
| 05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_item_sk IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29)
| row-size=36B cardinality=10
|
10:HASH JOIN [INNER JOIN]
| hash predicates: ws_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=118B cardinality=73.80K
|
|--04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
09:HASH JOIN [INNER JOIN]
| hash predicates: c_current_addr_sk = ca_address_sk
| runtime filters: RF002 <- ca_address_sk
| row-size=82B cardinality=73.80K
|
|--02:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=42B cardinality=50.00K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ws_bill_customer_sk = c_customer_sk
| runtime filters: RF004 <- c_customer_sk
| row-size=40B cardinality=73.80K
|
|--01:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF002 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ws_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=32B cardinality=73.80K
|
|--03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2001, d_qoy = 2
| row-size=12B cardinality=186
|
00:SCAN HDFS [tpcds.web_sales]
HDFS partitions=1/1 files=1 size=140.07MB
runtime filters: RF000 -> ws_item_sk, RF004 -> ws_bill_customer_sk, RF006 -> ws_sold_date_sk
row-size=20B cardinality=719.38K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=77.38MB Threads=16
Per-Host Resource Estimates: Memory=415MB
PLAN-ROOT SINK
|
24:MERGING-EXCHANGE [UNPARTITIONED]
| order by: ca_zip ASC, ca_city ASC
| limit: 100
|
13:TOP-N [LIMIT=100]
| order by: ca_zip ASC, ca_city ASC
| row-size=54B cardinality=100
|
23:AGGREGATE [FINALIZE]
| output: sum:merge(ws_sales_price)
| group by: ca_zip, ca_city
| row-size=54B cardinality=73.80K
|
22:EXCHANGE [HASH(ca_zip,ca_city)]
|
12:AGGREGATE [STREAMING]
| output: sum(ws_sales_price)
| group by: ca_zip, ca_city
| row-size=54B cardinality=73.80K
|
11:HASH JOIN [LEFT OUTER JOIN, BROADCAST]
| hash predicates: i_item_id = i_item_id
| other predicates: (substring(ca_zip, 1, 5) IN ('85669', '86197', '88274', '83405', '86475', '85392', '85460', '80348', '81792') OR i_item_id IS NOT NULL)
| row-size=146B cardinality=73.80K
|
|--21:EXCHANGE [BROADCAST]
| |
| 20:AGGREGATE [FINALIZE]
| | group by: i_item_id
| | row-size=28B cardinality=10
| |
| 19:EXCHANGE [HASH(i_item_id)]
| |
| 06:AGGREGATE [STREAMING]
| | group by: i_item_id
| | row-size=28B cardinality=10
| |
| 05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_item_sk IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29)
| row-size=36B cardinality=10
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ws_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=118B cardinality=73.80K
|
|--18:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
09:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: c_current_addr_sk = ca_address_sk
| runtime filters: RF002 <- ca_address_sk
| row-size=82B cardinality=73.80K
|
|--17:EXCHANGE [HASH(ca_address_sk)]
| |
| 02:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| row-size=42B cardinality=50.00K
|
16:EXCHANGE [HASH(c_current_addr_sk)]
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ws_bill_customer_sk = c_customer_sk
| runtime filters: RF004 <- c_customer_sk
| row-size=40B cardinality=73.80K
|
|--15:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF002 -> c_current_addr_sk
| row-size=8B cardinality=100.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ws_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=32B cardinality=73.80K
|
|--14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2001, d_qoy = 2
| row-size=12B cardinality=186
|
00:SCAN HDFS [tpcds.web_sales]
HDFS partitions=1/1 files=1 size=140.07MB
runtime filters: RF000 -> ws_item_sk, RF004 -> ws_bill_customer_sk, RF006 -> ws_sold_date_sk
row-size=20B cardinality=719.38K
====
# TPCDS-Q18
select i_item_id,
ca_country,
ca_state,
ca_county,
avg( cast(cs_quantity as decimal(12,2))) agg1,
avg( cast(cs_list_price as decimal(12,2))) agg2,
avg( cast(cs_coupon_amt as decimal(12,2))) agg3,
avg( cast(cs_sales_price as decimal(12,2))) agg4,
avg( cast(cs_net_profit as decimal(12,2))) agg5,
avg( cast(c_birth_year as decimal(12,2))) agg6,
avg( cast(cd1.cd_dep_count as decimal(12,2))) agg7
from catalog_sales, customer_demographics cd1,
customer_demographics cd2, customer, customer_address, date_dim, item
where cs_sold_date_sk = d_date_sk and
cs_item_sk = i_item_sk and
cs_bill_cdemo_sk = cd1.cd_demo_sk and
cs_bill_customer_sk = c_customer_sk and
cd1.cd_gender = 'M' and
cd1.cd_education_status = 'College' and
c_current_cdemo_sk = cd2.cd_demo_sk and
c_current_addr_sk = ca_address_sk and
c_birth_month in (9,5,12,4,1,10) and
d_year = 2001 and
ca_state in ('ND','WI','AL'
,'NC','OK','MS','TN')
group by rollup (i_item_id, ca_country, ca_state, ca_county)
order by ca_country,
ca_state,
ca_county,
i_item_id
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=111.38MB Threads=8
Per-Host Resource Estimates: Memory=702MB
PLAN-ROOT SINK
|
15:TOP-N [LIMIT=100]
| order by: CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_country WHEN 10 THEN ca_country WHEN 12 THEN ca_country WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_state WHEN 10 THEN ca_state WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_county WHEN 10 THEN NULL WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN i_item_id WHEN 10 THEN i_item_id WHEN 12 THEN i_item_id WHEN 14 THEN i_item_id WHEN 16 THEN NULL END ASC
| row-size=104B cardinality=100
|
14:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) END)
| group by: CASE valid_tid(16,8,10,12,14) WHEN 8 THEN i_item_id WHEN 10 THEN i_item_id WHEN 12 THEN i_item_id WHEN 14 THEN i_item_id WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_country WHEN 10 THEN ca_country WHEN 12 THEN ca_country WHEN 14 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_state WHEN 10 THEN ca_state WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_county WHEN 10 THEN NULL WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN 8 WHEN 10 THEN 10 WHEN 12 THEN 12 WHEN 14 THEN 14 WHEN 16 THEN 16 END
| row-size=108B cardinality=75.61K
|
13:AGGREGATE [FINALIZE]
| Class 0
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, ca_state, ca_county
| Class 1
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, ca_state, NULL
| Class 2
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, NULL, NULL
| Class 3
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, NULL, NULL, NULL
| Class 4
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: NULL, NULL, NULL, NULL
| row-size=641B cardinality=75.61K
|
12:HASH JOIN [INNER JOIN]
| hash predicates: cs_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=220B cardinality=28.95K
|
|--06:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
11:HASH JOIN [INNER JOIN]
| hash predicates: cd2.cd_demo_sk = c_current_cdemo_sk
| runtime filters: RF002 <- c_current_cdemo_sk
| row-size=184B cardinality=28.95K
|
|--10:HASH JOIN [INNER JOIN]
| | hash predicates: cd1.cd_demo_sk = cs_bill_cdemo_sk
| | runtime filters: RF004 <- cs_bill_cdemo_sk
| | row-size=180B cardinality=28.95K
| |
| |--09:HASH JOIN [INNER JOIN]
| | | hash predicates: c_current_addr_sk = ca_address_sk
| | | runtime filters: RF006 <- ca_address_sk
| | | row-size=137B cardinality=28.95K
| | |
| | |--04:SCAN HDFS [tpcds.customer_address]
| | | HDFS partitions=1/1 files=1 size=5.25MB
| | | predicates: ca_state IN ('ND', 'WI', 'AL', 'NC', 'OK', 'MS', 'TN')
| | | row-size=69B cardinality=6.86K
| | |
| | 08:HASH JOIN [INNER JOIN]
| | | hash predicates: cs_bill_customer_sk = c_customer_sk
| | | runtime filters: RF008 <- c_customer_sk
| | | row-size=68B cardinality=181.77K
| | |
| | |--03:SCAN HDFS [tpcds.customer]
| | | HDFS partitions=1/1 files=1 size=12.60MB
| | | predicates: c_birth_month IN (9, 5, 12, 4, 1, 10)
| | | runtime filters: RF006 -> c_current_addr_sk
| | | row-size=20B cardinality=50.00K
| | |
| | 07:HASH JOIN [INNER JOIN]
| | | hash predicates: cs_sold_date_sk = d_date_sk
| | | runtime filters: RF010 <- d_date_sk
| | | row-size=48B cardinality=294.63K
| | |
| | |--05:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year = 2001
| | | row-size=8B cardinality=373
| | |
| | 00:SCAN HDFS [tpcds.catalog_sales]
| | HDFS partitions=1/1 files=1 size=282.20MB
| | runtime filters: RF000 -> cs_item_sk, RF008 -> cs_bill_customer_sk, RF010 -> cs_sold_date_sk
| | row-size=40B cardinality=1.44M
| |
| 01:SCAN HDFS [tpcds.customer_demographics cd1]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd1.cd_gender = 'M', cd1.cd_education_status = 'College'
| runtime filters: RF004 -> cd1.cd_demo_sk
| row-size=43B cardinality=194.03K
|
02:SCAN HDFS [tpcds.customer_demographics cd2]
HDFS partitions=1/1 files=1 size=76.92MB
runtime filters: RF002 -> cd2.cd_demo_sk
row-size=4B cardinality=1.92M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=228.94MB Threads=18
Per-Host Resource Estimates: Memory=911MB
PLAN-ROOT SINK
|
26:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_country WHEN 10 THEN ca_country WHEN 12 THEN ca_country WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_state WHEN 10 THEN ca_state WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_county WHEN 10 THEN NULL WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN i_item_id WHEN 10 THEN i_item_id WHEN 12 THEN i_item_id WHEN 14 THEN i_item_id WHEN 16 THEN NULL END ASC
| limit: 100
|
15:TOP-N [LIMIT=100]
| order by: CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_country WHEN 10 THEN ca_country WHEN 12 THEN ca_country WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_state WHEN 10 THEN ca_state WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_county WHEN 10 THEN NULL WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END ASC, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN i_item_id WHEN 10 THEN i_item_id WHEN 12 THEN i_item_id WHEN 14 THEN i_item_id WHEN 16 THEN NULL END ASC
| row-size=104B cardinality=100
|
14:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_quantity AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_list_price AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_coupon_amt AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_sales_price AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cs_net_profit AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(c_birth_year AS DECIMAL(12,2))) END), aggif(valid_tid(16,8,10,12,14) IN (8, 10, 12, 14, 16), CASE valid_tid(16,8,10,12,14) WHEN 8 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 10 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 12 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 14 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) WHEN 16 THEN avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2))) END)
| group by: CASE valid_tid(16,8,10,12,14) WHEN 8 THEN i_item_id WHEN 10 THEN i_item_id WHEN 12 THEN i_item_id WHEN 14 THEN i_item_id WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_country WHEN 10 THEN ca_country WHEN 12 THEN ca_country WHEN 14 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_state WHEN 10 THEN ca_state WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN ca_county WHEN 10 THEN NULL WHEN 12 THEN NULL WHEN 14 THEN NULL WHEN 16 THEN NULL END, CASE valid_tid(16,8,10,12,14) WHEN 8 THEN 8 WHEN 10 THEN 10 WHEN 12 THEN 12 WHEN 14 THEN 14 WHEN 16 THEN 16 END
| row-size=108B cardinality=75.61K
|
25:AGGREGATE [FINALIZE]
| Class 0
| output: avg:merge(CAST(cs_quantity AS DECIMAL(12,2))), avg:merge(CAST(cs_list_price AS DECIMAL(12,2))), avg:merge(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg:merge(CAST(cs_sales_price AS DECIMAL(12,2))), avg:merge(CAST(cs_net_profit AS DECIMAL(12,2))), avg:merge(CAST(c_birth_year AS DECIMAL(12,2))), avg:merge(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, ca_state, ca_county
| Class 1
| output: avg:merge(CAST(cs_quantity AS DECIMAL(12,2))), avg:merge(CAST(cs_list_price AS DECIMAL(12,2))), avg:merge(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg:merge(CAST(cs_sales_price AS DECIMAL(12,2))), avg:merge(CAST(cs_net_profit AS DECIMAL(12,2))), avg:merge(CAST(c_birth_year AS DECIMAL(12,2))), avg:merge(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, ca_state, NULL
| Class 2
| output: avg:merge(CAST(cs_quantity AS DECIMAL(12,2))), avg:merge(CAST(cs_list_price AS DECIMAL(12,2))), avg:merge(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg:merge(CAST(cs_sales_price AS DECIMAL(12,2))), avg:merge(CAST(cs_net_profit AS DECIMAL(12,2))), avg:merge(CAST(c_birth_year AS DECIMAL(12,2))), avg:merge(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, NULL, NULL
| Class 3
| output: avg:merge(CAST(cs_quantity AS DECIMAL(12,2))), avg:merge(CAST(cs_list_price AS DECIMAL(12,2))), avg:merge(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg:merge(CAST(cs_sales_price AS DECIMAL(12,2))), avg:merge(CAST(cs_net_profit AS DECIMAL(12,2))), avg:merge(CAST(c_birth_year AS DECIMAL(12,2))), avg:merge(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, NULL, NULL, NULL
| Class 4
| output: avg:merge(CAST(cs_quantity AS DECIMAL(12,2))), avg:merge(CAST(cs_list_price AS DECIMAL(12,2))), avg:merge(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg:merge(CAST(cs_sales_price AS DECIMAL(12,2))), avg:merge(CAST(cs_net_profit AS DECIMAL(12,2))), avg:merge(CAST(c_birth_year AS DECIMAL(12,2))), avg:merge(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: NULL, NULL, NULL, NULL
| row-size=641B cardinality=75.61K
|
24:EXCHANGE [HASH(CASE valid_tid(7,9,11,13,15) WHEN 7 THEN murmur_hash(i_item_id) WHEN 9 THEN murmur_hash(i_item_id) WHEN 11 THEN murmur_hash(i_item_id) WHEN 13 THEN murmur_hash(i_item_id) WHEN 15 THEN murmur_hash(NULL) END,CASE valid_tid(7,9,11,13,15) WHEN 7 THEN murmur_hash(ca_country) WHEN 9 THEN murmur_hash(ca_country) WHEN 11 THEN murmur_hash(ca_country) WHEN 13 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) END,CASE valid_tid(7,9,11,13,15) WHEN 7 THEN murmur_hash(ca_state) WHEN 9 THEN murmur_hash(ca_state) WHEN 11 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) END,CASE valid_tid(7,9,11,13,15) WHEN 7 THEN murmur_hash(ca_county) WHEN 9 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) WHEN 15 THEN murmur_hash(NULL) END)]
|
13:AGGREGATE [STREAMING]
| Class 0
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, ca_state, ca_county
| Class 1
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, ca_state, NULL
| Class 2
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, ca_country, NULL, NULL
| Class 3
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: i_item_id, NULL, NULL, NULL
| Class 4
| output: avg(CAST(cs_quantity AS DECIMAL(12,2))), avg(CAST(cs_list_price AS DECIMAL(12,2))), avg(CAST(cs_coupon_amt AS DECIMAL(12,2))), avg(CAST(cs_sales_price AS DECIMAL(12,2))), avg(CAST(cs_net_profit AS DECIMAL(12,2))), avg(CAST(c_birth_year AS DECIMAL(12,2))), avg(CAST(cd1.cd_dep_count AS DECIMAL(12,2)))
| group by: NULL, NULL, NULL, NULL
| row-size=641B cardinality=75.61K
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: cs_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=220B cardinality=28.95K
|
|--23:EXCHANGE [BROADCAST]
| |
| 06:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
11:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: c_current_cdemo_sk = cd2.cd_demo_sk
| runtime filters: RF002 <- cd2.cd_demo_sk
| row-size=184B cardinality=28.95K
|
|--22:EXCHANGE [HASH(cd2.cd_demo_sk)]
| |
| 02:SCAN HDFS [tpcds.customer_demographics cd2]
| HDFS partitions=1/1 files=1 size=76.92MB
| row-size=4B cardinality=1.92M
|
21:EXCHANGE [HASH(c_current_cdemo_sk)]
|
10:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: cs_bill_cdemo_sk = cd1.cd_demo_sk
| runtime filters: RF004 <- cd1.cd_demo_sk
| row-size=180B cardinality=28.95K
|
|--20:EXCHANGE [HASH(cd1.cd_demo_sk)]
| |
| 01:SCAN HDFS [tpcds.customer_demographics cd1]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd1.cd_gender = 'M', cd1.cd_education_status = 'College'
| row-size=43B cardinality=194.03K
|
19:EXCHANGE [HASH(cs_bill_cdemo_sk)]
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: c_current_addr_sk = ca_address_sk
| runtime filters: RF006 <- ca_address_sk
| row-size=137B cardinality=28.95K
|
|--18:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_state IN ('ND', 'WI', 'AL', 'NC', 'OK', 'MS', 'TN')
| row-size=69B cardinality=6.86K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: cs_bill_customer_sk = c_customer_sk
| runtime filters: RF008 <- c_customer_sk
| row-size=68B cardinality=181.77K
|
|--17:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| predicates: c_birth_month IN (9, 5, 12, 4, 1, 10)
| runtime filters: RF002 -> c_current_cdemo_sk, RF006 -> c_current_addr_sk
| row-size=20B cardinality=50.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: cs_sold_date_sk = d_date_sk
| runtime filters: RF010 <- d_date_sk
| row-size=48B cardinality=294.63K
|
|--16:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2001
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.catalog_sales]
HDFS partitions=1/1 files=1 size=282.20MB
runtime filters: RF000 -> cs_item_sk, RF004 -> cs_bill_cdemo_sk, RF008 -> cs_bill_customer_sk, RF010 -> cs_sold_date_sk
row-size=40B cardinality=1.44M
====
# TPCDS-Q22
select i_product_name
,i_brand
,i_class
,i_category
,avg(inv_quantity_on_hand) qoh
from inventory
,date_dim
,item
,warehouse
where inv_date_sk=d_date_sk
and inv_item_sk=i_item_sk
and inv_warehouse_sk = w_warehouse_sk
and d_month_seq between 1212 and 1212 + 11
group by rollup(i_product_name
,i_brand
,i_class
,i_category)
order by qoh, i_product_name, i_brand, i_class, i_category
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=149.44MB Threads=5
Per-Host Resource Estimates: Memory=17.43GB
PLAN-ROOT SINK
|
09:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(5,7,9,11,13) IN (5, 7, 9, 11, 13), CASE valid_tid(5,7,9,11,13) WHEN 5 THEN avg(inv_quantity_on_hand) WHEN 7 THEN avg(inv_quantity_on_hand) WHEN 9 THEN avg(inv_quantity_on_hand) WHEN 11 THEN avg(inv_quantity_on_hand) WHEN 13 THEN avg(inv_quantity_on_hand) END) ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_product_name WHEN 7 THEN i_product_name WHEN 9 THEN i_product_name WHEN 11 THEN i_product_name WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_brand WHEN 7 THEN i_brand WHEN 9 THEN i_brand WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_class WHEN 7 THEN i_class WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_category WHEN 7 THEN NULL WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC
| row-size=56B cardinality=100
|
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(5,7,9,11,13) IN (5, 7, 9, 11, 13), CASE valid_tid(5,7,9,11,13) WHEN 5 THEN avg(inv_quantity_on_hand) WHEN 7 THEN avg(inv_quantity_on_hand) WHEN 9 THEN avg(inv_quantity_on_hand) WHEN 11 THEN avg(inv_quantity_on_hand) WHEN 13 THEN avg(inv_quantity_on_hand) END)
| group by: CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_product_name WHEN 7 THEN i_product_name WHEN 9 THEN i_product_name WHEN 11 THEN i_product_name WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_brand WHEN 7 THEN i_brand WHEN 9 THEN i_brand WHEN 11 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_class WHEN 7 THEN i_class WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_category WHEN 7 THEN NULL WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN 5 WHEN 7 THEN 7 WHEN 9 THEN 9 WHEN 11 THEN 11 WHEN 13 THEN 13 END
| row-size=60B cardinality=35.25M
|
07:AGGREGATE [FINALIZE]
| Class 0
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, i_brand, i_class, i_category
| Class 1
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, i_brand, i_class, NULL
| Class 2
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, i_brand, NULL, NULL
| Class 3
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, NULL, NULL, NULL
| Class 4
| output: avg(inv_quantity_on_hand)
| group by: NULL, NULL, NULL, NULL
| row-size=422B cardinality=35.25M
|
06:HASH JOIN [INNER JOIN]
| hash predicates: inv_warehouse_sk = w_warehouse_sk
| runtime filters: RF000 <- w_warehouse_sk
| row-size=136B cardinality=11.74M
|
|--03:SCAN HDFS [tpcds.warehouse]
| HDFS partitions=1/1 files=1 size=585B
| row-size=4B cardinality=5
|
05:HASH JOIN [INNER JOIN]
| hash predicates: inv_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=132B cardinality=11.74M
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=104B cardinality=18.00K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: inv_date_sk = d_date_sk
| runtime filters: RF004 <- d_date_sk
| row-size=28B cardinality=11.74M
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
00:SCAN HDFS [tpcds.inventory]
HDFS partitions=1/1 files=1 size=225.47MB
runtime filters: RF000 -> inv_warehouse_sk, RF002 -> inv_item_sk, RF004 -> inv_date_sk
row-size=20B cardinality=11.74M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=293.20MB Threads=10
Per-Host Resource Estimates: Memory=41.64GB
PLAN-ROOT SINK
|
15:MERGING-EXCHANGE [UNPARTITIONED]
| order by: aggif(valid_tid(5,7,9,11,13) IN (5, 7, 9, 11, 13), CASE valid_tid(5,7,9,11,13) WHEN 5 THEN avg(inv_quantity_on_hand) WHEN 7 THEN avg(inv_quantity_on_hand) WHEN 9 THEN avg(inv_quantity_on_hand) WHEN 11 THEN avg(inv_quantity_on_hand) WHEN 13 THEN avg(inv_quantity_on_hand) END) ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_product_name WHEN 7 THEN i_product_name WHEN 9 THEN i_product_name WHEN 11 THEN i_product_name WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_brand WHEN 7 THEN i_brand WHEN 9 THEN i_brand WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_class WHEN 7 THEN i_class WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_category WHEN 7 THEN NULL WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC
| limit: 100
|
09:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(5,7,9,11,13) IN (5, 7, 9, 11, 13), CASE valid_tid(5,7,9,11,13) WHEN 5 THEN avg(inv_quantity_on_hand) WHEN 7 THEN avg(inv_quantity_on_hand) WHEN 9 THEN avg(inv_quantity_on_hand) WHEN 11 THEN avg(inv_quantity_on_hand) WHEN 13 THEN avg(inv_quantity_on_hand) END) ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_product_name WHEN 7 THEN i_product_name WHEN 9 THEN i_product_name WHEN 11 THEN i_product_name WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_brand WHEN 7 THEN i_brand WHEN 9 THEN i_brand WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_class WHEN 7 THEN i_class WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_category WHEN 7 THEN NULL WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END ASC
| row-size=56B cardinality=100
|
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(5,7,9,11,13) IN (5, 7, 9, 11, 13), CASE valid_tid(5,7,9,11,13) WHEN 5 THEN avg(inv_quantity_on_hand) WHEN 7 THEN avg(inv_quantity_on_hand) WHEN 9 THEN avg(inv_quantity_on_hand) WHEN 11 THEN avg(inv_quantity_on_hand) WHEN 13 THEN avg(inv_quantity_on_hand) END)
| group by: CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_product_name WHEN 7 THEN i_product_name WHEN 9 THEN i_product_name WHEN 11 THEN i_product_name WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_brand WHEN 7 THEN i_brand WHEN 9 THEN i_brand WHEN 11 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_class WHEN 7 THEN i_class WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN i_category WHEN 7 THEN NULL WHEN 9 THEN NULL WHEN 11 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(5,7,9,11,13) WHEN 5 THEN 5 WHEN 7 THEN 7 WHEN 9 THEN 9 WHEN 11 THEN 11 WHEN 13 THEN 13 END
| row-size=60B cardinality=35.25M
|
14:AGGREGATE [FINALIZE]
| Class 0
| output: avg:merge(inv_quantity_on_hand)
| group by: i_product_name, i_brand, i_class, i_category
| Class 1
| output: avg:merge(inv_quantity_on_hand)
| group by: i_product_name, i_brand, i_class, NULL
| Class 2
| output: avg:merge(inv_quantity_on_hand)
| group by: i_product_name, i_brand, NULL, NULL
| Class 3
| output: avg:merge(inv_quantity_on_hand)
| group by: i_product_name, NULL, NULL, NULL
| Class 4
| output: avg:merge(inv_quantity_on_hand)
| group by: NULL, NULL, NULL, NULL
| row-size=422B cardinality=35.25M
|
13:EXCHANGE [HASH(CASE valid_tid(4,6,8,10,12) WHEN 4 THEN murmur_hash(i_product_name) WHEN 6 THEN murmur_hash(i_product_name) WHEN 8 THEN murmur_hash(i_product_name) WHEN 10 THEN murmur_hash(i_product_name) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,6,8,10,12) WHEN 4 THEN murmur_hash(i_brand) WHEN 6 THEN murmur_hash(i_brand) WHEN 8 THEN murmur_hash(i_brand) WHEN 10 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,6,8,10,12) WHEN 4 THEN murmur_hash(i_class) WHEN 6 THEN murmur_hash(i_class) WHEN 8 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,6,8,10,12) WHEN 4 THEN murmur_hash(i_category) WHEN 6 THEN murmur_hash(NULL) WHEN 8 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END)]
|
07:AGGREGATE [STREAMING]
| Class 0
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, i_brand, i_class, i_category
| Class 1
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, i_brand, i_class, NULL
| Class 2
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, i_brand, NULL, NULL
| Class 3
| output: avg(inv_quantity_on_hand)
| group by: i_product_name, NULL, NULL, NULL
| Class 4
| output: avg(inv_quantity_on_hand)
| group by: NULL, NULL, NULL, NULL
| row-size=422B cardinality=35.25M
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: inv_warehouse_sk = w_warehouse_sk
| runtime filters: RF000 <- w_warehouse_sk
| row-size=136B cardinality=11.74M
|
|--12:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.warehouse]
| HDFS partitions=1/1 files=1 size=585B
| row-size=4B cardinality=5
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: inv_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=132B cardinality=11.74M
|
|--11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=104B cardinality=18.00K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: inv_date_sk = d_date_sk
| runtime filters: RF004 <- d_date_sk
| row-size=28B cardinality=11.74M
|
|--10:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
00:SCAN HDFS [tpcds.inventory]
HDFS partitions=1/1 files=1 size=225.47MB
runtime filters: RF000 -> inv_warehouse_sk, RF002 -> inv_item_sk, RF004 -> inv_date_sk
row-size=20B cardinality=11.74M
====
# TPCDS-Q67
select *
from (select i_category
,i_class
,i_brand
,i_product_name
,d_year
,d_qoy
,d_moy
,s_store_id
,sumsales
,rank() over (partition by i_category order by sumsales desc) rk
from (select i_category
,i_class
,i_brand
,i_product_name
,d_year
,d_qoy
,d_moy
,s_store_id
,sum(coalesce(ss_sales_price*ss_quantity,0)) sumsales
from store_sales
,date_dim
,store
,item
where ss_sold_date_sk=d_date_sk
and ss_item_sk=i_item_sk
and ss_store_sk = s_store_sk
and d_month_seq between 1212 and 1212+11
group by rollup(i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy,s_store_id))dw1) dw2
where rk <= 100
order by i_category
,i_class
,i_brand
,i_product_name
,d_year
,d_qoy
,d_moy
,s_store_id
,sumsales
,rk
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=251.75MB Threads=5
Per-Host Resource Estimates: Memory=18.41GB
PLAN-ROOT SINK
|
12:TOP-N [LIMIT=100]
| order by: i_category ASC, i_class ASC, i_brand ASC, i_product_name ASC, d_year ASC, d_qoy ASC, d_moy ASC, s_store_id ASC, sumsales ASC, rk ASC
| row-size=96B cardinality=100
|
11:SELECT
| predicates: rank() <= 100
| row-size=100B cardinality=100
|
10:ANALYTIC
| functions: rank()
| partition by: i_category
| order by: aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=100B cardinality=100
|
09:TOP-N [LIMIT=100]
| order by: CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN i_category WHEN 7 THEN i_category WHEN 8 THEN i_category WHEN 9 THEN i_category WHEN 10 THEN i_category WHEN 11 THEN i_category WHEN 12 THEN NULL END ASC NULLS LAST, aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END) DESC
| row-size=92B cardinality=100
|
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END)
| group by: CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN i_category WHEN 7 THEN i_category WHEN 8 THEN i_category WHEN 9 THEN i_category WHEN 10 THEN i_category WHEN 11 THEN i_category WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_class WHEN 5 THEN i_class WHEN 6 THEN i_class WHEN 7 THEN i_class WHEN 8 THEN i_class WHEN 9 THEN i_class WHEN 10 THEN i_class WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_brand WHEN 5 THEN i_brand WHEN 6 THEN i_brand WHEN 7 THEN i_brand WHEN 8 THEN i_brand WHEN 9 THEN i_brand WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_product_name WHEN 5 THEN i_product_name WHEN 6 THEN i_product_name WHEN 7 THEN i_product_name WHEN 8 THEN i_product_name WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN d_year WHEN 5 THEN d_year WHEN 6 THEN d_year WHEN 7 THEN d_year WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN d_qoy WHEN 5 THEN d_qoy WHEN 6 THEN d_qoy WHEN 7 THEN NULL WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN d_moy WHEN 5 THEN d_moy WHEN 6 THEN NULL WHEN 7 THEN NULL WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN s_store_id WHEN 5 THEN NULL WHEN 6 THEN NULL WHEN 7 THEN NULL WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN 4 WHEN 5 THEN 5 WHEN 6 THEN 6 WHEN 7 THEN 7 WHEN 8 THEN 8 WHEN 9 THEN 9 WHEN 10 THEN 10 WHEN 11 THEN 11 WHEN 12 THEN 12 END
| row-size=92B cardinality=15.09M
|
07:AGGREGATE [FINALIZE]
| Class 0
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy, s_store_id
| Class 1
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy, NULL
| Class 2
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, NULL, NULL
| Class 3
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, NULL, NULL, NULL
| Class 4
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, NULL, NULL, NULL, NULL
| Class 5
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, NULL, NULL, NULL, NULL, NULL
| Class 6
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, NULL, NULL, NULL, NULL, NULL, NULL
| Class 7
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| Class 8
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| row-size=1.07KB cardinality=15.09M
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=180B cardinality=2.88M
|
|--03:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=104B cardinality=18.00K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=76B cardinality=2.88M
|
|--02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=32B cardinality=12
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF004 <- d_date_sk
| row-size=44B cardinality=2.88M
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=20B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_sold_date_sk
row-size=24B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=493.51MB Threads=11
Per-Host Resource Estimates: Memory=53.04GB
PLAN-ROOT SINK
|
20:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_category ASC, i_class ASC, i_brand ASC, i_product_name ASC, d_year ASC, d_qoy ASC, d_moy ASC, s_store_id ASC, sumsales ASC, rk ASC
| limit: 100
|
12:TOP-N [LIMIT=100]
| order by: i_category ASC, i_class ASC, i_brand ASC, i_product_name ASC, d_year ASC, d_qoy ASC, d_moy ASC, s_store_id ASC, sumsales ASC, rk ASC
| row-size=96B cardinality=100
|
11:SELECT
| predicates: rank() <= 100
| row-size=100B cardinality=100
|
10:ANALYTIC
| functions: rank()
| partition by: i_category
| order by: aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=100B cardinality=100
|
19:TOP-N [LIMIT=100]
| order by: CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN i_category WHEN 7 THEN i_category WHEN 8 THEN i_category WHEN 9 THEN i_category WHEN 10 THEN i_category WHEN 11 THEN i_category WHEN 12 THEN NULL END ASC NULLS LAST, aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END) DESC
| row-size=92B cardinality=100
|
18:EXCHANGE [HASH(CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN i_category WHEN 7 THEN i_category WHEN 8 THEN i_category WHEN 9 THEN i_category WHEN 10 THEN i_category WHEN 11 THEN i_category WHEN 12 THEN NULL END)]
|
09:TOP-N [LIMIT=100]
| order by: CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN i_category WHEN 7 THEN i_category WHEN 8 THEN i_category WHEN 9 THEN i_category WHEN 10 THEN i_category WHEN 11 THEN i_category WHEN 12 THEN NULL END ASC NULLS LAST, aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END) DESC
| row-size=92B cardinality=100
|
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(4,5,6,7,8,9,10,11,12) IN (4, 5, 6, 7, 8, 9, 10, 11, 12), CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 5 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 6 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 7 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 8 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 9 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 10 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 11 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) WHEN 12 THEN sum(coalesce(ss_sales_price * ss_quantity, 0)) END)
| group by: CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN i_category WHEN 7 THEN i_category WHEN 8 THEN i_category WHEN 9 THEN i_category WHEN 10 THEN i_category WHEN 11 THEN i_category WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_class WHEN 5 THEN i_class WHEN 6 THEN i_class WHEN 7 THEN i_class WHEN 8 THEN i_class WHEN 9 THEN i_class WHEN 10 THEN i_class WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_brand WHEN 5 THEN i_brand WHEN 6 THEN i_brand WHEN 7 THEN i_brand WHEN 8 THEN i_brand WHEN 9 THEN i_brand WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN i_product_name WHEN 5 THEN i_product_name WHEN 6 THEN i_product_name WHEN 7 THEN i_product_name WHEN 8 THEN i_product_name WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN d_year WHEN 5 THEN d_year WHEN 6 THEN d_year WHEN 7 THEN d_year WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN d_qoy WHEN 5 THEN d_qoy WHEN 6 THEN d_qoy WHEN 7 THEN NULL WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN d_moy WHEN 5 THEN d_moy WHEN 6 THEN NULL WHEN 7 THEN NULL WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN s_store_id WHEN 5 THEN NULL WHEN 6 THEN NULL WHEN 7 THEN NULL WHEN 8 THEN NULL WHEN 9 THEN NULL WHEN 10 THEN NULL WHEN 11 THEN NULL WHEN 12 THEN NULL END, CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN 4 WHEN 5 THEN 5 WHEN 6 THEN 6 WHEN 7 THEN 7 WHEN 8 THEN 8 WHEN 9 THEN 9 WHEN 10 THEN 10 WHEN 11 THEN 11 WHEN 12 THEN 12 END
| row-size=92B cardinality=15.09M
|
17:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy, s_store_id
| Class 1
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy, NULL
| Class 2
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, NULL, NULL
| Class 3
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, NULL, NULL, NULL
| Class 4
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, NULL, NULL, NULL, NULL
| Class 5
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, NULL, NULL, NULL, NULL, NULL
| Class 6
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, NULL, NULL, NULL, NULL, NULL, NULL
| Class 7
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| Class 8
| output: sum:merge(coalesce(ss_sales_price * ss_quantity, 0))
| group by: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| row-size=1.07KB cardinality=15.09M
|
16:EXCHANGE [HASH(CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(i_category) WHEN 5 THEN murmur_hash(i_category) WHEN 6 THEN murmur_hash(i_category) WHEN 7 THEN murmur_hash(i_category) WHEN 8 THEN murmur_hash(i_category) WHEN 9 THEN murmur_hash(i_category) WHEN 10 THEN murmur_hash(i_category) WHEN 11 THEN murmur_hash(i_category) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(i_class) WHEN 5 THEN murmur_hash(i_class) WHEN 6 THEN murmur_hash(i_class) WHEN 7 THEN murmur_hash(i_class) WHEN 8 THEN murmur_hash(i_class) WHEN 9 THEN murmur_hash(i_class) WHEN 10 THEN murmur_hash(i_class) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(i_brand) WHEN 5 THEN murmur_hash(i_brand) WHEN 6 THEN murmur_hash(i_brand) WHEN 7 THEN murmur_hash(i_brand) WHEN 8 THEN murmur_hash(i_brand) WHEN 9 THEN murmur_hash(i_brand) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(i_product_name) WHEN 5 THEN murmur_hash(i_product_name) WHEN 6 THEN murmur_hash(i_product_name) WHEN 7 THEN murmur_hash(i_product_name) WHEN 8 THEN murmur_hash(i_product_name) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(d_year) WHEN 5 THEN murmur_hash(d_year) WHEN 6 THEN murmur_hash(d_year) WHEN 7 THEN murmur_hash(d_year) WHEN 8 THEN murmur_hash(NULL) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(d_qoy) WHEN 5 THEN murmur_hash(d_qoy) WHEN 6 THEN murmur_hash(d_qoy) WHEN 7 THEN murmur_hash(NULL) WHEN 8 THEN murmur_hash(NULL) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(d_moy) WHEN 5 THEN murmur_hash(d_moy) WHEN 6 THEN murmur_hash(NULL) WHEN 7 THEN murmur_hash(NULL) WHEN 8 THEN murmur_hash(NULL) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6,7,8,9,10,11,12) WHEN 4 THEN murmur_hash(s_store_id) WHEN 5 THEN murmur_hash(NULL) WHEN 6 THEN murmur_hash(NULL) WHEN 7 THEN murmur_hash(NULL) WHEN 8 THEN murmur_hash(NULL) WHEN 9 THEN murmur_hash(NULL) WHEN 10 THEN murmur_hash(NULL) WHEN 11 THEN murmur_hash(NULL) WHEN 12 THEN murmur_hash(NULL) END)]
|
07:AGGREGATE [STREAMING]
| Class 0
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy, s_store_id
| Class 1
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy, NULL
| Class 2
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, d_qoy, NULL, NULL
| Class 3
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, d_year, NULL, NULL, NULL
| Class 4
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, i_product_name, NULL, NULL, NULL, NULL
| Class 5
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, i_brand, NULL, NULL, NULL, NULL, NULL
| Class 6
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, i_class, NULL, NULL, NULL, NULL, NULL, NULL
| Class 7
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: i_category, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| Class 8
| output: sum(coalesce(ss_sales_price * ss_quantity, 0))
| group by: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
| row-size=1.07KB cardinality=15.09M
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=180B cardinality=2.88M
|
|--15:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=104B cardinality=18.00K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=76B cardinality=2.88M
|
|--14:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=32B cardinality=12
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF004 <- d_date_sk
| row-size=44B cardinality=2.88M
|
|--13:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1223, d_month_seq >= 1212
| row-size=20B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_sold_date_sk
row-size=24B cardinality=2.88M
====
# TPCDS-Q5
with ssr as
(select s_store_id,
sum(sales_price) as sales,
sum(profit) as profit,
sum(return_amt) as `returns`,
sum(net_loss) as profit_loss
from
( select ss_store_sk as store_sk,
ss_sold_date_sk as date_sk,
ss_ext_sales_price as sales_price,
ss_net_profit as profit,
cast(0 as decimal(7,2)) as return_amt,
cast(0 as decimal(7,2)) as net_loss
from store_sales
union all
select sr_store_sk as store_sk,
sr_returned_date_sk as date_sk,
cast(0 as decimal(7,2)) as sales_price,
cast(0 as decimal(7,2)) as profit,
sr_return_amt as return_amt,
sr_net_loss as net_loss
from store_returns
) salesreturns,
date_dim,
store
where date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + INTERVAL 14 days)
and store_sk = s_store_sk
group by s_store_id)
,
csr as
(select cp_catalog_page_id,
sum(sales_price) as sales,
sum(profit) as profit,
sum(return_amt) as `returns`,
sum(net_loss) as profit_loss
from
( select cs_catalog_page_sk as page_sk,
cs_sold_date_sk as date_sk,
cs_ext_sales_price as sales_price,
cs_net_profit as profit,
cast(0 as decimal(7,2)) as return_amt,
cast(0 as decimal(7,2)) as net_loss
from catalog_sales
union all
select cr_catalog_page_sk as page_sk,
cr_returned_date_sk as date_sk,
cast(0 as decimal(7,2)) as sales_price,
cast(0 as decimal(7,2)) as profit,
cr_return_amount as return_amt,
cr_net_loss as net_loss
from catalog_returns
) salesreturns,
date_dim,
catalog_page
where date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + INTERVAL 14 days)
and page_sk = cp_catalog_page_sk
group by cp_catalog_page_id)
,
wsr as
(select web_site_id,
sum(sales_price) as sales,
sum(profit) as profit,
sum(return_amt) as `returns`,
sum(net_loss) as profit_loss
from
( select ws_web_site_sk as wsr_web_site_sk,
ws_sold_date_sk as date_sk,
ws_ext_sales_price as sales_price,
ws_net_profit as profit,
cast(0 as decimal(7,2)) as return_amt,
cast(0 as decimal(7,2)) as net_loss
from web_sales
union all
select ws_web_site_sk as wsr_web_site_sk,
wr_returned_date_sk as date_sk,
cast(0 as decimal(7,2)) as sales_price,
cast(0 as decimal(7,2)) as profit,
wr_return_amt as return_amt,
wr_net_loss as net_loss
from web_returns left outer join web_sales on
( wr_item_sk = ws_item_sk
and wr_order_number = ws_order_number)
) salesreturns,
date_dim,
web_site
where date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + INTERVAL 14 days)
and wsr_web_site_sk = web_site_sk
group by web_site_id)
select channel
, id
, sum(sales) as sales
, sum(`returns`) as `returns`
, sum(profit) as profit
from
(select 'store channel' as channel
, 'store' || s_store_id as id
, sales
, `returns`
, (profit - profit_loss) as profit
from ssr
union all
select 'catalog channel' as channel
, 'catalog_page' || cp_catalog_page_id as id
, sales
, `returns`
, (profit - profit_loss) as profit
from csr
union all
select 'web channel' as channel
, 'web_site' || web_site_id as id
, sales
, `returns`
, (profit - profit_loss) as profit
from wsr
) x
group by rollup (channel, id)
order by channel
,id
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=47.39MB Threads=5
Per-Host Resource Estimates: Memory=333MB
PLAN-ROOT SINK
|
29:TOP-N [LIMIT=100]
| order by: CASE valid_tid(27,28,29) WHEN 27 THEN channel WHEN 28 THEN channel WHEN 29 THEN NULL END ASC, CASE valid_tid(27,28,29) WHEN 27 THEN id WHEN 28 THEN NULL WHEN 29 THEN NULL END ASC
| row-size=72B cardinality=100
|
28:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(27,28,29) IN (27, 28, 29), CASE valid_tid(27,28,29) WHEN 27 THEN sum(sales) WHEN 28 THEN sum(sales) WHEN 29 THEN sum(sales) END), aggif(valid_tid(27,28,29) IN (27, 28, 29), CASE valid_tid(27,28,29) WHEN 27 THEN sum(`returns`) WHEN 28 THEN sum(`returns`) WHEN 29 THEN sum(`returns`) END), aggif(valid_tid(27,28,29) IN (27, 28, 29), CASE valid_tid(27,28,29) WHEN 27 THEN sum(profit) WHEN 28 THEN sum(profit) WHEN 29 THEN sum(profit) END)
| group by: CASE valid_tid(27,28,29) WHEN 27 THEN channel WHEN 28 THEN channel WHEN 29 THEN NULL END, CASE valid_tid(27,28,29) WHEN 27 THEN id WHEN 28 THEN NULL WHEN 29 THEN NULL END, CASE valid_tid(27,28,29) WHEN 27 THEN 27 WHEN 28 THEN 28 WHEN 29 THEN 29 END
| row-size=76B cardinality=11.56K
|
27:AGGREGATE [FINALIZE]
| Class 0
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, id
| Class 1
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, NULL
| Class 2
| output: sum(sales), sum(returns), sum(profit)
| group by: NULL, NULL
| row-size=216B cardinality=11.56K
|
00:UNION
| row-size=72B cardinality=11.56K
|
|--26:AGGREGATE [FINALIZE]
| | output: sum(sales_price), sum(profit), sum(return_amt), sum(net_loss)
| | group by: web_site_id
| | row-size=92B cardinality=15
| |
| 25:HASH JOIN [INNER JOIN]
| | hash predicates: wsr_web_site_sk = web_site_sk
| | runtime filters: RF008 <- web_site_sk
| | row-size=82B cardinality=791.15K
| |
| |--23:SCAN HDFS [tpcds.web_site]
| | HDFS partitions=1/1 files=1 size=8.57KB
| | row-size=32B cardinality=30
| |
| 24:HASH JOIN [INNER JOIN]
| | hash predicates: date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=50B cardinality=791.15K
| |
| |--22:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-08-18', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 17:UNION
| | row-size=24B cardinality=791.15K
| |
| |--21:HASH JOIN [RIGHT OUTER JOIN]
| | | hash predicates: ws_item_sk = wr_item_sk, ws_order_number = wr_order_number
| | | runtime filters: RF012 <- wr_item_sk, RF013 <- wr_order_number
| | | row-size=48B cardinality=71.76K
| | |
| | |--19:SCAN HDFS [tpcds.web_returns]
| | | HDFS partitions=1/1 files=1 size=9.35MB
| | | runtime filters: RF010 -> tpcds.web_returns.wr_returned_date_sk
| | | row-size=28B cardinality=71.76K
| | |
| | 20:SCAN HDFS [tpcds.web_sales]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF008 -> tpcds.web_sales.ws_web_site_sk, RF012 -> ws_item_sk, RF013 -> ws_order_number
| | row-size=20B cardinality=719.38K
| |
| 18:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF008 -> tpcds.web_sales.ws_web_site_sk, RF010 -> tpcds.web_sales.ws_sold_date_sk
| row-size=16B cardinality=719.38K
|
|--16:AGGREGATE [FINALIZE]
| | output: sum(sales_price), sum(profit), sum(return_amt), sum(net_loss)
| | group by: cp_catalog_page_id
| | row-size=92B cardinality=11.54K
| |
| 15:HASH JOIN [INNER JOIN]
| | hash predicates: page_sk = cp_catalog_page_sk
| | runtime filters: RF004 <- cp_catalog_page_sk
| | row-size=82B cardinality=1.59M
| |
| |--13:SCAN HDFS [tpcds.catalog_page]
| | HDFS partitions=1/1 files=1 size=1.56MB
| | row-size=32B cardinality=11.72K
| |
| 14:HASH JOIN [INNER JOIN]
| | hash predicates: date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=50B cardinality=1.59M
| |
| |--12:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-08-18', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 09:UNION
| | row-size=24B cardinality=1.59M
| |
| |--11:SCAN HDFS [tpcds.catalog_returns]
| | HDFS partitions=1/1 files=1 size=20.39MB
| | runtime filters: RF004 -> tpcds.catalog_returns.cr_catalog_page_sk, RF006 -> tpcds.catalog_returns.cr_returned_date_sk
| | row-size=16B cardinality=144.07K
| |
| 10:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF004 -> tpcds.catalog_sales.cs_catalog_page_sk, RF006 -> tpcds.catalog_sales.cs_sold_date_sk
| row-size=16B cardinality=1.44M
|
08:AGGREGATE [FINALIZE]
| output: sum(sales_price), sum(profit), sum(return_amt), sum(net_loss)
| group by: s_store_id
| row-size=92B cardinality=6
|
07:HASH JOIN [INNER JOIN]
| hash predicates: store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=82B cardinality=3.17M
|
|--05:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=32B cardinality=12
|
06:HASH JOIN [INNER JOIN]
| hash predicates: date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=50B cardinality=3.17M
|
|--04:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= DATE '1998-08-18', d_date >= DATE '1998-08-04'
| row-size=26B cardinality=7.30K
|
01:UNION
| row-size=24B cardinality=3.17M
|
|--03:SCAN HDFS [tpcds.store_returns]
| HDFS partitions=1/1 files=1 size=31.19MB
| runtime filters: RF000 -> tpcds.store_returns.sr_store_sk, RF002 -> tpcds.store_returns.sr_returned_date_sk
| row-size=16B cardinality=287.51K
|
02:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_sold_date_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=114.27MB Threads=25
Per-Host Resource Estimates: Memory=1.02GB
PLAN-ROOT SINK
|
46:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(27,28,29) WHEN 27 THEN channel WHEN 28 THEN channel WHEN 29 THEN NULL END ASC, CASE valid_tid(27,28,29) WHEN 27 THEN id WHEN 28 THEN NULL WHEN 29 THEN NULL END ASC
| limit: 100
|
29:TOP-N [LIMIT=100]
| order by: CASE valid_tid(27,28,29) WHEN 27 THEN channel WHEN 28 THEN channel WHEN 29 THEN NULL END ASC, CASE valid_tid(27,28,29) WHEN 27 THEN id WHEN 28 THEN NULL WHEN 29 THEN NULL END ASC
| row-size=72B cardinality=100
|
28:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(27,28,29) IN (27, 28, 29), CASE valid_tid(27,28,29) WHEN 27 THEN sum(sales) WHEN 28 THEN sum(sales) WHEN 29 THEN sum(sales) END), aggif(valid_tid(27,28,29) IN (27, 28, 29), CASE valid_tid(27,28,29) WHEN 27 THEN sum(`returns`) WHEN 28 THEN sum(`returns`) WHEN 29 THEN sum(`returns`) END), aggif(valid_tid(27,28,29) IN (27, 28, 29), CASE valid_tid(27,28,29) WHEN 27 THEN sum(profit) WHEN 28 THEN sum(profit) WHEN 29 THEN sum(profit) END)
| group by: CASE valid_tid(27,28,29) WHEN 27 THEN channel WHEN 28 THEN channel WHEN 29 THEN NULL END, CASE valid_tid(27,28,29) WHEN 27 THEN id WHEN 28 THEN NULL WHEN 29 THEN NULL END, CASE valid_tid(27,28,29) WHEN 27 THEN 27 WHEN 28 THEN 28 WHEN 29 THEN 29 END
| row-size=76B cardinality=11.56K
|
45:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: channel, id
| Class 1
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: channel, NULL
| Class 2
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: NULL, NULL
| row-size=216B cardinality=11.56K
|
44:EXCHANGE [HASH(CASE valid_tid(27,28,29) WHEN 27 THEN murmur_hash(channel) WHEN 28 THEN murmur_hash(channel) WHEN 29 THEN murmur_hash(NULL) END,CASE valid_tid(27,28,29) WHEN 27 THEN murmur_hash(id) WHEN 28 THEN murmur_hash(NULL) WHEN 29 THEN murmur_hash(NULL) END)]
|
27:AGGREGATE [STREAMING]
| Class 0
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, id
| Class 1
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, NULL
| Class 2
| output: sum(sales), sum(returns), sum(profit)
| group by: NULL, NULL
| row-size=216B cardinality=11.56K
|
00:UNION
| row-size=72B cardinality=11.56K
|
|--43:AGGREGATE [FINALIZE]
| | output: sum:merge(sales_price), sum:merge(profit), sum:merge(return_amt), sum:merge(net_loss)
| | group by: web_site_id
| | row-size=92B cardinality=15
| |
| 42:EXCHANGE [HASH(web_site_id)]
| |
| 26:AGGREGATE [STREAMING]
| | output: sum(sales_price), sum(profit), sum(return_amt), sum(net_loss)
| | group by: web_site_id
| | row-size=92B cardinality=15
| |
| 25:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: wsr_web_site_sk = web_site_sk
| | runtime filters: RF008 <- web_site_sk
| | row-size=82B cardinality=791.15K
| |
| |--41:EXCHANGE [BROADCAST]
| | |
| | 23:SCAN HDFS [tpcds.web_site]
| | HDFS partitions=1/1 files=1 size=8.57KB
| | row-size=32B cardinality=30
| |
| 24:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=50B cardinality=791.15K
| |
| |--40:EXCHANGE [BROADCAST]
| | |
| | 22:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-08-18', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 17:UNION
| | row-size=24B cardinality=791.15K
| |
| |--21:HASH JOIN [RIGHT OUTER JOIN, PARTITIONED]
| | | hash predicates: ws_item_sk = wr_item_sk, ws_order_number = wr_order_number
| | | runtime filters: RF012 <- wr_item_sk, RF013 <- wr_order_number
| | | row-size=48B cardinality=71.76K
| | |
| | |--39:EXCHANGE [HASH(wr_item_sk,wr_order_number)]
| | | |
| | | 19:SCAN HDFS [tpcds.web_returns]
| | | HDFS partitions=1/1 files=1 size=9.35MB
| | | runtime filters: RF010 -> tpcds.web_returns.wr_returned_date_sk
| | | row-size=28B cardinality=71.76K
| | |
| | 38:EXCHANGE [HASH(ws_item_sk,ws_order_number)]
| | |
| | 20:SCAN HDFS [tpcds.web_sales]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF008 -> tpcds.web_sales.ws_web_site_sk, RF012 -> ws_item_sk, RF013 -> ws_order_number
| | row-size=20B cardinality=719.38K
| |
| 18:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF008 -> tpcds.web_sales.ws_web_site_sk, RF010 -> tpcds.web_sales.ws_sold_date_sk
| row-size=16B cardinality=719.38K
|
|--37:AGGREGATE [FINALIZE]
| | output: sum:merge(sales_price), sum:merge(profit), sum:merge(return_amt), sum:merge(net_loss)
| | group by: cp_catalog_page_id
| | row-size=92B cardinality=11.54K
| |
| 36:EXCHANGE [HASH(cp_catalog_page_id)]
| |
| 16:AGGREGATE [STREAMING]
| | output: sum(sales_price), sum(profit), sum(return_amt), sum(net_loss)
| | group by: cp_catalog_page_id
| | row-size=92B cardinality=11.54K
| |
| 15:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: page_sk = cp_catalog_page_sk
| | runtime filters: RF004 <- cp_catalog_page_sk
| | row-size=82B cardinality=1.59M
| |
| |--35:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.catalog_page]
| | HDFS partitions=1/1 files=1 size=1.56MB
| | row-size=32B cardinality=11.72K
| |
| 14:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=50B cardinality=1.59M
| |
| |--34:EXCHANGE [BROADCAST]
| | |
| | 12:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-08-18', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 09:UNION
| | row-size=24B cardinality=1.59M
| |
| |--11:SCAN HDFS [tpcds.catalog_returns]
| | HDFS partitions=1/1 files=1 size=20.39MB
| | runtime filters: RF004 -> tpcds.catalog_returns.cr_catalog_page_sk, RF006 -> tpcds.catalog_returns.cr_returned_date_sk
| | row-size=16B cardinality=144.07K
| |
| 10:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF004 -> tpcds.catalog_sales.cs_catalog_page_sk, RF006 -> tpcds.catalog_sales.cs_sold_date_sk
| row-size=16B cardinality=1.44M
|
33:AGGREGATE [FINALIZE]
| output: sum:merge(sales_price), sum:merge(profit), sum:merge(return_amt), sum:merge(net_loss)
| group by: s_store_id
| row-size=92B cardinality=6
|
32:EXCHANGE [HASH(s_store_id)]
|
08:AGGREGATE [STREAMING]
| output: sum(sales_price), sum(profit), sum(return_amt), sum(net_loss)
| group by: s_store_id
| row-size=92B cardinality=6
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=82B cardinality=3.17M
|
|--31:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=32B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=50B cardinality=3.17M
|
|--30:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= DATE '1998-08-18', d_date >= DATE '1998-08-04'
| row-size=26B cardinality=7.30K
|
01:UNION
| row-size=24B cardinality=3.17M
|
|--03:SCAN HDFS [tpcds.store_returns]
| HDFS partitions=1/1 files=1 size=31.19MB
| runtime filters: RF000 -> tpcds.store_returns.sr_store_sk, RF002 -> tpcds.store_returns.sr_returned_date_sk
| row-size=16B cardinality=287.51K
|
02:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_sold_date_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q77
with ss as
(select s_store_sk,
sum(ss_ext_sales_price) as sales,
sum(ss_net_profit) as profit
from store_sales,
date_dim,
store
where ss_sold_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and ss_store_sk = s_store_sk
group by s_store_sk)
,
sr as
(select s_store_sk,
sum(sr_return_amt) as `returns`,
sum(sr_net_loss) as profit_loss
from store_returns,
date_dim,
store
where sr_returned_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and sr_store_sk = s_store_sk
group by s_store_sk),
cs as
(select cs_call_center_sk,
sum(cs_ext_sales_price) as sales,
sum(cs_net_profit) as profit
from catalog_sales,
date_dim
where cs_sold_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
group by cs_call_center_sk
),
cr as
(select
sum(cr_return_amount) as `returns`,
sum(cr_net_loss) as profit_loss
from catalog_returns,
date_dim
where cr_returned_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
),
ws as
( select wp_web_page_sk,
sum(ws_ext_sales_price) as sales,
sum(ws_net_profit) as profit
from web_sales,
date_dim,
web_page
where ws_sold_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and ws_web_page_sk = wp_web_page_sk
group by wp_web_page_sk),
wr as
(select wp_web_page_sk,
sum(wr_return_amt) as `returns`,
sum(wr_net_loss) as profit_loss
from web_returns,
date_dim,
web_page
where wr_returned_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and wr_web_page_sk = wp_web_page_sk
group by wp_web_page_sk)
select channel
, id
, sum(sales) as sales
, sum(`returns`) as `returns`
, sum(profit) as profit
from
(select 'store channel' as channel
, ss.s_store_sk as id
, sales
, coalesce(`returns`, 0) as `returns`
, (profit - coalesce(profit_loss,0)) as profit
from ss left join sr
on ss.s_store_sk = sr.s_store_sk
union all
select 'catalog channel' as channel
, cs_call_center_sk as id
, sales
, `returns`
, (profit - profit_loss) as profit
from cs
, cr
union all
select 'web channel' as channel
, ws.wp_web_page_sk as id
, sales
, coalesce(`returns`, 0) `returns`
, (profit - coalesce(profit_loss,0)) as profit
from ws left join wr
on ws.wp_web_page_sk = wr.wp_web_page_sk
) x
group by rollup (channel, id)
order by channel
,id
,sales desc
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=55.58MB Threads=7
Per-Host Resource Estimates: Memory=416MB
PLAN-ROOT SINK
|
38:TOP-N [LIMIT=100]
| order by: CASE valid_tid(32,30,31) WHEN 30 THEN channel WHEN 31 THEN channel WHEN 32 THEN NULL END ASC, CASE valid_tid(32,30,31) WHEN 30 THEN id WHEN 31 THEN NULL WHEN 32 THEN NULL END ASC, aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(sales) WHEN 31 THEN sum(sales) WHEN 32 THEN sum(sales) END) DESC
| row-size=64B cardinality=82
|
37:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(sales) WHEN 31 THEN sum(sales) WHEN 32 THEN sum(sales) END), aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(`returns`) WHEN 31 THEN sum(`returns`) WHEN 32 THEN sum(`returns`) END), aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(profit) WHEN 31 THEN sum(profit) WHEN 32 THEN sum(profit) END)
| group by: CASE valid_tid(32,30,31) WHEN 30 THEN channel WHEN 31 THEN channel WHEN 32 THEN NULL END, CASE valid_tid(32,30,31) WHEN 30 THEN id WHEN 31 THEN NULL WHEN 32 THEN NULL END, CASE valid_tid(32,30,31) WHEN 30 THEN 30 WHEN 31 THEN 31 WHEN 32 THEN 32 END
| row-size=68B cardinality=82
|
36:AGGREGATE [FINALIZE]
| Class 0
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, id
| Class 1
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, NULL
| Class 2
| output: sum(sales), sum(returns), sum(profit)
| group by: NULL, NULL
| row-size=192B cardinality=82
|
00:UNION
| row-size=64B cardinality=78
|
|--35:HASH JOIN [LEFT OUTER JOIN]
| | hash predicates: wp_web_page_sk = wp_web_page_sk
| | row-size=72B cardinality=60
| |
| |--34:AGGREGATE [FINALIZE]
| | | output: sum(wr_return_amt), sum(wr_net_loss)
| | | group by: wp_web_page_sk
| | | row-size=36B cardinality=60
| | |
| | 33:HASH JOIN [INNER JOIN]
| | | hash predicates: wr_web_page_sk = wp_web_page_sk
| | | runtime filters: RF016 <- wp_web_page_sk
| | | row-size=46B cardinality=71.76K
| | |
| | |--31:SCAN HDFS [tpcds.web_page]
| | | HDFS partitions=1/1 files=1 size=5.64KB
| | | row-size=4B cardinality=60
| | |
| | 32:HASH JOIN [INNER JOIN]
| | | hash predicates: wr_returned_date_sk = d_date_sk
| | | runtime filters: RF018 <- d_date_sk
| | | row-size=42B cardinality=71.76K
| | |
| | |--30:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | | row-size=26B cardinality=7.30K
| | |
| | 29:SCAN HDFS [tpcds.web_returns]
| | HDFS partitions=1/1 files=1 size=9.35MB
| | runtime filters: RF016 -> wr_web_page_sk, RF018 -> wr_returned_date_sk
| | row-size=16B cardinality=71.76K
| |
| 28:AGGREGATE [FINALIZE]
| | output: sum(ws_ext_sales_price), sum(ws_net_profit)
| | group by: wp_web_page_sk
| | row-size=36B cardinality=60
| |
| 27:HASH JOIN [INNER JOIN]
| | hash predicates: ws_web_page_sk = wp_web_page_sk
| | runtime filters: RF012 <- wp_web_page_sk
| | row-size=46B cardinality=719.38K
| |
| |--25:SCAN HDFS [tpcds.web_page]
| | HDFS partitions=1/1 files=1 size=5.64KB
| | row-size=4B cardinality=60
| |
| 26:HASH JOIN [INNER JOIN]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=42B cardinality=719.38K
| |
| |--24:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 23:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF012 -> ws_web_page_sk, RF014 -> ws_sold_date_sk
| row-size=16B cardinality=719.38K
|
|--22:NESTED LOOP JOIN [CROSS JOIN]
| | row-size=68B cardinality=6
| |
| |--21:AGGREGATE [FINALIZE]
| | | output: sum(cr_return_amount), sum(cr_net_loss)
| | | row-size=32B cardinality=1
| | |
| | 20:HASH JOIN [INNER JOIN]
| | | hash predicates: cr_returned_date_sk = d_date_sk
| | | runtime filters: RF010 <- d_date_sk
| | | row-size=38B cardinality=144.07K
| | |
| | |--19:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | | row-size=26B cardinality=7.30K
| | |
| | 18:SCAN HDFS [tpcds.catalog_returns]
| | HDFS partitions=1/1 files=1 size=20.39MB
| | runtime filters: RF010 -> cr_returned_date_sk
| | row-size=12B cardinality=144.07K
| |
| 17:AGGREGATE [FINALIZE]
| | output: sum(cs_ext_sales_price), sum(cs_net_profit)
| | group by: cs_call_center_sk
| | row-size=36B cardinality=6
| |
| 16:HASH JOIN [INNER JOIN]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF008 <- d_date_sk
| | row-size=42B cardinality=1.44M
| |
| |--15:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 14:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF008 -> cs_sold_date_sk
| row-size=16B cardinality=1.44M
|
13:HASH JOIN [LEFT OUTER JOIN]
| hash predicates: s_store_sk = s_store_sk
| row-size=72B cardinality=12
|
|--12:AGGREGATE [FINALIZE]
| | output: sum(sr_return_amt), sum(sr_net_loss)
| | group by: s_store_sk
| | row-size=36B cardinality=12
| |
| 11:HASH JOIN [INNER JOIN]
| | hash predicates: sr_store_sk = s_store_sk
| | runtime filters: RF004 <- s_store_sk
| | row-size=46B cardinality=287.51K
| |
| |--09:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=4B cardinality=12
| |
| 10:HASH JOIN [INNER JOIN]
| | hash predicates: sr_returned_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=42B cardinality=287.51K
| |
| |--08:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 07:SCAN HDFS [tpcds.store_returns]
| HDFS partitions=1/1 files=1 size=31.19MB
| runtime filters: RF004 -> sr_store_sk, RF006 -> sr_returned_date_sk
| row-size=16B cardinality=287.51K
|
06:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price), sum(ss_net_profit)
| group by: s_store_sk
| row-size=36B cardinality=12
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=46B cardinality=2.88M
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=42B cardinality=2.88M
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| row-size=26B cardinality=7.30K
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=16B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=154.97MB Threads=36
Per-Host Resource Estimates: Memory=1.23GB
PLAN-ROOT SINK
|
64:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(32,30,31) WHEN 30 THEN channel WHEN 31 THEN channel WHEN 32 THEN NULL END ASC, CASE valid_tid(32,30,31) WHEN 30 THEN id WHEN 31 THEN NULL WHEN 32 THEN NULL END ASC, aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(sales) WHEN 31 THEN sum(sales) WHEN 32 THEN sum(sales) END) DESC
| limit: 100
|
38:TOP-N [LIMIT=100]
| order by: CASE valid_tid(32,30,31) WHEN 30 THEN channel WHEN 31 THEN channel WHEN 32 THEN NULL END ASC, CASE valid_tid(32,30,31) WHEN 30 THEN id WHEN 31 THEN NULL WHEN 32 THEN NULL END ASC, aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(sales) WHEN 31 THEN sum(sales) WHEN 32 THEN sum(sales) END) DESC
| row-size=64B cardinality=82
|
37:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(sales) WHEN 31 THEN sum(sales) WHEN 32 THEN sum(sales) END), aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(`returns`) WHEN 31 THEN sum(`returns`) WHEN 32 THEN sum(`returns`) END), aggif(valid_tid(32,30,31) IN (30, 31, 32), CASE valid_tid(32,30,31) WHEN 30 THEN sum(profit) WHEN 31 THEN sum(profit) WHEN 32 THEN sum(profit) END)
| group by: CASE valid_tid(32,30,31) WHEN 30 THEN channel WHEN 31 THEN channel WHEN 32 THEN NULL END, CASE valid_tid(32,30,31) WHEN 30 THEN id WHEN 31 THEN NULL WHEN 32 THEN NULL END, CASE valid_tid(32,30,31) WHEN 30 THEN 30 WHEN 31 THEN 31 WHEN 32 THEN 32 END
| row-size=68B cardinality=82
|
63:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: channel, id
| Class 1
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: channel, NULL
| Class 2
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: NULL, NULL
| row-size=192B cardinality=82
|
62:EXCHANGE [HASH(CASE valid_tid(32,30,31) WHEN 30 THEN murmur_hash(channel) WHEN 31 THEN murmur_hash(channel) WHEN 32 THEN murmur_hash(NULL) END,CASE valid_tid(32,30,31) WHEN 30 THEN murmur_hash(id) WHEN 31 THEN murmur_hash(NULL) WHEN 32 THEN murmur_hash(NULL) END)]
|
36:AGGREGATE [STREAMING]
| Class 0
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, id
| Class 1
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, NULL
| Class 2
| output: sum(sales), sum(returns), sum(profit)
| group by: NULL, NULL
| row-size=192B cardinality=82
|
00:UNION
| row-size=64B cardinality=78
|
|--35:HASH JOIN [LEFT OUTER JOIN, PARTITIONED]
| | hash predicates: wp_web_page_sk = wp_web_page_sk
| | row-size=72B cardinality=60
| |
| |--61:AGGREGATE [FINALIZE]
| | | output: sum:merge(wr_return_amt), sum:merge(wr_net_loss)
| | | group by: wp_web_page_sk
| | | row-size=36B cardinality=60
| | |
| | 60:EXCHANGE [HASH(wp_web_page_sk)]
| | |
| | 34:AGGREGATE [STREAMING]
| | | output: sum(wr_return_amt), sum(wr_net_loss)
| | | group by: wp_web_page_sk
| | | row-size=36B cardinality=60
| | |
| | 33:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: wr_web_page_sk = wp_web_page_sk
| | | runtime filters: RF016 <- wp_web_page_sk
| | | row-size=46B cardinality=71.76K
| | |
| | |--59:EXCHANGE [BROADCAST]
| | | |
| | | 31:SCAN HDFS [tpcds.web_page]
| | | HDFS partitions=1/1 files=1 size=5.64KB
| | | row-size=4B cardinality=60
| | |
| | 32:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: wr_returned_date_sk = d_date_sk
| | | runtime filters: RF018 <- d_date_sk
| | | row-size=42B cardinality=71.76K
| | |
| | |--58:EXCHANGE [BROADCAST]
| | | |
| | | 30:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | | row-size=26B cardinality=7.30K
| | |
| | 29:SCAN HDFS [tpcds.web_returns]
| | HDFS partitions=1/1 files=1 size=9.35MB
| | runtime filters: RF016 -> wr_web_page_sk, RF018 -> wr_returned_date_sk
| | row-size=16B cardinality=71.76K
| |
| 57:AGGREGATE [FINALIZE]
| | output: sum:merge(ws_ext_sales_price), sum:merge(ws_net_profit)
| | group by: wp_web_page_sk
| | row-size=36B cardinality=60
| |
| 56:EXCHANGE [HASH(wp_web_page_sk)]
| |
| 28:AGGREGATE [STREAMING]
| | output: sum(ws_ext_sales_price), sum(ws_net_profit)
| | group by: wp_web_page_sk
| | row-size=36B cardinality=60
| |
| 27:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_web_page_sk = wp_web_page_sk
| | runtime filters: RF012 <- wp_web_page_sk
| | row-size=46B cardinality=719.38K
| |
| |--55:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.web_page]
| | HDFS partitions=1/1 files=1 size=5.64KB
| | row-size=4B cardinality=60
| |
| 26:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=42B cardinality=719.38K
| |
| |--54:EXCHANGE [BROADCAST]
| | |
| | 24:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 23:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF012 -> ws_web_page_sk, RF014 -> ws_sold_date_sk
| row-size=16B cardinality=719.38K
|
|--22:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
| | row-size=68B cardinality=6
| |
| |--53:EXCHANGE [BROADCAST]
| | |
| | 52:AGGREGATE [FINALIZE]
| | | output: sum:merge(cr_return_amount), sum:merge(cr_net_loss)
| | | row-size=32B cardinality=1
| | |
| | 51:EXCHANGE [UNPARTITIONED]
| | |
| | 21:AGGREGATE
| | | output: sum(cr_return_amount), sum(cr_net_loss)
| | | row-size=32B cardinality=1
| | |
| | 20:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: cr_returned_date_sk = d_date_sk
| | | runtime filters: RF010 <- d_date_sk
| | | row-size=38B cardinality=144.07K
| | |
| | |--50:EXCHANGE [BROADCAST]
| | | |
| | | 19:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | | row-size=26B cardinality=7.30K
| | |
| | 18:SCAN HDFS [tpcds.catalog_returns]
| | HDFS partitions=1/1 files=1 size=20.39MB
| | runtime filters: RF010 -> cr_returned_date_sk
| | row-size=12B cardinality=144.07K
| |
| 49:AGGREGATE [FINALIZE]
| | output: sum:merge(cs_ext_sales_price), sum:merge(cs_net_profit)
| | group by: cs_call_center_sk
| | row-size=36B cardinality=6
| |
| 48:EXCHANGE [HASH(cs_call_center_sk)]
| |
| 17:AGGREGATE [STREAMING]
| | output: sum(cs_ext_sales_price), sum(cs_net_profit)
| | group by: cs_call_center_sk
| | row-size=36B cardinality=6
| |
| 16:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF008 <- d_date_sk
| | row-size=42B cardinality=1.44M
| |
| |--47:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 14:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF008 -> cs_sold_date_sk
| row-size=16B cardinality=1.44M
|
13:HASH JOIN [LEFT OUTER JOIN, PARTITIONED]
| hash predicates: s_store_sk = s_store_sk
| row-size=72B cardinality=12
|
|--46:AGGREGATE [FINALIZE]
| | output: sum:merge(sr_return_amt), sum:merge(sr_net_loss)
| | group by: s_store_sk
| | row-size=36B cardinality=12
| |
| 45:EXCHANGE [HASH(s_store_sk)]
| |
| 12:AGGREGATE [STREAMING]
| | output: sum(sr_return_amt), sum(sr_net_loss)
| | group by: s_store_sk
| | row-size=36B cardinality=12
| |
| 11:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: sr_store_sk = s_store_sk
| | runtime filters: RF004 <- s_store_sk
| | row-size=46B cardinality=287.51K
| |
| |--44:EXCHANGE [BROADCAST]
| | |
| | 09:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=4B cardinality=12
| |
| 10:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: sr_returned_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=42B cardinality=287.51K
| |
| |--43:EXCHANGE [BROADCAST]
| | |
| | 08:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 07:SCAN HDFS [tpcds.store_returns]
| HDFS partitions=1/1 files=1 size=31.19MB
| runtime filters: RF004 -> sr_store_sk, RF006 -> sr_returned_date_sk
| row-size=16B cardinality=287.51K
|
42:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price), sum:merge(ss_net_profit)
| group by: s_store_sk
| row-size=36B cardinality=12
|
41:EXCHANGE [HASH(s_store_sk)]
|
06:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price), sum(ss_net_profit)
| group by: s_store_sk
| row-size=36B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=46B cardinality=2.88M
|
|--40:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=42B cardinality=2.88M
|
|--39:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| row-size=26B cardinality=7.30K
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=16B cardinality=2.88M
====
# TPCDS-Q70
select
sum(ss_net_profit) as total_sum
,s_state
,s_county
,grouping(s_state)+grouping(s_county) as lochierarchy
,rank() over (
partition by grouping(s_state)+grouping(s_county),
case when grouping(s_county) = 0 then s_state end
order by sum(ss_net_profit) desc) as rank_within_parent
from
store_sales
,date_dim d1
,store
where
d1.d_month_seq between 1212 and 1212+11
and d1.d_date_sk = ss_sold_date_sk
and s_store_sk = ss_store_sk
and s_state in
( select s_state
from (select s_state as s_state,
rank() over ( partition by s_state order by sum(ss_net_profit) desc) as ranking
from store_sales, store, date_dim
where d_month_seq between 1212 and 1212+11
and d_date_sk = ss_sold_date_sk
and s_store_sk = ss_store_sk
group by s_state
) tmp1
where ranking <= 5
)
group by rollup(s_state,s_county)
order by
lochierarchy desc
-- Modified from original because Impala does not allow aliases within order by
-- expressions, except at the top level.
,case when grouping(s_state)+grouping(s_county) = 0 then s_state end
,rank_within_parent
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=52.77MB Threads=7
Per-Host Resource Estimates: Memory=437MB
PLAN-ROOT SINK
|
19:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END ASC, rank() ASC
| row-size=50B cardinality=3
|
18:ANALYTIC
| functions: rank()
| partition by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END), CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN sum(ss_net_profit) WHEN 12 THEN sum(ss_net_profit) WHEN 13 THEN sum(ss_net_profit) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=54B cardinality=3
|
17:SORT
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) ASC NULLS LAST, CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END ASC NULLS LAST, aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN sum(ss_net_profit) WHEN 12 THEN sum(ss_net_profit) WHEN 13 THEN sum(ss_net_profit) END) DESC
| row-size=46B cardinality=3
|
16:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN sum(ss_net_profit) WHEN 12 THEN sum(ss_net_profit) WHEN 13 THEN sum(ss_net_profit) END), aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END), aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END)
| group by: CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END, CASE valid_tid(11,12,13) WHEN 11 THEN s_county WHEN 12 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(11,12,13) WHEN 11 THEN 11 WHEN 12 THEN 12 WHEN 13 THEN 13 END
| row-size=46B cardinality=3
|
15:AGGREGATE [FINALIZE]
| Class 0
| output: sum(ss_net_profit)
| group by: s_state, s_county
| Class 1
| output: sum(ss_net_profit)
| group by: s_state, NULL
| Class 2
| output: sum(ss_net_profit)
| group by: NULL, NULL
| row-size=141B cardinality=3
|
14:HASH JOIN [LEFT SEMI JOIN]
| hash predicates: s_state = s_state
| runtime filters: RF000 <- s_state
| row-size=67B cardinality=2.88M
|
|--11:SELECT
| | predicates: rank() <= 5
| | row-size=38B cardinality=1
| |
| 10:ANALYTIC
| | functions: rank()
| | partition by: s_state
| | order by: sum(ss_net_profit) DESC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=38B cardinality=1
| |
| 09:SORT
| | order by: s_state ASC NULLS LAST, sum(ss_net_profit) DESC
| | row-size=30B cardinality=1
| |
| 08:AGGREGATE [FINALIZE]
| | output: sum(ss_net_profit)
| | group by: s_state
| | row-size=30B cardinality=1
| |
| 07:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=38B cardinality=2.88M
| |
| |--05:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1223, d_month_seq >= 1212
| | row-size=8B cardinality=7.30K
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF008 <- s_store_sk
| | row-size=30B cardinality=2.88M
| |
| |--04:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=18B cardinality=12
| |
| 03:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_sold_date_sk, RF008 -> ss_store_sk
| row-size=12B cardinality=2.88M
|
13:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=67B cardinality=2.88M
|
|--02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> s_state
| row-size=47B cardinality=12
|
12:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d1.d_date_sk
| runtime filters: RF004 <- d1.d_date_sk
| row-size=20B cardinality=2.88M
|
|--01:SCAN HDFS [tpcds.date_dim d1]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d1.d_month_seq <= 1223, d1.d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> ss_store_sk, RF004 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=97.39MB Threads=16
Per-Host Resource Estimates: Memory=554MB
PLAN-ROOT SINK
|
30:MERGING-EXCHANGE [UNPARTITIONED]
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END ASC, rank() ASC
| limit: 100
|
19:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END ASC, rank() ASC
| row-size=50B cardinality=3
|
18:ANALYTIC
| functions: rank()
| partition by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END), CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN sum(ss_net_profit) WHEN 12 THEN sum(ss_net_profit) WHEN 13 THEN sum(ss_net_profit) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=54B cardinality=3
|
17:SORT
| order by: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) ASC NULLS LAST, CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END ASC NULLS LAST, aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN sum(ss_net_profit) WHEN 12 THEN sum(ss_net_profit) WHEN 13 THEN sum(ss_net_profit) END) DESC
| row-size=46B cardinality=3
|
29:EXCHANGE [HASH(aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END) + aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END),CASE WHEN aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END) = 0 THEN CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END END)]
|
16:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN sum(ss_net_profit) WHEN 12 THEN sum(ss_net_profit) WHEN 13 THEN sum(ss_net_profit) END), aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 0 WHEN 13 THEN 1 END), aggif(valid_tid(11,12,13) IN (11, 12, 13), CASE valid_tid(11,12,13) WHEN 11 THEN 0 WHEN 12 THEN 1 WHEN 13 THEN 1 END)
| group by: CASE valid_tid(11,12,13) WHEN 11 THEN s_state WHEN 12 THEN s_state WHEN 13 THEN NULL END, CASE valid_tid(11,12,13) WHEN 11 THEN s_county WHEN 12 THEN NULL WHEN 13 THEN NULL END, CASE valid_tid(11,12,13) WHEN 11 THEN 11 WHEN 12 THEN 12 WHEN 13 THEN 13 END
| row-size=46B cardinality=3
|
28:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(ss_net_profit)
| group by: s_state, s_county
| Class 1
| output: sum:merge(ss_net_profit)
| group by: s_state, NULL
| Class 2
| output: sum:merge(ss_net_profit)
| group by: NULL, NULL
| row-size=141B cardinality=3
|
27:EXCHANGE [HASH(CASE valid_tid(11,12,13) WHEN 11 THEN murmur_hash(s_state) WHEN 12 THEN murmur_hash(s_state) WHEN 13 THEN murmur_hash(NULL) END,CASE valid_tid(11,12,13) WHEN 11 THEN murmur_hash(s_county) WHEN 12 THEN murmur_hash(NULL) WHEN 13 THEN murmur_hash(NULL) END)]
|
15:AGGREGATE [STREAMING]
| Class 0
| output: sum(ss_net_profit)
| group by: s_state, s_county
| Class 1
| output: sum(ss_net_profit)
| group by: s_state, NULL
| Class 2
| output: sum(ss_net_profit)
| group by: NULL, NULL
| row-size=141B cardinality=3
|
14:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: s_state = s_state
| runtime filters: RF000 <- s_state
| row-size=67B cardinality=2.88M
|
|--26:EXCHANGE [BROADCAST]
| |
| 11:SELECT
| | predicates: rank() <= 5
| | row-size=38B cardinality=1
| |
| 10:ANALYTIC
| | functions: rank()
| | partition by: s_state
| | order by: sum(ss_net_profit) DESC
| | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | row-size=38B cardinality=1
| |
| 09:SORT
| | order by: s_state ASC NULLS LAST, sum(ss_net_profit) DESC
| | row-size=30B cardinality=1
| |
| 25:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_net_profit)
| | group by: s_state
| | row-size=30B cardinality=1
| |
| 24:EXCHANGE [HASH(s_state)]
| |
| 08:AGGREGATE [STREAMING]
| | output: sum(ss_net_profit)
| | group by: s_state
| | row-size=30B cardinality=1
| |
| 07:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=38B cardinality=2.88M
| |
| |--23:EXCHANGE [BROADCAST]
| | |
| | 05:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1223, d_month_seq >= 1212
| | row-size=8B cardinality=7.30K
| |
| 06:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_store_sk = s_store_sk
| | runtime filters: RF008 <- s_store_sk
| | row-size=30B cardinality=2.88M
| |
| |--22:EXCHANGE [BROADCAST]
| | |
| | 04:SCAN HDFS [tpcds.store]
| | HDFS partitions=1/1 files=1 size=3.08KB
| | row-size=18B cardinality=12
| |
| 03:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_sold_date_sk, RF008 -> ss_store_sk
| row-size=12B cardinality=2.88M
|
13:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=67B cardinality=2.88M
|
|--21:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| runtime filters: RF000 -> s_state
| row-size=47B cardinality=12
|
12:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d1.d_date_sk
| runtime filters: RF004 <- d1.d_date_sk
| row-size=20B cardinality=2.88M
|
|--20:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim d1]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d1.d_month_seq <= 1223, d1.d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF002 -> ss_store_sk, RF004 -> ss_sold_date_sk
row-size=12B cardinality=2.88M
====
# TPCDS-Q80
with ssr as
(select s_store_id as store_id,
sum(ss_ext_sales_price) as sales,
sum(coalesce(sr_return_amt, 0)) as `returns`,
sum(ss_net_profit - coalesce(sr_net_loss, 0)) as profit
from store_sales left outer join store_returns on
(ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number),
date_dim,
store,
item,
promotion
where ss_sold_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and ss_store_sk = s_store_sk
and ss_item_sk = i_item_sk
and i_current_price > 50
and ss_promo_sk = p_promo_sk
and p_channel_tv = 'N'
group by s_store_id)
,
csr as
(select cp_catalog_page_id as catalog_page_id,
sum(cs_ext_sales_price) as sales,
sum(coalesce(cr_return_amount, 0)) as `returns`,
sum(cs_net_profit - coalesce(cr_net_loss, 0)) as profit
from catalog_sales left outer join catalog_returns on
(cs_item_sk = cr_item_sk and cs_order_number = cr_order_number),
date_dim,
catalog_page,
item,
promotion
where cs_sold_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and cs_catalog_page_sk = cp_catalog_page_sk
and cs_item_sk = i_item_sk
and i_current_price > 50
and cs_promo_sk = p_promo_sk
and p_channel_tv = 'N'
group by cp_catalog_page_id)
,
wsr as
(select web_site_id,
sum(ws_ext_sales_price) as sales,
sum(coalesce(wr_return_amt, 0)) as `returns`,
sum(ws_net_profit - coalesce(wr_net_loss, 0)) as profit
from web_sales left outer join web_returns on
(ws_item_sk = wr_item_sk and ws_order_number = wr_order_number),
date_dim,
web_site,
item,
promotion
where ws_sold_date_sk = d_date_sk
and d_date between cast('1998-08-04' as date)
and (cast('1998-08-04' as date) + interval 30 days)
and ws_web_site_sk = web_site_sk
and ws_item_sk = i_item_sk
and i_current_price > 50
and ws_promo_sk = p_promo_sk
and p_channel_tv = 'N'
group by web_site_id)
select channel
, id
, sum(sales) as sales
, sum(`returns`) as `returns`
, sum(profit) as profit
from
(select 'store channel' as channel
, 'store' || store_id as id
, sales
, `returns`
, profit
from ssr
union all
select 'catalog channel' as channel
, 'catalog_page' || catalog_page_id as id
, sales
, `returns`
, profit
from csr
union all
select 'web channel' as channel
, 'web_site' || web_site_id as id
, sales
, `returns`
, profit
from wsr
) x
group by rollup (channel, id)
order by channel
,id
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=66.95MB Threads=7
Per-Host Resource Estimates: Memory=436MB
PLAN-ROOT SINK
|
39:TOP-N [LIMIT=100]
| order by: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END ASC, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END ASC
| row-size=72B cardinality=100
|
38:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(sales) WHEN 27 THEN sum(sales) WHEN 28 THEN sum(sales) END), aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(`returns`) WHEN 27 THEN sum(`returns`) WHEN 28 THEN sum(`returns`) END), aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(profit) WHEN 27 THEN sum(profit) WHEN 28 THEN sum(profit) END)
| group by: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END, CASE valid_tid(26,27,28) WHEN 26 THEN 26 WHEN 27 THEN 27 WHEN 28 THEN 28 END
| row-size=76B cardinality=11.56K
|
37:AGGREGATE [FINALIZE]
| Class 0
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, id
| Class 1
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, NULL
| Class 2
| output: sum(sales), sum(returns), sum(profit)
| group by: NULL, NULL
| row-size=216B cardinality=11.56K
|
00:UNION
| row-size=72B cardinality=11.56K
|
|--36:AGGREGATE [FINALIZE]
| | output: sum(ws_ext_sales_price), sum(coalesce(wr_return_amt, 0)), sum(ws_net_profit - coalesce(wr_net_loss, 0))
| | group by: web_site_id
| | row-size=76B cardinality=15
| |
| 35:HASH JOIN [INNER JOIN]
| | hash predicates: ws_web_site_sk = web_site_sk
| | row-size=147B cardinality=71.46K
| |
| |--28:SCAN HDFS [tpcds.web_site]
| | HDFS partitions=1/1 files=1 size=8.57KB
| | row-size=32B cardinality=30
| |
| 34:HASH JOIN [INNER JOIN]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | row-size=115B cardinality=71.46K
| |
| |--27:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 33:HASH JOIN [INNER JOIN]
| | hash predicates: ws_promo_sk = p_promo_sk
| | runtime filters: RF020 <- p_promo_sk
| | row-size=89B cardinality=71.46K
| |
| |--30:SCAN HDFS [tpcds.promotion]
| | HDFS partitions=1/1 files=1 size=36.36KB
| | predicates: p_channel_tv = 'N'
| | row-size=17B cardinality=300
| |
| 32:HASH JOIN [INNER JOIN]
| | hash predicates: ws_item_sk = i_item_sk
| | runtime filters: RF022 <- i_item_sk
| | row-size=72B cardinality=71.94K
| |
| |--29:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_current_price > 50
| | row-size=12B cardinality=1.80K
| |
| 31:HASH JOIN [LEFT OUTER JOIN]
| | hash predicates: ws_item_sk = wr_item_sk, ws_order_number = wr_order_number
| | row-size=60B cardinality=719.38K
| |
| |--26:SCAN HDFS [tpcds.web_returns]
| | HDFS partitions=1/1 files=1 size=9.35MB
| | runtime filters: RF022 -> tpcds.web_returns.wr_item_sk
| | row-size=24B cardinality=71.76K
| |
| 25:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF022 -> ws_item_sk, RF020 -> ws_promo_sk
| row-size=36B cardinality=719.38K
|
|--24:AGGREGATE [FINALIZE]
| | output: sum(cs_ext_sales_price), sum(coalesce(cr_return_amount, 0)), sum(cs_net_profit - coalesce(cr_net_loss, 0))
| | group by: cp_catalog_page_id
| | row-size=76B cardinality=11.54K
| |
| 23:HASH JOIN [INNER JOIN]
| | hash predicates: cs_catalog_page_sk = cp_catalog_page_sk
| | runtime filters: RF008 <- cp_catalog_page_sk
| | row-size=147B cardinality=143.20K
| |
| |--16:SCAN HDFS [tpcds.catalog_page]
| | HDFS partitions=1/1 files=1 size=1.56MB
| | row-size=32B cardinality=11.72K
| |
| 22:HASH JOIN [INNER JOIN]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=115B cardinality=143.20K
| |
| |--15:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 21:HASH JOIN [INNER JOIN]
| | hash predicates: cs_promo_sk = p_promo_sk
| | runtime filters: RF012 <- p_promo_sk
| | row-size=89B cardinality=143.20K
| |
| |--18:SCAN HDFS [tpcds.promotion]
| | HDFS partitions=1/1 files=1 size=36.36KB
| | predicates: p_channel_tv = 'N'
| | row-size=17B cardinality=300
| |
| 20:HASH JOIN [INNER JOIN]
| | hash predicates: cs_item_sk = i_item_sk
| | runtime filters: RF014 <- i_item_sk
| | row-size=72B cardinality=144.16K
| |
| |--17:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_current_price > 50
| | row-size=12B cardinality=1.80K
| |
| 19:HASH JOIN [LEFT OUTER JOIN]
| | hash predicates: cs_item_sk = cr_item_sk, cs_order_number = cr_order_number
| | row-size=60B cardinality=1.44M
| |
| |--14:SCAN HDFS [tpcds.catalog_returns]
| | HDFS partitions=1/1 files=1 size=20.39MB
| | runtime filters: RF014 -> tpcds.catalog_returns.cr_item_sk
| | row-size=24B cardinality=144.07K
| |
| 13:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF014 -> cs_item_sk, RF012 -> cs_promo_sk, RF008 -> cs_catalog_page_sk, RF010 -> cs_sold_date_sk
| row-size=36B cardinality=1.44M
|
12:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price), sum(coalesce(sr_return_amt, 0)), sum(ss_net_profit - coalesce(sr_net_loss, 0))
| group by: s_store_id
| row-size=76B cardinality=6
|
11:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=147B cardinality=286.13K
|
|--04:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=32B cardinality=12
|
10:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=115B cardinality=286.13K
|
|--03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| row-size=26B cardinality=7.30K
|
09:HASH JOIN [INNER JOIN]
| hash predicates: ss_promo_sk = p_promo_sk
| runtime filters: RF004 <- p_promo_sk
| row-size=89B cardinality=286.13K
|
|--06:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: p_channel_tv = 'N'
| row-size=17B cardinality=300
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF006 <- i_item_sk
| row-size=72B cardinality=288.04K
|
|--05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_current_price > 50
| row-size=12B cardinality=1.80K
|
07:HASH JOIN [LEFT OUTER JOIN]
| hash predicates: ss_item_sk = sr_item_sk, ss_ticket_number = sr_ticket_number
| row-size=60B cardinality=2.88M
|
|--02:SCAN HDFS [tpcds.store_returns]
| HDFS partitions=1/1 files=1 size=31.19MB
| runtime filters: RF006 -> tpcds.store_returns.sr_item_sk
| row-size=24B cardinality=287.51K
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF006 -> ss_item_sk, RF004 -> ss_promo_sk, RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=174.21MB Threads=39
Per-Host Resource Estimates: Memory=1.23GB
PLAN-ROOT SINK
|
63:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END ASC, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END ASC
| limit: 100
|
39:TOP-N [LIMIT=100]
| order by: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END ASC, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END ASC
| row-size=72B cardinality=100
|
38:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(sales) WHEN 27 THEN sum(sales) WHEN 28 THEN sum(sales) END), aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(`returns`) WHEN 27 THEN sum(`returns`) WHEN 28 THEN sum(`returns`) END), aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(profit) WHEN 27 THEN sum(profit) WHEN 28 THEN sum(profit) END)
| group by: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END, CASE valid_tid(26,27,28) WHEN 26 THEN 26 WHEN 27 THEN 27 WHEN 28 THEN 28 END
| row-size=76B cardinality=11.56K
|
62:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: channel, id
| Class 1
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: channel, NULL
| Class 2
| output: sum:merge(sales), sum:merge(`returns`), sum:merge(profit)
| group by: NULL, NULL
| row-size=216B cardinality=11.56K
|
61:EXCHANGE [HASH(CASE valid_tid(26,27,28) WHEN 26 THEN murmur_hash(channel) WHEN 27 THEN murmur_hash(channel) WHEN 28 THEN murmur_hash(NULL) END,CASE valid_tid(26,27,28) WHEN 26 THEN murmur_hash(id) WHEN 27 THEN murmur_hash(NULL) WHEN 28 THEN murmur_hash(NULL) END)]
|
37:AGGREGATE [STREAMING]
| Class 0
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, id
| Class 1
| output: sum(sales), sum(returns), sum(profit)
| group by: channel, NULL
| Class 2
| output: sum(sales), sum(returns), sum(profit)
| group by: NULL, NULL
| row-size=216B cardinality=11.56K
|
00:UNION
| row-size=72B cardinality=11.56K
|
|--60:AGGREGATE [FINALIZE]
| | output: sum:merge(ws_ext_sales_price), sum:merge(coalesce(wr_return_amt, 0)), sum:merge(ws_net_profit - coalesce(wr_net_loss, 0))
| | group by: web_site_id
| | row-size=76B cardinality=15
| |
| 59:EXCHANGE [HASH(web_site_id)]
| |
| 36:AGGREGATE [STREAMING]
| | output: sum(ws_ext_sales_price), sum(coalesce(wr_return_amt, 0)), sum(ws_net_profit - coalesce(wr_net_loss, 0))
| | group by: web_site_id
| | row-size=76B cardinality=15
| |
| 35:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_web_site_sk = web_site_sk
| | row-size=147B cardinality=71.46K
| |
| |--58:EXCHANGE [BROADCAST]
| | |
| | 28:SCAN HDFS [tpcds.web_site]
| | HDFS partitions=1/1 files=1 size=8.57KB
| | row-size=32B cardinality=30
| |
| 34:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | row-size=115B cardinality=71.46K
| |
| |--57:EXCHANGE [BROADCAST]
| | |
| | 27:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 33:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_promo_sk = p_promo_sk
| | runtime filters: RF020 <- p_promo_sk
| | row-size=89B cardinality=71.46K
| |
| |--56:EXCHANGE [BROADCAST]
| | |
| | 30:SCAN HDFS [tpcds.promotion]
| | HDFS partitions=1/1 files=1 size=36.36KB
| | predicates: p_channel_tv = 'N'
| | row-size=17B cardinality=300
| |
| 32:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_item_sk = i_item_sk
| | runtime filters: RF022 <- i_item_sk
| | row-size=72B cardinality=71.94K
| |
| |--55:EXCHANGE [BROADCAST]
| | |
| | 29:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_current_price > 50
| | row-size=12B cardinality=1.80K
| |
| 31:HASH JOIN [LEFT OUTER JOIN, BROADCAST]
| | hash predicates: ws_item_sk = wr_item_sk, ws_order_number = wr_order_number
| | row-size=60B cardinality=719.38K
| |
| |--54:EXCHANGE [BROADCAST]
| | |
| | 26:SCAN HDFS [tpcds.web_returns]
| | HDFS partitions=1/1 files=1 size=9.35MB
| | runtime filters: RF022 -> tpcds.web_returns.wr_item_sk
| | row-size=24B cardinality=71.76K
| |
| 25:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF022 -> ws_item_sk, RF020 -> ws_promo_sk
| row-size=36B cardinality=719.38K
|
|--53:AGGREGATE [FINALIZE]
| | output: sum:merge(cs_ext_sales_price), sum:merge(coalesce(cr_return_amount, 0)), sum:merge(cs_net_profit - coalesce(cr_net_loss, 0))
| | group by: cp_catalog_page_id
| | row-size=76B cardinality=11.54K
| |
| 52:EXCHANGE [HASH(cp_catalog_page_id)]
| |
| 24:AGGREGATE [STREAMING]
| | output: sum(cs_ext_sales_price), sum(coalesce(cr_return_amount, 0)), sum(cs_net_profit - coalesce(cr_net_loss, 0))
| | group by: cp_catalog_page_id
| | row-size=76B cardinality=11.54K
| |
| 23:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_catalog_page_sk = cp_catalog_page_sk
| | runtime filters: RF008 <- cp_catalog_page_sk
| | row-size=147B cardinality=143.20K
| |
| |--51:EXCHANGE [BROADCAST]
| | |
| | 16:SCAN HDFS [tpcds.catalog_page]
| | HDFS partitions=1/1 files=1 size=1.56MB
| | row-size=32B cardinality=11.72K
| |
| 22:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=115B cardinality=143.20K
| |
| |--50:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| | row-size=26B cardinality=7.30K
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_promo_sk = p_promo_sk
| | runtime filters: RF012 <- p_promo_sk
| | row-size=89B cardinality=143.20K
| |
| |--49:EXCHANGE [BROADCAST]
| | |
| | 18:SCAN HDFS [tpcds.promotion]
| | HDFS partitions=1/1 files=1 size=36.36KB
| | predicates: p_channel_tv = 'N'
| | row-size=17B cardinality=300
| |
| 20:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_item_sk = i_item_sk
| | runtime filters: RF014 <- i_item_sk
| | row-size=72B cardinality=144.16K
| |
| |--48:EXCHANGE [BROADCAST]
| | |
| | 17:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_current_price > 50
| | row-size=12B cardinality=1.80K
| |
| 19:HASH JOIN [LEFT OUTER JOIN, BROADCAST]
| | hash predicates: cs_item_sk = cr_item_sk, cs_order_number = cr_order_number
| | row-size=60B cardinality=1.44M
| |
| |--47:EXCHANGE [BROADCAST]
| | |
| | 14:SCAN HDFS [tpcds.catalog_returns]
| | HDFS partitions=1/1 files=1 size=20.39MB
| | runtime filters: RF014 -> tpcds.catalog_returns.cr_item_sk
| | row-size=24B cardinality=144.07K
| |
| 13:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF014 -> cs_item_sk, RF012 -> cs_promo_sk, RF008 -> cs_catalog_page_sk, RF010 -> cs_sold_date_sk
| row-size=36B cardinality=1.44M
|
46:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price), sum:merge(coalesce(sr_return_amt, 0)), sum:merge(ss_net_profit - coalesce(sr_net_loss, 0))
| group by: s_store_id
| row-size=76B cardinality=6
|
45:EXCHANGE [HASH(s_store_id)]
|
12:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price), sum(coalesce(sr_return_amt, 0)), sum(ss_net_profit - coalesce(sr_net_loss, 0))
| group by: s_store_id
| row-size=76B cardinality=6
|
11:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=147B cardinality=286.13K
|
|--44:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=32B cardinality=12
|
10:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- d_date_sk
| row-size=115B cardinality=286.13K
|
|--43:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_date <= DATE '1998-09-03', d_date >= DATE '1998-08-04'
| row-size=26B cardinality=7.30K
|
09:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_promo_sk = p_promo_sk
| runtime filters: RF004 <- p_promo_sk
| row-size=89B cardinality=286.13K
|
|--42:EXCHANGE [BROADCAST]
| |
| 06:SCAN HDFS [tpcds.promotion]
| HDFS partitions=1/1 files=1 size=36.36KB
| predicates: p_channel_tv = 'N'
| row-size=17B cardinality=300
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF006 <- i_item_sk
| row-size=72B cardinality=288.04K
|
|--41:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_current_price > 50
| row-size=12B cardinality=1.80K
|
07:HASH JOIN [LEFT OUTER JOIN, BROADCAST]
| hash predicates: ss_item_sk = sr_item_sk, ss_ticket_number = sr_ticket_number
| row-size=60B cardinality=2.88M
|
|--40:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.store_returns]
| HDFS partitions=1/1 files=1 size=31.19MB
| runtime filters: RF006 -> tpcds.store_returns.sr_item_sk
| row-size=24B cardinality=287.51K
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF006 -> ss_item_sk, RF004 -> ss_promo_sk, RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
====
# TPCDS-Q86
select
sum(ws_net_paid) as total_sum
,i_category
,i_class
,grouping(i_category)+grouping(i_class) as lochierarchy
,rank() over (
partition by grouping(i_category)+grouping(i_class),
case when grouping(i_class) = 0 then i_category end
order by sum(ws_net_paid) desc) as rank_within_parent
from
web_sales
,date_dim d1
,item
where
d1.d_month_seq between 1212 and 1212+11
and d1.d_date_sk = ws_sold_date_sk
and i_item_sk = ws_item_sk
group by rollup(i_category,i_class)
order by
lochierarchy desc,
-- Modified from original because Impala does not allow aliases within order by
-- expressions, except at the top level.
case when grouping(i_category)+grouping(i_class) = 0 then i_category end,
rank_within_parent
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=33.88MB Threads=4
Per-Host Resource Estimates: Memory=250MB
PLAN-ROOT SINK
|
09:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END ASC, rank() ASC
| row-size=50B cardinality=100
|
08:ANALYTIC
| functions: rank()
| partition by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END), CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN sum(ws_net_paid) WHEN 4 THEN sum(ws_net_paid) WHEN 5 THEN sum(ws_net_paid) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=54B cardinality=1.00K
|
07:SORT
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) ASC NULLS LAST, CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END ASC NULLS LAST, aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN sum(ws_net_paid) WHEN 4 THEN sum(ws_net_paid) WHEN 5 THEN sum(ws_net_paid) END) DESC
| row-size=46B cardinality=1.00K
|
06:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN sum(ws_net_paid) WHEN 4 THEN sum(ws_net_paid) WHEN 5 THEN sum(ws_net_paid) END), aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END), aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END)
| group by: CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END, CASE valid_tid(3,4,5) WHEN 3 THEN i_class WHEN 4 THEN NULL WHEN 5 THEN NULL END, CASE valid_tid(3,4,5) WHEN 3 THEN 3 WHEN 4 THEN 4 WHEN 5 THEN 5 END
| row-size=46B cardinality=1.00K
|
05:AGGREGATE [FINALIZE]
| Class 0
| output: sum(ws_net_paid)
| group by: i_category, i_class
| Class 1
| output: sum(ws_net_paid)
| group by: i_category, NULL
| Class 2
| output: sum(ws_net_paid)
| group by: NULL, NULL
| row-size=140B cardinality=1.00K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ws_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=70B cardinality=719.38K
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=46B cardinality=18.00K
|
03:HASH JOIN [INNER JOIN]
| hash predicates: ws_sold_date_sk = d1.d_date_sk
| runtime filters: RF002 <- d1.d_date_sk
| row-size=24B cardinality=719.38K
|
|--01:SCAN HDFS [tpcds.date_dim d1]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d1.d_month_seq <= 1223, d1.d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
00:SCAN HDFS [tpcds.web_sales]
HDFS partitions=1/1 files=1 size=140.07MB
runtime filters: RF000 -> ws_item_sk, RF002 -> ws_sold_date_sk
row-size=16B cardinality=719.38K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=59.62MB Threads=9
Per-Host Resource Estimates: Memory=333MB
PLAN-ROOT SINK
|
15:MERGING-EXCHANGE [UNPARTITIONED]
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END ASC, rank() ASC
| limit: 100
|
09:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END ASC, rank() ASC
| row-size=50B cardinality=100
|
08:ANALYTIC
| functions: rank()
| partition by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END), CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN sum(ws_net_paid) WHEN 4 THEN sum(ws_net_paid) WHEN 5 THEN sum(ws_net_paid) END) DESC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=54B cardinality=1.00K
|
07:SORT
| order by: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) ASC NULLS LAST, CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END ASC NULLS LAST, aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN sum(ws_net_paid) WHEN 4 THEN sum(ws_net_paid) WHEN 5 THEN sum(ws_net_paid) END) DESC
| row-size=46B cardinality=1.00K
|
14:EXCHANGE [HASH(aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END) + aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END),CASE WHEN aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END) = 0 THEN CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END END)]
|
06:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN sum(ws_net_paid) WHEN 4 THEN sum(ws_net_paid) WHEN 5 THEN sum(ws_net_paid) END), aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 0 WHEN 5 THEN 1 END), aggif(valid_tid(3,4,5) IN (3, 4, 5), CASE valid_tid(3,4,5) WHEN 3 THEN 0 WHEN 4 THEN 1 WHEN 5 THEN 1 END)
| group by: CASE valid_tid(3,4,5) WHEN 3 THEN i_category WHEN 4 THEN i_category WHEN 5 THEN NULL END, CASE valid_tid(3,4,5) WHEN 3 THEN i_class WHEN 4 THEN NULL WHEN 5 THEN NULL END, CASE valid_tid(3,4,5) WHEN 3 THEN 3 WHEN 4 THEN 4 WHEN 5 THEN 5 END
| row-size=46B cardinality=1.00K
|
13:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(ws_net_paid)
| group by: i_category, i_class
| Class 1
| output: sum:merge(ws_net_paid)
| group by: i_category, NULL
| Class 2
| output: sum:merge(ws_net_paid)
| group by: NULL, NULL
| row-size=140B cardinality=1.00K
|
12:EXCHANGE [HASH(CASE valid_tid(3,4,5) WHEN 3 THEN murmur_hash(i_category) WHEN 4 THEN murmur_hash(i_category) WHEN 5 THEN murmur_hash(NULL) END,CASE valid_tid(3,4,5) WHEN 3 THEN murmur_hash(i_class) WHEN 4 THEN murmur_hash(NULL) WHEN 5 THEN murmur_hash(NULL) END)]
|
05:AGGREGATE [STREAMING]
| Class 0
| output: sum(ws_net_paid)
| group by: i_category, i_class
| Class 1
| output: sum(ws_net_paid)
| group by: i_category, NULL
| Class 2
| output: sum(ws_net_paid)
| group by: NULL, NULL
| row-size=140B cardinality=1.00K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ws_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=70B cardinality=719.38K
|
|--11:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=46B cardinality=18.00K
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ws_sold_date_sk = d1.d_date_sk
| runtime filters: RF002 <- d1.d_date_sk
| row-size=24B cardinality=719.38K
|
|--10:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim d1]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d1.d_month_seq <= 1223, d1.d_month_seq >= 1212
| row-size=8B cardinality=7.30K
|
00:SCAN HDFS [tpcds.web_sales]
HDFS partitions=1/1 files=1 size=140.07MB
runtime filters: RF000 -> ws_item_sk, RF002 -> ws_sold_date_sk
row-size=16B cardinality=719.38K
====
# TPCDS-Q27
select i_item_id,
s_state, grouping(s_state) g_state,
avg(ss_quantity) agg1,
avg(ss_list_price) agg2,
avg(ss_coupon_amt) agg3,
avg(ss_sales_price) agg4
from store_sales, customer_demographics, date_dim, store, item
where ss_sold_date_sk = d_date_sk and
ss_item_sk = i_item_sk and
ss_store_sk = s_store_sk and
ss_cdemo_sk = cd_demo_sk and
cd_gender = 'M' and
cd_marital_status = 'S' and
cd_education_status = 'College' and
d_year = 2002 and
s_state in ('TN')
group by rollup (i_item_id, s_state)
order by i_item_id
,s_state
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=50.32MB Threads=6
Per-Host Resource Estimates: Memory=434MB
PLAN-ROOT SINK
|
11:TOP-N [LIMIT=100]
| order by: CASE valid_tid(6,8,10) WHEN 6 THEN i_item_id WHEN 8 THEN i_item_id WHEN 10 THEN NULL END ASC, CASE valid_tid(6,8,10) WHEN 6 THEN s_state WHEN 8 THEN NULL WHEN 10 THEN NULL END ASC
| row-size=57B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN 0 WHEN 8 THEN 1 WHEN 10 THEN 1 END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_quantity) WHEN 8 THEN avg(ss_quantity) WHEN 10 THEN avg(ss_quantity) END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_list_price) WHEN 8 THEN avg(ss_list_price) WHEN 10 THEN avg(ss_list_price) END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_coupon_amt) WHEN 8 THEN avg(ss_coupon_amt) WHEN 10 THEN avg(ss_coupon_amt) END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_sales_price) WHEN 8 THEN avg(ss_sales_price) WHEN 10 THEN avg(ss_sales_price) END)
| group by: CASE valid_tid(6,8,10) WHEN 6 THEN i_item_id WHEN 8 THEN i_item_id WHEN 10 THEN NULL END, CASE valid_tid(6,8,10) WHEN 6 THEN s_state WHEN 8 THEN NULL WHEN 10 THEN NULL END, CASE valid_tid(6,8,10) WHEN 6 THEN 6 WHEN 8 THEN 8 WHEN 10 THEN 10 END
| row-size=61B cardinality=17.71K
|
09:AGGREGATE [FINALIZE]
| Class 0
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, s_state
| Class 1
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, NULL
| Class 2
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: NULL, NULL
| row-size=202B cardinality=17.71K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=150B cardinality=263.34K
|
|--04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=114B cardinality=263.34K
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('TN')
| row-size=18B cardinality=12
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'S', cd_gender = 'M', cd_education_status = 'College'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=44B cardinality=589.03K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2002
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=67.95MB Threads=12
Per-Host Resource Estimates: Memory=510MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: CASE valid_tid(6,8,10) WHEN 6 THEN i_item_id WHEN 8 THEN i_item_id WHEN 10 THEN NULL END ASC, CASE valid_tid(6,8,10) WHEN 6 THEN s_state WHEN 8 THEN NULL WHEN 10 THEN NULL END ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: CASE valid_tid(6,8,10) WHEN 6 THEN i_item_id WHEN 8 THEN i_item_id WHEN 10 THEN NULL END ASC, CASE valid_tid(6,8,10) WHEN 6 THEN s_state WHEN 8 THEN NULL WHEN 10 THEN NULL END ASC
| row-size=57B cardinality=100
|
10:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN 0 WHEN 8 THEN 1 WHEN 10 THEN 1 END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_quantity) WHEN 8 THEN avg(ss_quantity) WHEN 10 THEN avg(ss_quantity) END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_list_price) WHEN 8 THEN avg(ss_list_price) WHEN 10 THEN avg(ss_list_price) END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_coupon_amt) WHEN 8 THEN avg(ss_coupon_amt) WHEN 10 THEN avg(ss_coupon_amt) END), aggif(valid_tid(6,8,10) IN (6, 8, 10), CASE valid_tid(6,8,10) WHEN 6 THEN avg(ss_sales_price) WHEN 8 THEN avg(ss_sales_price) WHEN 10 THEN avg(ss_sales_price) END)
| group by: CASE valid_tid(6,8,10) WHEN 6 THEN i_item_id WHEN 8 THEN i_item_id WHEN 10 THEN NULL END, CASE valid_tid(6,8,10) WHEN 6 THEN s_state WHEN 8 THEN NULL WHEN 10 THEN NULL END, CASE valid_tid(6,8,10) WHEN 6 THEN 6 WHEN 8 THEN 8 WHEN 10 THEN 10 END
| row-size=61B cardinality=17.71K
|
17:AGGREGATE [FINALIZE]
| Class 0
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: i_item_id, s_state
| Class 1
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: i_item_id, NULL
| Class 2
| output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
| group by: NULL, NULL
| row-size=202B cardinality=17.71K
|
16:EXCHANGE [HASH(CASE valid_tid(5,7,9) WHEN 5 THEN murmur_hash(i_item_id) WHEN 7 THEN murmur_hash(i_item_id) WHEN 9 THEN murmur_hash(NULL) END,CASE valid_tid(5,7,9) WHEN 5 THEN murmur_hash(s_state) WHEN 7 THEN murmur_hash(NULL) WHEN 9 THEN murmur_hash(NULL) END)]
|
09:AGGREGATE [STREAMING]
| Class 0
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, s_state
| Class 1
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: i_item_id, NULL
| Class 2
| output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
| group by: NULL, NULL
| row-size=202B cardinality=17.71K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF000 <- i_item_sk
| row-size=150B cardinality=263.34K
|
|--15:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF002 <- s_store_sk
| row-size=114B cardinality=263.34K
|
|--14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('TN')
| row-size=18B cardinality=12
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- cd_demo_sk
| row-size=96B cardinality=263.34K
|
|--13:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.customer_demographics]
| HDFS partitions=1/1 files=1 size=76.92MB
| predicates: cd_marital_status = 'S', cd_gender = 'M', cd_education_status = 'College'
| row-size=52B cardinality=97.40K
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=44B cardinality=589.03K
|
|--12:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 2002
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
row-size=36B cardinality=2.88M
====
# TPCDS-Q36
select
sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin
,i_category
,i_class
,grouping(i_category)+grouping(i_class) as lochierarchy
,rank() over (
partition by grouping(i_category)+grouping(i_class),
case when grouping(i_class) = 0 then i_category end
order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent
from
store_sales
,date_dim d1
,item
,store
where
d1.d_year = 2001
and d1.d_date_sk = ss_sold_date_sk
and i_item_sk = ss_item_sk
and s_store_sk = ss_store_sk
and s_state in ('TN')
group by rollup(i_category,i_class)
order by
lochierarchy desc
-- Modified from original because Impala does not allow aliases within order by
-- expressions, except at the top level.
,case when grouping(i_category)+grouping(i_class) = 0 then i_category end
,rank_within_parent
limit 100
---- PLAN
Max Per-Host Resource Reservation: Memory=36.82MB Threads=5
Per-Host Resource Estimates: Memory=253MB
PLAN-ROOT SINK
|
11:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END ASC, rank() ASC
| row-size=66B cardinality=100
|
10:ANALYTIC
| functions: rank()
| partition by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END), CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_net_profit) WHEN 5 THEN sum(ss_net_profit) WHEN 6 THEN sum(ss_net_profit) END) / aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_ext_sales_price) WHEN 5 THEN sum(ss_ext_sales_price) WHEN 6 THEN sum(ss_ext_sales_price) END) ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=70B cardinality=1.00K
|
09:SORT
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) ASC NULLS LAST, CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END ASC NULLS LAST, aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_net_profit) WHEN 5 THEN sum(ss_net_profit) WHEN 6 THEN sum(ss_net_profit) END) / aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_ext_sales_price) WHEN 5 THEN sum(ss_ext_sales_price) WHEN 6 THEN sum(ss_ext_sales_price) END) ASC
| row-size=62B cardinality=1.00K
|
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_net_profit) WHEN 5 THEN sum(ss_net_profit) WHEN 6 THEN sum(ss_net_profit) END), aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_ext_sales_price) WHEN 5 THEN sum(ss_ext_sales_price) WHEN 6 THEN sum(ss_ext_sales_price) END), aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END), aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END)
| group by: CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END, CASE valid_tid(4,5,6) WHEN 4 THEN i_class WHEN 5 THEN NULL WHEN 6 THEN NULL END, CASE valid_tid(4,5,6) WHEN 4 THEN 4 WHEN 5 THEN 5 WHEN 6 THEN 6 END
| row-size=62B cardinality=1.00K
|
07:AGGREGATE [FINALIZE]
| Class 0
| output: sum(ss_net_profit), sum(ss_ext_sales_price)
| group by: i_category, i_class
| Class 1
| output: sum(ss_net_profit), sum(ss_ext_sales_price)
| group by: i_category, NULL
| Class 2
| output: sum(ss_net_profit), sum(ss_ext_sales_price)
| group by: NULL, NULL
| row-size=188B cardinality=1.00K
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=96B cardinality=589.03K
|
|--03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('TN')
| row-size=18B cardinality=12
|
05:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=78B cardinality=589.03K
|
|--02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=46B cardinality=18.00K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d1.d_date_sk
| runtime filters: RF004 <- d1.d_date_sk
| row-size=32B cardinality=589.03K
|
|--01:SCAN HDFS [tpcds.date_dim d1]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d1.d_year = 2001
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
row-size=24B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=62.57MB Threads=11
Per-Host Resource Estimates: Memory=336MB
PLAN-ROOT SINK
|
18:MERGING-EXCHANGE [UNPARTITIONED]
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END ASC, rank() ASC
| limit: 100
|
11:TOP-N [LIMIT=100]
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) DESC, CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END ASC, rank() ASC
| row-size=66B cardinality=100
|
10:ANALYTIC
| functions: rank()
| partition by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END), CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_net_profit) WHEN 5 THEN sum(ss_net_profit) WHEN 6 THEN sum(ss_net_profit) END) / aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_ext_sales_price) WHEN 5 THEN sum(ss_ext_sales_price) WHEN 6 THEN sum(ss_ext_sales_price) END) ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=70B cardinality=1.00K
|
09:SORT
| order by: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) ASC NULLS LAST, CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END ASC NULLS LAST, aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_net_profit) WHEN 5 THEN sum(ss_net_profit) WHEN 6 THEN sum(ss_net_profit) END) / aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_ext_sales_price) WHEN 5 THEN sum(ss_ext_sales_price) WHEN 6 THEN sum(ss_ext_sales_price) END) ASC
| row-size=62B cardinality=1.00K
|
17:EXCHANGE [HASH(aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END) + aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END),CASE WHEN aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END) = 0 THEN CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END END)]
|
08:AGGREGATE [FINALIZE]
| output: aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_net_profit) WHEN 5 THEN sum(ss_net_profit) WHEN 6 THEN sum(ss_net_profit) END), aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN sum(ss_ext_sales_price) WHEN 5 THEN sum(ss_ext_sales_price) WHEN 6 THEN sum(ss_ext_sales_price) END), aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 0 WHEN 6 THEN 1 END), aggif(valid_tid(4,5,6) IN (4, 5, 6), CASE valid_tid(4,5,6) WHEN 4 THEN 0 WHEN 5 THEN 1 WHEN 6 THEN 1 END)
| group by: CASE valid_tid(4,5,6) WHEN 4 THEN i_category WHEN 5 THEN i_category WHEN 6 THEN NULL END, CASE valid_tid(4,5,6) WHEN 4 THEN i_class WHEN 5 THEN NULL WHEN 6 THEN NULL END, CASE valid_tid(4,5,6) WHEN 4 THEN 4 WHEN 5 THEN 5 WHEN 6 THEN 6 END
| row-size=62B cardinality=1.00K
|
16:AGGREGATE [FINALIZE]
| Class 0
| output: sum:merge(ss_net_profit), sum:merge(ss_ext_sales_price)
| group by: i_category, i_class
| Class 1
| output: sum:merge(ss_net_profit), sum:merge(ss_ext_sales_price)
| group by: i_category, NULL
| Class 2
| output: sum:merge(ss_net_profit), sum:merge(ss_ext_sales_price)
| group by: NULL, NULL
| row-size=188B cardinality=1.00K
|
15:EXCHANGE [HASH(CASE valid_tid(4,5,6) WHEN 4 THEN murmur_hash(i_category) WHEN 5 THEN murmur_hash(i_category) WHEN 6 THEN murmur_hash(NULL) END,CASE valid_tid(4,5,6) WHEN 4 THEN murmur_hash(i_class) WHEN 5 THEN murmur_hash(NULL) WHEN 6 THEN murmur_hash(NULL) END)]
|
07:AGGREGATE [STREAMING]
| Class 0
| output: sum(ss_net_profit), sum(ss_ext_sales_price)
| group by: i_category, i_class
| Class 1
| output: sum(ss_net_profit), sum(ss_ext_sales_price)
| group by: i_category, NULL
| Class 2
| output: sum(ss_net_profit), sum(ss_ext_sales_price)
| group by: NULL, NULL
| row-size=188B cardinality=1.00K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- s_store_sk
| row-size=96B cardinality=589.03K
|
|--14:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| predicates: s_state IN ('TN')
| row-size=18B cardinality=12
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=78B cardinality=589.03K
|
|--13:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| row-size=46B cardinality=18.00K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d1.d_date_sk
| runtime filters: RF004 <- d1.d_date_sk
| row-size=32B cardinality=589.03K
|
|--12:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim d1]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d1.d_year = 2001
| row-size=8B cardinality=373
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
row-size=24B cardinality=2.88M
====
# TPCDS-Q38
SELECT count(*)
FROM
(SELECT DISTINCT c_last_name,
c_first_name,
d_date
FROM store_sales,
date_dim,
customer
WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
AND store_sales.ss_customer_sk = customer.c_customer_sk
AND d_month_seq BETWEEN 1200 AND 1200 + 11 INTERSECT
SELECT DISTINCT c_last_name,
c_first_name,
d_date
FROM catalog_sales,
date_dim,
customer WHERE catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
AND catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
AND d_month_seq BETWEEN 1200 AND 1200 + 11 INTERSECT
SELECT DISTINCT c_last_name,
c_first_name,
d_date
FROM web_sales,
date_dim,
customer WHERE web_sales.ws_sold_date_sk = date_dim.d_date_sk
AND web_sales.ws_bill_customer_sk = customer.c_customer_sk
AND d_month_seq BETWEEN 1200 AND 1200 + 11 ) hot_cust
LIMIT 100
---- PLAN
Max Per-Host Resource Reservation: Memory=194.69MB Threads=10
Per-Host Resource Estimates: Memory=861MB
PLAN-ROOT SINK
|
20:AGGREGATE [FINALIZE]
| output: count(*)
| limit: 100
| row-size=8B cardinality=1
|
19:HASH JOIN [INNER JOIN]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| runtime filters: RF000 <- c_first_name, RF001 <- c_last_name, RF002 <- d_date
| row-size=174B cardinality=2.88M
|
|--17:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=719.38K
| |
| 16:HASH JOIN [INNER JOIN]
| | hash predicates: web_sales.ws_bill_customer_sk = customer.c_customer_sk
| | row-size=78B cardinality=719.38K
| |
| |--14:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 15:HASH JOIN [INNER JOIN]
| | hash predicates: web_sales.ws_sold_date_sk = date_dim.d_date_sk
| | row-size=38B cardinality=719.38K
| |
| |--13:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 12:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| row-size=8B cardinality=719.38K
|
18:HASH JOIN [INNER JOIN]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| runtime filters: RF006 <- c_first_name, RF007 <- c_last_name, RF008 <- d_date
| row-size=116B cardinality=2.88M
|
|--11:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=1.44M
| |
| 10:HASH JOIN [INNER JOIN]
| | hash predicates: catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
| | runtime filters: RF016 <- customer.c_customer_sk
| | row-size=78B cardinality=1.44M
| |
| |--08:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 09:HASH JOIN [INNER JOIN]
| | hash predicates: catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF018 <- date_dim.d_date_sk
| | row-size=38B cardinality=1.44M
| |
| |--07:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 06:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF016 -> catalog_sales.cs_bill_customer_sk, RF018 -> catalog_sales.cs_sold_date_sk
| row-size=8B cardinality=1.44M
|
05:AGGREGATE [FINALIZE]
| group by: c_last_name, c_first_name, d_date
| row-size=58B cardinality=2.88M
|
04:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_customer_sk = customer.c_customer_sk
| runtime filters: RF012 <- customer.c_customer_sk
| row-size=78B cardinality=2.88M
|
|--02:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> tpcds.customer.c_first_name, RF001 -> tpcds.customer.c_last_name, RF006 -> tpcds.customer.c_first_name, RF007 -> tpcds.customer.c_last_name
| row-size=40B cardinality=100.00K
|
03:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF014 <- date_dim.d_date_sk
| row-size=38B cardinality=2.88M
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1211, d_month_seq >= 1200
| runtime filters: RF002 -> tpcds.date_dim.d_date, RF008 -> tpcds.date_dim.d_date
| row-size=30B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF012 -> store_sales.ss_customer_sk, RF014 -> store_sales.ss_sold_date_sk
row-size=8B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=363.06MB Threads=22
Per-Host Resource Estimates: Memory=1.21GB
PLAN-ROOT SINK
|
36:AGGREGATE [FINALIZE]
| output: count:merge(*)
| limit: 100
| row-size=8B cardinality=1
|
35:EXCHANGE [UNPARTITIONED]
|
20:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
19:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| runtime filters: RF000 <- c_first_name, RF001 <- c_last_name, RF002 <- d_date
| row-size=174B cardinality=2.88M
|
|--34:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 33:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=719.38K
| |
| 32:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 17:AGGREGATE [STREAMING]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=719.38K
| |
| 16:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: web_sales.ws_bill_customer_sk = customer.c_customer_sk
| | row-size=78B cardinality=719.38K
| |
| |--31:EXCHANGE [BROADCAST]
| | |
| | 14:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 15:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: web_sales.ws_sold_date_sk = date_dim.d_date_sk
| | row-size=38B cardinality=719.38K
| |
| |--30:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 12:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| row-size=8B cardinality=719.38K
|
18:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| runtime filters: RF006 <- c_first_name, RF007 <- c_last_name, RF008 <- d_date
| row-size=116B cardinality=2.88M
|
|--29:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 28:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=1.44M
| |
| 27:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 11:AGGREGATE [STREAMING]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=1.44M
| |
| 10:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
| | runtime filters: RF016 <- customer.c_customer_sk
| | row-size=78B cardinality=1.44M
| |
| |--26:EXCHANGE [BROADCAST]
| | |
| | 08:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 09:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF018 <- date_dim.d_date_sk
| | row-size=38B cardinality=1.44M
| |
| |--25:EXCHANGE [BROADCAST]
| | |
| | 07:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 06:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF016 -> catalog_sales.cs_bill_customer_sk, RF018 -> catalog_sales.cs_sold_date_sk
| row-size=8B cardinality=1.44M
|
24:AGGREGATE [FINALIZE]
| group by: c_last_name, c_first_name, d_date
| row-size=58B cardinality=2.88M
|
23:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
|
05:AGGREGATE [STREAMING]
| group by: c_last_name, c_first_name, d_date
| row-size=58B cardinality=2.88M
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_customer_sk = customer.c_customer_sk
| runtime filters: RF012 <- customer.c_customer_sk
| row-size=78B cardinality=2.88M
|
|--22:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> tpcds.customer.c_first_name, RF001 -> tpcds.customer.c_last_name, RF006 -> tpcds.customer.c_first_name, RF007 -> tpcds.customer.c_last_name
| row-size=40B cardinality=100.00K
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF014 <- date_dim.d_date_sk
| row-size=38B cardinality=2.88M
|
|--21:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1211, d_month_seq >= 1200
| runtime filters: RF002 -> tpcds.date_dim.d_date, RF008 -> tpcds.date_dim.d_date
| row-size=30B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF012 -> store_sales.ss_customer_sk, RF014 -> store_sales.ss_sold_date_sk
row-size=8B cardinality=2.88M
====
# TPCDS-Q87
SELECT count(*)
FROM ((SELECT DISTINCT c_last_name,
c_first_name,
d_date
FROM store_sales,
date_dim,
customer
WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
AND store_sales.ss_customer_sk = customer.c_customer_sk
AND d_month_seq BETWEEN 1200 AND 1200+11)
EXCEPT
(SELECT DISTINCT c_last_name,
c_first_name,
d_date
FROM catalog_sales,
date_dim,
customer
WHERE catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
AND catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
AND d_month_seq BETWEEN 1200 AND 1200+11)
EXCEPT
(SELECT DISTINCT c_last_name,
c_first_name,
d_date
FROM web_sales,
date_dim,
customer
WHERE web_sales.ws_sold_date_sk = date_dim.d_date_sk
AND web_sales.ws_bill_customer_sk = customer.c_customer_sk
AND d_month_seq BETWEEN 1200 AND 1200+11)) cool_cust;
---- PLAN
Max Per-Host Resource Reservation: Memory=190.69MB Threads=10
Per-Host Resource Estimates: Memory=857MB
PLAN-ROOT SINK
|
20:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
19:HASH JOIN [LEFT ANTI JOIN]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| row-size=58B cardinality=2.88M
|
|--17:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=719.38K
| |
| 16:HASH JOIN [INNER JOIN]
| | hash predicates: web_sales.ws_bill_customer_sk = customer.c_customer_sk
| | runtime filters: RF008 <- customer.c_customer_sk
| | row-size=78B cardinality=719.38K
| |
| |--14:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 15:HASH JOIN [INNER JOIN]
| | hash predicates: web_sales.ws_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF010 <- date_dim.d_date_sk
| | row-size=38B cardinality=719.38K
| |
| |--13:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 12:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF008 -> web_sales.ws_bill_customer_sk, RF010 -> web_sales.ws_sold_date_sk
| row-size=8B cardinality=719.38K
|
18:HASH JOIN [LEFT ANTI JOIN]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| row-size=58B cardinality=2.88M
|
|--11:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=1.44M
| |
| 10:HASH JOIN [INNER JOIN]
| | hash predicates: catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
| | runtime filters: RF004 <- customer.c_customer_sk
| | row-size=78B cardinality=1.44M
| |
| |--08:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 09:HASH JOIN [INNER JOIN]
| | hash predicates: catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF006 <- date_dim.d_date_sk
| | row-size=38B cardinality=1.44M
| |
| |--07:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 06:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF004 -> catalog_sales.cs_bill_customer_sk, RF006 -> catalog_sales.cs_sold_date_sk
| row-size=8B cardinality=1.44M
|
05:AGGREGATE [FINALIZE]
| group by: c_last_name, c_first_name, d_date
| row-size=58B cardinality=2.88M
|
04:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_customer_sk = customer.c_customer_sk
| runtime filters: RF000 <- customer.c_customer_sk
| row-size=78B cardinality=2.88M
|
|--02:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=40B cardinality=100.00K
|
03:HASH JOIN [INNER JOIN]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF002 <- date_dim.d_date_sk
| row-size=38B cardinality=2.88M
|
|--01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1211, d_month_seq >= 1200
| row-size=30B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_customer_sk, RF002 -> store_sales.ss_sold_date_sk
row-size=8B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=353.06MB Threads=22
Per-Host Resource Estimates: Memory=1.20GB
PLAN-ROOT SINK
|
36:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
35:EXCHANGE [UNPARTITIONED]
|
20:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
19:HASH JOIN [LEFT ANTI JOIN, PARTITIONED]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| row-size=58B cardinality=2.88M
|
|--34:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 33:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=719.38K
| |
| 32:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 17:AGGREGATE [STREAMING]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=719.38K
| |
| 16:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: web_sales.ws_bill_customer_sk = customer.c_customer_sk
| | runtime filters: RF008 <- customer.c_customer_sk
| | row-size=78B cardinality=719.38K
| |
| |--31:EXCHANGE [BROADCAST]
| | |
| | 14:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 15:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: web_sales.ws_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF010 <- date_dim.d_date_sk
| | row-size=38B cardinality=719.38K
| |
| |--30:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 12:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF008 -> web_sales.ws_bill_customer_sk, RF010 -> web_sales.ws_sold_date_sk
| row-size=8B cardinality=719.38K
|
18:HASH JOIN [LEFT ANTI JOIN, PARTITIONED]
| hash predicates: c_first_name IS NOT DISTINCT FROM c_first_name, c_last_name IS NOT DISTINCT FROM c_last_name, d_date IS NOT DISTINCT FROM d_date
| row-size=58B cardinality=2.88M
|
|--29:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 28:AGGREGATE [FINALIZE]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=1.44M
| |
| 27:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
| |
| 11:AGGREGATE [STREAMING]
| | group by: c_last_name, c_first_name, d_date
| | row-size=58B cardinality=1.44M
| |
| 10:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
| | runtime filters: RF004 <- customer.c_customer_sk
| | row-size=78B cardinality=1.44M
| |
| |--26:EXCHANGE [BROADCAST]
| | |
| | 08:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=40B cardinality=100.00K
| |
| 09:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
| | runtime filters: RF006 <- date_dim.d_date_sk
| | row-size=38B cardinality=1.44M
| |
| |--25:EXCHANGE [BROADCAST]
| | |
| | 07:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_month_seq <= 1211, d_month_seq >= 1200
| | row-size=30B cardinality=7.30K
| |
| 06:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF004 -> catalog_sales.cs_bill_customer_sk, RF006 -> catalog_sales.cs_sold_date_sk
| row-size=8B cardinality=1.44M
|
24:AGGREGATE [FINALIZE]
| group by: c_last_name, c_first_name, d_date
| row-size=58B cardinality=2.88M
|
23:EXCHANGE [HASH(c_last_name,c_first_name,d_date)]
|
05:AGGREGATE [STREAMING]
| group by: c_last_name, c_first_name, d_date
| row-size=58B cardinality=2.88M
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_customer_sk = customer.c_customer_sk
| runtime filters: RF000 <- customer.c_customer_sk
| row-size=78B cardinality=2.88M
|
|--22:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| row-size=40B cardinality=100.00K
|
03:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
| runtime filters: RF002 <- date_dim.d_date_sk
| row-size=38B cardinality=2.88M
|
|--21:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_month_seq <= 1211, d_month_seq >= 1200
| row-size=30B cardinality=7.30K
|
00:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> store_sales.ss_customer_sk, RF002 -> store_sales.ss_sold_date_sk
row-size=8B cardinality=2.88M
====
# Q23-1
with frequent_ss_items as
(select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt
from store_sales
,date_dim
,item
where ss_sold_date_sk = d_date_sk
and ss_item_sk = i_item_sk
and d_year in (2000,2000+1,2000+2,2000+3)
group by substr(i_item_desc,1,30),i_item_sk,d_date
having count(*) >4),
max_store_sales as
(select max(csales) tpcds_cmax
from (select c_customer_sk,sum(ss_quantity*ss_sales_price) csales
from store_sales
,customer
,date_dim
where ss_customer_sk = c_customer_sk
and ss_sold_date_sk = d_date_sk
and d_year in (2000,2000+1,2000+2,2000+3)
group by c_customer_sk) x),
best_ss_customer as
(select c_customer_sk,sum(ss_quantity*ss_sales_price) ssales
from store_sales
,customer
where ss_customer_sk = c_customer_sk
group by c_customer_sk
having sum(ss_quantity*ss_sales_price) > (50/100.0) * (select
*
from
max_store_sales))
select sum(sales)
from (select cs_quantity*cs_list_price sales
from catalog_sales
,date_dim
where d_year = 2000
and d_moy = 2
and cs_sold_date_sk = d_date_sk
and cs_item_sk in (select item_sk from frequent_ss_items)
and cs_bill_customer_sk in (select c_customer_sk from best_ss_customer)
union all
select ws_quantity*ws_list_price sales
from web_sales
,date_dim
where d_year = 2000
and d_moy = 2
and ws_sold_date_sk = d_date_sk
and ws_item_sk in (select item_sk from frequent_ss_items)
and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer)) y
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=122.44MB Threads=11
Per-Host Resource Estimates: Memory=910MB
PLAN-ROOT SINK
|
49:AGGREGATE [FINALIZE]
| output: sum(sales)
| limit: 100
| row-size=16B cardinality=1
|
00:UNION
| row-size=8B cardinality=128.16K
|
|--48:HASH JOIN [RIGHT SEMI JOIN]
| | hash predicates: c_customer_sk = ws_bill_customer_sk
| | runtime filters: RF016 <- ws_bill_customer_sk
| | row-size=36B cardinality=42.85K
| |
| |--47:HASH JOIN [LEFT SEMI JOIN]
| | | hash predicates: ws_item_sk = i_item_sk
| | | row-size=36B cardinality=42.85K
| | |
| | |--46:AGGREGATE [FINALIZE]
| | | | group by: i_item_sk
| | | | row-size=8B cardinality=17.98K
| | | |
| | | 32:AGGREGATE [FINALIZE]
| | | | output: count(*)
| | | | group by: substr(i_item_desc, 1, 30), i_item_sk, d_date
| | | | having: count(*) > 4
| | | | row-size=50B cardinality=235.45K
| | | |
| | | 31:HASH JOIN [INNER JOIN]
| | | | hash predicates: ss_item_sk = i_item_sk
| | | | row-size=162B cardinality=2.35M
| | | |
| | | |--29:SCAN HDFS [tpcds.item]
| | | | HDFS partitions=1/1 files=1 size=4.82MB
| | | | row-size=120B cardinality=18.00K
| | | |
| | | 30:HASH JOIN [INNER JOIN]
| | | | hash predicates: ss_sold_date_sk = d_date_sk
| | | | runtime filters: RF030 <- d_date_sk
| | | | row-size=42B cardinality=2.35M
| | | |
| | | |--28:SCAN HDFS [tpcds.date_dim]
| | | | HDFS partitions=1/1 files=1 size=9.84MB
| | | | predicates: d_year IN (2000, 2001, 2002, 2003)
| | | | row-size=30B cardinality=1.49K
| | | |
| | | 27:SCAN HDFS [tpcds.store_sales]
| | | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | | runtime filters: RF030 -> ss_sold_date_sk
| | | row-size=12B cardinality=2.88M
| | |
| | 45:HASH JOIN [INNER JOIN]
| | | hash predicates: ws_sold_date_sk = d_date_sk
| | | runtime filters: RF026 <- d_date_sk
| | | row-size=36B cardinality=42.85K
| | |
| | |--26:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year = 2000, d_moy = 2
| | | row-size=12B cardinality=108
| | |
| | 25:SCAN HDFS [tpcds.web_sales]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF026 -> ws_sold_date_sk
| | row-size=24B cardinality=719.38K
| |
| 44:NESTED LOOP JOIN [INNER JOIN]
| | predicates: sum(ss_quantity * ss_sales_price) > 0.500000 * max(csales)
| | row-size=36B cardinality=100.00K
| |
| |--43:AGGREGATE [FINALIZE]
| | | output: max(sum(ss_quantity * ss_sales_price))
| | | row-size=16B cardinality=1
| | |
| | 42:AGGREGATE [FINALIZE]
| | | output: sum(ss_quantity * ss_sales_price)
| | | group by: c_customer_sk
| | | row-size=20B cardinality=100.00K
| | |
| | 41:HASH JOIN [INNER JOIN]
| | | hash predicates: ss_customer_sk = c_customer_sk
| | | row-size=28B cardinality=2.35M
| | |
| | |--38:SCAN HDFS [tpcds.customer]
| | | HDFS partitions=1/1 files=1 size=12.60MB
| | | row-size=4B cardinality=100.00K
| | |
| | 40:HASH JOIN [INNER JOIN]
| | | hash predicates: ss_sold_date_sk = d_date_sk
| | | runtime filters: RF022 <- d_date_sk
| | | row-size=24B cardinality=2.35M
| | |
| | |--39:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year IN (2000, 2001, 2002, 2003)
| | | row-size=8B cardinality=1.49K
| | |
| | 37:SCAN HDFS [tpcds.store_sales]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | runtime filters: RF022 -> ss_sold_date_sk
| | row-size=16B cardinality=2.88M
| |
| 36:AGGREGATE [FINALIZE]
| | output: sum(ss_quantity * ss_sales_price)
| | group by: c_customer_sk
| | row-size=20B cardinality=100.00K
| |
| 35:HASH JOIN [INNER JOIN]
| | hash predicates: ss_customer_sk = c_customer_sk
| | row-size=16B cardinality=2.88M
| |
| |--34:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | runtime filters: RF016 -> tpcds.customer.c_customer_sk
| | row-size=4B cardinality=100.00K
| |
| 33:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF016 -> tpcds.store_sales.ss_customer_sk
| row-size=12B cardinality=2.88M
|
24:HASH JOIN [RIGHT SEMI JOIN]
| hash predicates: c_customer_sk = cs_bill_customer_sk
| runtime filters: RF000 <- cs_bill_customer_sk
| row-size=36B cardinality=85.31K
|
|--23:HASH JOIN [LEFT SEMI JOIN]
| | hash predicates: cs_item_sk = i_item_sk
| | row-size=36B cardinality=85.31K
| |
| |--22:AGGREGATE [FINALIZE]
| | | group by: i_item_sk
| | | row-size=8B cardinality=17.98K
| | |
| | 08:AGGREGATE [FINALIZE]
| | | output: count(*)
| | | group by: substr(i_item_desc, 1, 30), i_item_sk, d_date
| | | having: count(*) > 4
| | | row-size=50B cardinality=235.45K
| | |
| | 07:HASH JOIN [INNER JOIN]
| | | hash predicates: ss_item_sk = i_item_sk
| | | row-size=162B cardinality=2.35M
| | |
| | |--05:SCAN HDFS [tpcds.item]
| | | HDFS partitions=1/1 files=1 size=4.82MB
| | | row-size=120B cardinality=18.00K
| | |
| | 06:HASH JOIN [INNER JOIN]
| | | hash predicates: ss_sold_date_sk = d_date_sk
| | | runtime filters: RF014 <- d_date_sk
| | | row-size=42B cardinality=2.35M
| | |
| | |--04:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year IN (2000, 2001, 2002, 2003)
| | | row-size=30B cardinality=1.49K
| | |
| | 03:SCAN HDFS [tpcds.store_sales]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | runtime filters: RF014 -> ss_sold_date_sk
| | row-size=12B cardinality=2.88M
| |
| 21:HASH JOIN [INNER JOIN]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=36B cardinality=85.31K
| |
| |--02:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 2000, d_moy = 2
| | row-size=12B cardinality=108
| |
| 01:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF010 -> cs_sold_date_sk
| row-size=24B cardinality=1.44M
|
20:NESTED LOOP JOIN [INNER JOIN]
| predicates: sum(ss_quantity * ss_sales_price) > 0.500000 * max(csales)
| row-size=36B cardinality=100.00K
|
|--19:AGGREGATE [FINALIZE]
| | output: max(sum(ss_quantity * ss_sales_price))
| | row-size=16B cardinality=1
| |
| 18:AGGREGATE [FINALIZE]
| | output: sum(ss_quantity * ss_sales_price)
| | group by: c_customer_sk
| | row-size=20B cardinality=100.00K
| |
| 17:HASH JOIN [INNER JOIN]
| | hash predicates: ss_customer_sk = c_customer_sk
| | runtime filters: RF004 <- c_customer_sk
| | row-size=28B cardinality=2.35M
| |
| |--14:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=4B cardinality=100.00K
| |
| 16:HASH JOIN [INNER JOIN]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=24B cardinality=2.35M
| |
| |--15:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year IN (2000, 2001, 2002, 2003)
| | row-size=8B cardinality=1.49K
| |
| 13:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_sold_date_sk, RF004 -> ss_customer_sk
| row-size=16B cardinality=2.88M
|
12:AGGREGATE [FINALIZE]
| output: sum(ss_quantity * ss_sales_price)
| group by: c_customer_sk
| row-size=20B cardinality=100.00K
|
11:HASH JOIN [INNER JOIN]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=16B cardinality=2.88M
|
|--10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> tpcds.customer.c_customer_sk
| row-size=4B cardinality=100.00K
|
09:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> ss_customer_sk
row-size=12B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=370.38MB Threads=50
Per-Host Resource Estimates: Memory=2.09GB
PLAN-ROOT SINK
|
89:AGGREGATE [FINALIZE]
| output: sum:merge(sales)
| limit: 100
| row-size=16B cardinality=1
|
88:EXCHANGE [UNPARTITIONED]
|
49:AGGREGATE
| output: sum(sales)
| row-size=16B cardinality=1
|
00:UNION
| row-size=8B cardinality=128.16K
|
|--48:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
| | hash predicates: c_customer_sk = ws_bill_customer_sk
| | runtime filters: RF016 <- ws_bill_customer_sk
| | row-size=36B cardinality=42.85K
| |
| |--87:EXCHANGE [HASH(ws_bill_customer_sk)]
| | |
| | 47:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| | | hash predicates: ws_item_sk = i_item_sk
| | | row-size=36B cardinality=42.85K
| | |
| | |--86:EXCHANGE [BROADCAST]
| | | |
| | | 85:AGGREGATE [FINALIZE]
| | | | group by: i_item_sk
| | | | row-size=8B cardinality=17.98K
| | | |
| | | 84:EXCHANGE [HASH(i_item_sk)]
| | | |
| | | 46:AGGREGATE [STREAMING]
| | | | group by: i_item_sk
| | | | row-size=8B cardinality=17.98K
| | | |
| | | 83:AGGREGATE [FINALIZE]
| | | | output: count:merge(*)
| | | | group by: substr(i_item_desc, 1, 30), i_item_sk, d_date
| | | | having: count(*) > 4
| | | | row-size=50B cardinality=235.45K
| | | |
| | | 82:EXCHANGE [HASH(substr(i_item_desc, 1, 30),i_item_sk,d_date)]
| | | |
| | | 32:AGGREGATE [STREAMING]
| | | | output: count(*)
| | | | group by: substr(i_item_desc, 1, 30), i_item_sk, d_date
| | | | row-size=50B cardinality=2.35M
| | | |
| | | 31:HASH JOIN [INNER JOIN, BROADCAST]
| | | | hash predicates: ss_item_sk = i_item_sk
| | | | row-size=162B cardinality=2.35M
| | | |
| | | |--81:EXCHANGE [BROADCAST]
| | | | |
| | | | 29:SCAN HDFS [tpcds.item]
| | | | HDFS partitions=1/1 files=1 size=4.82MB
| | | | row-size=120B cardinality=18.00K
| | | |
| | | 30:HASH JOIN [INNER JOIN, BROADCAST]
| | | | hash predicates: ss_sold_date_sk = d_date_sk
| | | | runtime filters: RF030 <- d_date_sk
| | | | row-size=42B cardinality=2.35M
| | | |
| | | |--80:EXCHANGE [BROADCAST]
| | | | |
| | | | 28:SCAN HDFS [tpcds.date_dim]
| | | | HDFS partitions=1/1 files=1 size=9.84MB
| | | | predicates: d_year IN (2000, 2001, 2002, 2003)
| | | | row-size=30B cardinality=1.49K
| | | |
| | | 27:SCAN HDFS [tpcds.store_sales]
| | | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | | runtime filters: RF030 -> ss_sold_date_sk
| | | row-size=12B cardinality=2.88M
| | |
| | 45:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ws_sold_date_sk = d_date_sk
| | | runtime filters: RF026 <- d_date_sk
| | | row-size=36B cardinality=42.85K
| | |
| | |--79:EXCHANGE [BROADCAST]
| | | |
| | | 26:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year = 2000, d_moy = 2
| | | row-size=12B cardinality=108
| | |
| | 25:SCAN HDFS [tpcds.web_sales]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF026 -> ws_sold_date_sk
| | row-size=24B cardinality=719.38K
| |
| 44:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
| | predicates: sum(ss_quantity * ss_sales_price) > 0.500000 * max(csales)
| | row-size=36B cardinality=100.00K
| |
| |--78:EXCHANGE [BROADCAST]
| | |
| | 77:AGGREGATE [FINALIZE]
| | | output: max:merge(csales)
| | | row-size=16B cardinality=1
| | |
| | 76:EXCHANGE [UNPARTITIONED]
| | |
| | 43:AGGREGATE
| | | output: max(sum(ss_quantity * ss_sales_price))
| | | row-size=16B cardinality=1
| | |
| | 75:AGGREGATE [FINALIZE]
| | | output: sum:merge(ss_quantity * ss_sales_price)
| | | group by: c_customer_sk
| | | row-size=20B cardinality=100.00K
| | |
| | 74:EXCHANGE [HASH(c_customer_sk)]
| | |
| | 42:AGGREGATE [STREAMING]
| | | output: sum(ss_quantity * ss_sales_price)
| | | group by: c_customer_sk
| | | row-size=20B cardinality=100.00K
| | |
| | 41:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ss_customer_sk = c_customer_sk
| | | row-size=28B cardinality=2.35M
| | |
| | |--73:EXCHANGE [BROADCAST]
| | | |
| | | 38:SCAN HDFS [tpcds.customer]
| | | HDFS partitions=1/1 files=1 size=12.60MB
| | | row-size=4B cardinality=100.00K
| | |
| | 40:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ss_sold_date_sk = d_date_sk
| | | runtime filters: RF022 <- d_date_sk
| | | row-size=24B cardinality=2.35M
| | |
| | |--72:EXCHANGE [BROADCAST]
| | | |
| | | 39:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year IN (2000, 2001, 2002, 2003)
| | | row-size=8B cardinality=1.49K
| | |
| | 37:SCAN HDFS [tpcds.store_sales]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | runtime filters: RF022 -> ss_sold_date_sk
| | row-size=16B cardinality=2.88M
| |
| 71:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_quantity * ss_sales_price)
| | group by: c_customer_sk
| | row-size=20B cardinality=100.00K
| |
| 70:EXCHANGE [HASH(c_customer_sk)]
| |
| 36:AGGREGATE [STREAMING]
| | output: sum(ss_quantity * ss_sales_price)
| | group by: c_customer_sk
| | row-size=20B cardinality=100.00K
| |
| 35:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_customer_sk = c_customer_sk
| | row-size=16B cardinality=2.88M
| |
| |--69:EXCHANGE [BROADCAST]
| | |
| | 34:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | runtime filters: RF016 -> tpcds.customer.c_customer_sk
| | row-size=4B cardinality=100.00K
| |
| 33:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF016 -> tpcds.store_sales.ss_customer_sk
| row-size=12B cardinality=2.88M
|
24:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
| hash predicates: c_customer_sk = cs_bill_customer_sk
| runtime filters: RF000 <- cs_bill_customer_sk
| row-size=36B cardinality=85.31K
|
|--68:EXCHANGE [HASH(cs_bill_customer_sk)]
| |
| 23:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| | hash predicates: cs_item_sk = i_item_sk
| | row-size=36B cardinality=85.31K
| |
| |--67:EXCHANGE [BROADCAST]
| | |
| | 66:AGGREGATE [FINALIZE]
| | | group by: i_item_sk
| | | row-size=8B cardinality=17.98K
| | |
| | 65:EXCHANGE [HASH(i_item_sk)]
| | |
| | 22:AGGREGATE [STREAMING]
| | | group by: i_item_sk
| | | row-size=8B cardinality=17.98K
| | |
| | 64:AGGREGATE [FINALIZE]
| | | output: count:merge(*)
| | | group by: substr(i_item_desc, 1, 30), i_item_sk, d_date
| | | having: count(*) > 4
| | | row-size=50B cardinality=235.45K
| | |
| | 63:EXCHANGE [HASH(substr(i_item_desc, 1, 30),i_item_sk,d_date)]
| | |
| | 08:AGGREGATE [STREAMING]
| | | output: count(*)
| | | group by: substr(i_item_desc, 1, 30), i_item_sk, d_date
| | | row-size=50B cardinality=2.35M
| | |
| | 07:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ss_item_sk = i_item_sk
| | | row-size=162B cardinality=2.35M
| | |
| | |--62:EXCHANGE [BROADCAST]
| | | |
| | | 05:SCAN HDFS [tpcds.item]
| | | HDFS partitions=1/1 files=1 size=4.82MB
| | | row-size=120B cardinality=18.00K
| | |
| | 06:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ss_sold_date_sk = d_date_sk
| | | runtime filters: RF014 <- d_date_sk
| | | row-size=42B cardinality=2.35M
| | |
| | |--61:EXCHANGE [BROADCAST]
| | | |
| | | 04:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year IN (2000, 2001, 2002, 2003)
| | | row-size=30B cardinality=1.49K
| | |
| | 03:SCAN HDFS [tpcds.store_sales]
| | HDFS partitions=1824/1824 files=1824 size=346.60MB
| | runtime filters: RF014 -> ss_sold_date_sk
| | row-size=12B cardinality=2.88M
| |
| 21:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF010 <- d_date_sk
| | row-size=36B cardinality=85.31K
| |
| |--60:EXCHANGE [BROADCAST]
| | |
| | 02:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 2000, d_moy = 2
| | row-size=12B cardinality=108
| |
| 01:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF010 -> cs_sold_date_sk
| row-size=24B cardinality=1.44M
|
20:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
| predicates: sum(ss_quantity * ss_sales_price) > 0.500000 * max(csales)
| row-size=36B cardinality=100.00K
|
|--59:EXCHANGE [BROADCAST]
| |
| 58:AGGREGATE [FINALIZE]
| | output: max:merge(csales)
| | row-size=16B cardinality=1
| |
| 57:EXCHANGE [UNPARTITIONED]
| |
| 19:AGGREGATE
| | output: max(sum(ss_quantity * ss_sales_price))
| | row-size=16B cardinality=1
| |
| 56:AGGREGATE [FINALIZE]
| | output: sum:merge(ss_quantity * ss_sales_price)
| | group by: c_customer_sk
| | row-size=20B cardinality=100.00K
| |
| 55:EXCHANGE [HASH(c_customer_sk)]
| |
| 18:AGGREGATE [STREAMING]
| | output: sum(ss_quantity * ss_sales_price)
| | group by: c_customer_sk
| | row-size=20B cardinality=100.00K
| |
| 17:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_customer_sk = c_customer_sk
| | runtime filters: RF004 <- c_customer_sk
| | row-size=28B cardinality=2.35M
| |
| |--54:EXCHANGE [BROADCAST]
| | |
| | 14:SCAN HDFS [tpcds.customer]
| | HDFS partitions=1/1 files=1 size=12.60MB
| | row-size=4B cardinality=100.00K
| |
| 16:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ss_sold_date_sk = d_date_sk
| | runtime filters: RF006 <- d_date_sk
| | row-size=24B cardinality=2.35M
| |
| |--53:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year IN (2000, 2001, 2002, 2003)
| | row-size=8B cardinality=1.49K
| |
| 13:SCAN HDFS [tpcds.store_sales]
| HDFS partitions=1824/1824 files=1824 size=346.60MB
| runtime filters: RF006 -> ss_sold_date_sk, RF004 -> ss_customer_sk
| row-size=16B cardinality=2.88M
|
52:AGGREGATE [FINALIZE]
| output: sum:merge(ss_quantity * ss_sales_price)
| group by: c_customer_sk
| row-size=20B cardinality=100.00K
|
51:EXCHANGE [HASH(c_customer_sk)]
|
12:AGGREGATE [STREAMING]
| output: sum(ss_quantity * ss_sales_price)
| group by: c_customer_sk
| row-size=20B cardinality=100.00K
|
11:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_customer_sk = c_customer_sk
| runtime filters: RF002 <- c_customer_sk
| row-size=16B cardinality=2.88M
|
|--50:EXCHANGE [BROADCAST]
| |
| 10:SCAN HDFS [tpcds.customer]
| HDFS partitions=1/1 files=1 size=12.60MB
| runtime filters: RF000 -> tpcds.customer.c_customer_sk
| row-size=4B cardinality=100.00K
|
09:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> ss_customer_sk
row-size=12B cardinality=2.88M
====
# TPCDS-Q33
with ss as (
select
i_manufact_id,sum(ss_ext_sales_price) total_sales
from
store_sales,
date_dim,
customer_address,
item
where
i_manufact_id in (select
i_manufact_id
from
item
where i_category in ('Electronics'))
and ss_item_sk = i_item_sk
and ss_sold_date_sk = d_date_sk
and d_year = 1998
and d_moy = 5
and ss_addr_sk = ca_address_sk
and ca_gmt_offset = -5
group by i_manufact_id),
cs as (
select
i_manufact_id,sum(cs_ext_sales_price) total_sales
from
catalog_sales,
date_dim,
customer_address,
item
where
i_manufact_id in (select
i_manufact_id
from
item
where i_category in ('Electronics'))
and cs_item_sk = i_item_sk
and cs_sold_date_sk = d_date_sk
and d_year = 1998
and d_moy = 5
and cs_bill_addr_sk = ca_address_sk
and ca_gmt_offset = -5
group by i_manufact_id),
ws as (
select
i_manufact_id,sum(ws_ext_sales_price) total_sales
from
web_sales,
date_dim,
customer_address,
item
where
i_manufact_id in (select
i_manufact_id
from
item
where i_category in ('Electronics'))
and ws_item_sk = i_item_sk
and ws_sold_date_sk = d_date_sk
and d_year = 1998
and d_moy = 5
and ws_bill_addr_sk = ca_address_sk
and ca_gmt_offset = -5
group by i_manufact_id)
select i_manufact_id ,sum(total_sales) total_sales
from (select * from ss
union all
select * from cs
union all
select * from ws) tmp1
group by i_manufact_id
order by total_sales
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=59.69MB Threads=6
Per-Host Resource Estimates: Memory=348MB
PLAN-ROOT SINK
|
32:TOP-N [LIMIT=100]
| order by: sum(total_sales) ASC
| row-size=20B cardinality=100
|
31:AGGREGATE [FINALIZE]
| output: sum(total_sales)
| group by: i_manufact_id
| row-size=20B cardinality=2.83K
|
00:UNION
| row-size=20B cardinality=2.83K
|
|--30:AGGREGATE [FINALIZE]
| | output: sum(ws_ext_sales_price)
| | group by: i_manufact_id
| | row-size=20B cardinality=944
| |
| 29:HASH JOIN [LEFT SEMI JOIN]
| | hash predicates: i_manufact_id = i_manufact_id
| | row-size=52B cardinality=9.81K
| |
| |--25:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Electronics')
| | row-size=22B cardinality=1.80K
| |
| 28:HASH JOIN [INNER JOIN]
| | hash predicates: ws_item_sk = i_item_sk
| | row-size=52B cardinality=9.81K
| |
| |--24:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=12B cardinality=18.00K
| |
| 27:HASH JOIN [INNER JOIN]
| | hash predicates: ws_bill_addr_sk = ca_address_sk
| | runtime filters: RF020 <- ca_address_sk
| | row-size=40B cardinality=9.81K
| |
| |--23:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 26:HASH JOIN [INNER JOIN]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | runtime filters: RF022 <- d_date_sk
| | row-size=32B cardinality=42.85K
| |
| |--22:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 1998, d_moy = 5
| | row-size=12B cardinality=108
| |
| 21:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF022 -> ws_sold_date_sk, RF020 -> ws_bill_addr_sk
| row-size=20B cardinality=719.38K
|
|--20:AGGREGATE [FINALIZE]
| | output: sum(cs_ext_sales_price)
| | group by: i_manufact_id
| | row-size=20B cardinality=944
| |
| 19:HASH JOIN [LEFT SEMI JOIN]
| | hash predicates: i_manufact_id = i_manufact_id
| | runtime filters: RF008 <- i_manufact_id
| | row-size=52B cardinality=14.81K
| |
| |--15:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Electronics')
| | row-size=22B cardinality=1.80K
| |
| 18:HASH JOIN [INNER JOIN]
| | hash predicates: cs_item_sk = i_item_sk
| | runtime filters: RF010 <- i_item_sk
| | row-size=52B cardinality=14.81K
| |
| |--14:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | runtime filters: RF008 -> i_manufact_id
| | row-size=12B cardinality=18.00K
| |
| 17:HASH JOIN [INNER JOIN]
| | hash predicates: cs_bill_addr_sk = ca_address_sk
| | runtime filters: RF012 <- ca_address_sk
| | row-size=40B cardinality=14.81K
| |
| |--13:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 16:HASH JOIN [INNER JOIN]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=32B cardinality=85.31K
| |
| |--12:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 1998, d_moy = 5
| | row-size=12B cardinality=108
| |
| 11:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF014 -> cs_sold_date_sk, RF012 -> cs_bill_addr_sk, RF010 -> cs_item_sk
| row-size=20B cardinality=1.44M
|
10:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: i_manufact_id
| row-size=20B cardinality=944
|
09:HASH JOIN [LEFT SEMI JOIN]
| hash predicates: i_manufact_id = i_manufact_id
| runtime filters: RF000 <- i_manufact_id
| row-size=52B cardinality=28.50K
|
|--05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category IN ('Electronics')
| row-size=22B cardinality=1.80K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=52B cardinality=28.50K
|
|--04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i_manufact_id
| row-size=12B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_addr_sk = ca_address_sk
| runtime filters: RF004 <- ca_address_sk
| row-size=40B cardinality=28.50K
|
|--03:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=32B cardinality=170.55K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998, d_moy = 5
| row-size=12B cardinality=108
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF006 -> ss_sold_date_sk, RF004 -> ss_addr_sk, RF002 -> ss_item_sk
row-size=20B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=168.12MB Threads=35
Per-Host Resource Estimates: Memory=994MB
PLAN-ROOT SINK
|
55:MERGING-EXCHANGE [UNPARTITIONED]
| order by: sum(total_sales) ASC
| limit: 100
|
32:TOP-N [LIMIT=100]
| order by: sum(total_sales) ASC
| row-size=20B cardinality=100
|
54:AGGREGATE [FINALIZE]
| output: sum:merge(total_sales)
| group by: i_manufact_id
| row-size=20B cardinality=2.83K
|
53:EXCHANGE [HASH(i_manufact_id)]
|
31:AGGREGATE [STREAMING]
| output: sum(total_sales)
| group by: i_manufact_id
| row-size=20B cardinality=2.83K
|
00:UNION
| row-size=20B cardinality=2.83K
|
|--52:AGGREGATE [FINALIZE]
| | output: sum:merge(ws_ext_sales_price)
| | group by: i_manufact_id
| | row-size=20B cardinality=944
| |
| 51:EXCHANGE [HASH(i_manufact_id)]
| |
| 30:AGGREGATE [STREAMING]
| | output: sum(ws_ext_sales_price)
| | group by: i_manufact_id
| | row-size=20B cardinality=944
| |
| 29:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| | hash predicates: i_manufact_id = i_manufact_id
| | row-size=52B cardinality=9.81K
| |
| |--50:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Electronics')
| | row-size=22B cardinality=1.80K
| |
| 28:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: ws_item_sk = i_item_sk
| | row-size=52B cardinality=9.81K
| |
| |--49:EXCHANGE [HASH(i_item_sk)]
| | |
| | 24:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | row-size=12B cardinality=18.00K
| |
| 48:EXCHANGE [HASH(ws_item_sk)]
| |
| 27:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_bill_addr_sk = ca_address_sk
| | runtime filters: RF020 <- ca_address_sk
| | row-size=40B cardinality=9.81K
| |
| |--47:EXCHANGE [BROADCAST]
| | |
| | 23:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 26:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | runtime filters: RF022 <- d_date_sk
| | row-size=32B cardinality=42.85K
| |
| |--46:EXCHANGE [BROADCAST]
| | |
| | 22:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 1998, d_moy = 5
| | row-size=12B cardinality=108
| |
| 21:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF022 -> ws_sold_date_sk, RF020 -> ws_bill_addr_sk
| row-size=20B cardinality=719.38K
|
|--45:AGGREGATE [FINALIZE]
| | output: sum:merge(cs_ext_sales_price)
| | group by: i_manufact_id
| | row-size=20B cardinality=944
| |
| 44:EXCHANGE [HASH(i_manufact_id)]
| |
| 20:AGGREGATE [STREAMING]
| | output: sum(cs_ext_sales_price)
| | group by: i_manufact_id
| | row-size=20B cardinality=944
| |
| 19:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| | hash predicates: i_manufact_id = i_manufact_id
| | runtime filters: RF008 <- i_manufact_id
| | row-size=52B cardinality=14.81K
| |
| |--43:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Electronics')
| | row-size=22B cardinality=1.80K
| |
| 18:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: cs_item_sk = i_item_sk
| | runtime filters: RF010 <- i_item_sk
| | row-size=52B cardinality=14.81K
| |
| |--42:EXCHANGE [HASH(i_item_sk)]
| | |
| | 14:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | runtime filters: RF008 -> i_manufact_id
| | row-size=12B cardinality=18.00K
| |
| 41:EXCHANGE [HASH(cs_item_sk)]
| |
| 17:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_bill_addr_sk = ca_address_sk
| | runtime filters: RF012 <- ca_address_sk
| | row-size=40B cardinality=14.81K
| |
| |--40:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 16:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=32B cardinality=85.31K
| |
| |--39:EXCHANGE [BROADCAST]
| | |
| | 12:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 1998, d_moy = 5
| | row-size=12B cardinality=108
| |
| 11:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF014 -> cs_sold_date_sk, RF012 -> cs_bill_addr_sk, RF010 -> cs_item_sk
| row-size=20B cardinality=1.44M
|
38:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_manufact_id
| row-size=20B cardinality=944
|
37:EXCHANGE [HASH(i_manufact_id)]
|
10:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_manufact_id
| row-size=20B cardinality=944
|
09:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: i_manufact_id = i_manufact_id
| runtime filters: RF000 <- i_manufact_id
| row-size=52B cardinality=28.50K
|
|--36:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category IN ('Electronics')
| row-size=22B cardinality=1.80K
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=52B cardinality=28.50K
|
|--35:EXCHANGE [BROADCAST]
| |
| 04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i_manufact_id
| row-size=12B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_addr_sk = ca_address_sk
| runtime filters: RF004 <- ca_address_sk
| row-size=40B cardinality=28.50K
|
|--34:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=32B cardinality=170.55K
|
|--33:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998, d_moy = 5
| row-size=12B cardinality=108
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF006 -> ss_sold_date_sk, RF004 -> ss_addr_sk, RF002 -> ss_item_sk
row-size=20B cardinality=2.88M
====
# TPCDS-Q60
with ss as (
select
i_item_id,sum(ss_ext_sales_price) total_sales
from
store_sales,
date_dim,
customer_address,
item
where
i_item_id in (select
i_item_id
from
item
where i_category in ('Music'))
and ss_item_sk = i_item_sk
and ss_sold_date_sk = d_date_sk
and d_year = 1998
and d_moy = 9
and ss_addr_sk = ca_address_sk
and ca_gmt_offset = -5
group by i_item_id),
cs as (
select
i_item_id,sum(cs_ext_sales_price) total_sales
from
catalog_sales,
date_dim,
customer_address,
item
where
i_item_id in (select
i_item_id
from
item
where i_category in ('Music'))
and cs_item_sk = i_item_sk
and cs_sold_date_sk = d_date_sk
and d_year = 1998
and d_moy = 9
and cs_bill_addr_sk = ca_address_sk
and ca_gmt_offset = -5
group by i_item_id),
ws as (
select
i_item_id,sum(ws_ext_sales_price) total_sales
from
web_sales,
date_dim,
customer_address,
item
where
i_item_id in (select
i_item_id
from
item
where i_category in ('Music'))
and ws_item_sk = i_item_sk
and ws_sold_date_sk = d_date_sk
and d_year = 1998
and d_moy = 9
and ws_bill_addr_sk = ca_address_sk
and ca_gmt_offset = -5
group by i_item_id)
select
i_item_id
,sum(total_sales) total_sales
from (select * from ss
union all
select * from cs
union all
select * from ws) tmp1
group by i_item_id
order by i_item_id
,total_sales
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=59.69MB Threads=6
Per-Host Resource Estimates: Memory=346MB
PLAN-ROOT SINK
|
32:TOP-N [LIMIT=100]
| order by: i_item_id ASC, sum(total_sales) ASC
| row-size=44B cardinality=100
|
31:AGGREGATE [FINALIZE]
| output: sum(total_sales)
| group by: i_item_id
| row-size=44B cardinality=10.80K
|
00:UNION
| row-size=44B cardinality=10.80K
|
|--30:AGGREGATE [FINALIZE]
| | output: sum(ws_ext_sales_price)
| | group by: i_item_id
| | row-size=44B cardinality=2.00K
| |
| 29:HASH JOIN [LEFT SEMI JOIN]
| | hash predicates: i_item_id = i_item_id
| | runtime filters: RF016 <- i_item_id
| | row-size=76B cardinality=2.00K
| |
| |--25:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Music')
| | row-size=46B cardinality=1.80K
| |
| 28:HASH JOIN [INNER JOIN]
| | hash predicates: i_item_sk = ws_item_sk
| | runtime filters: RF018 <- ws_item_sk
| | row-size=76B cardinality=9.81K
| |
| |--27:HASH JOIN [INNER JOIN]
| | | hash predicates: ws_bill_addr_sk = ca_address_sk
| | | runtime filters: RF020 <- ca_address_sk
| | | row-size=40B cardinality=9.81K
| | |
| | |--23:SCAN HDFS [tpcds.customer_address]
| | | HDFS partitions=1/1 files=1 size=5.25MB
| | | predicates: ca_gmt_offset = -5
| | | row-size=8B cardinality=8.33K
| | |
| | 26:HASH JOIN [INNER JOIN]
| | | hash predicates: ws_sold_date_sk = d_date_sk
| | | runtime filters: RF022 <- d_date_sk
| | | row-size=32B cardinality=42.85K
| | |
| | |--22:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year = 1998, d_moy = 9
| | | row-size=12B cardinality=108
| | |
| | 21:SCAN HDFS [tpcds.web_sales]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF022 -> ws_sold_date_sk, RF020 -> ws_bill_addr_sk
| | row-size=20B cardinality=719.38K
| |
| 24:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF016 -> i_item_id, RF018 -> i_item_sk
| row-size=36B cardinality=18.00K
|
|--20:AGGREGATE [FINALIZE]
| | output: sum(cs_ext_sales_price)
| | group by: i_item_id
| | row-size=44B cardinality=3.01K
| |
| 19:HASH JOIN [LEFT SEMI JOIN]
| | hash predicates: i_item_id = i_item_id
| | runtime filters: RF008 <- i_item_id
| | row-size=76B cardinality=3.01K
| |
| |--15:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Music')
| | row-size=46B cardinality=1.80K
| |
| 18:HASH JOIN [INNER JOIN]
| | hash predicates: i_item_sk = cs_item_sk
| | row-size=76B cardinality=14.81K
| |
| |--17:HASH JOIN [INNER JOIN]
| | | hash predicates: cs_bill_addr_sk = ca_address_sk
| | | runtime filters: RF012 <- ca_address_sk
| | | row-size=40B cardinality=14.81K
| | |
| | |--13:SCAN HDFS [tpcds.customer_address]
| | | HDFS partitions=1/1 files=1 size=5.25MB
| | | predicates: ca_gmt_offset = -5
| | | row-size=8B cardinality=8.33K
| | |
| | 16:HASH JOIN [INNER JOIN]
| | | hash predicates: cs_sold_date_sk = d_date_sk
| | | runtime filters: RF014 <- d_date_sk
| | | row-size=32B cardinality=85.31K
| | |
| | |--12:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: d_year = 1998, d_moy = 9
| | | row-size=12B cardinality=108
| | |
| | 11:SCAN HDFS [tpcds.catalog_sales]
| | HDFS partitions=1/1 files=1 size=282.20MB
| | runtime filters: RF014 -> cs_sold_date_sk, RF012 -> cs_bill_addr_sk
| | row-size=20B cardinality=1.44M
| |
| 14:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF008 -> i_item_id
| row-size=36B cardinality=18.00K
|
10:AGGREGATE [FINALIZE]
| output: sum(ss_ext_sales_price)
| group by: i_item_id
| row-size=44B cardinality=5.79K
|
09:HASH JOIN [LEFT SEMI JOIN]
| hash predicates: i_item_id = i_item_id
| runtime filters: RF000 <- i_item_id
| row-size=76B cardinality=5.79K
|
|--05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category IN ('Music')
| row-size=46B cardinality=1.80K
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_item_sk = i_item_sk
| row-size=76B cardinality=28.50K
|
|--04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i_item_id
| row-size=36B cardinality=18.00K
|
07:HASH JOIN [INNER JOIN]
| hash predicates: ss_addr_sk = ca_address_sk
| runtime filters: RF004 <- ca_address_sk
| row-size=40B cardinality=28.50K
|
|--03:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
06:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=32B cardinality=170.55K
|
|--02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998, d_moy = 9
| row-size=12B cardinality=108
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF006 -> ss_sold_date_sk, RF004 -> ss_addr_sk
row-size=20B cardinality=2.88M
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=169.12MB Threads=36
Per-Host Resource Estimates: Memory=998MB
PLAN-ROOT SINK
|
56:MERGING-EXCHANGE [UNPARTITIONED]
| order by: i_item_id ASC, sum(total_sales) ASC
| limit: 100
|
32:TOP-N [LIMIT=100]
| order by: i_item_id ASC, sum(total_sales) ASC
| row-size=44B cardinality=100
|
55:AGGREGATE [FINALIZE]
| output: sum:merge(total_sales)
| group by: i_item_id
| row-size=44B cardinality=10.80K
|
54:EXCHANGE [HASH(i_item_id)]
|
31:AGGREGATE [STREAMING]
| output: sum(total_sales)
| group by: i_item_id
| row-size=44B cardinality=10.80K
|
00:UNION
| row-size=44B cardinality=10.80K
|
|--53:AGGREGATE [FINALIZE]
| | output: sum:merge(ws_ext_sales_price)
| | group by: i_item_id
| | row-size=44B cardinality=2.00K
| |
| 52:EXCHANGE [HASH(i_item_id)]
| |
| 30:AGGREGATE [STREAMING]
| | output: sum(ws_ext_sales_price)
| | group by: i_item_id
| | row-size=44B cardinality=2.00K
| |
| 29:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| | hash predicates: i_item_id = i_item_id
| | runtime filters: RF016 <- i_item_id
| | row-size=76B cardinality=2.00K
| |
| |--51:EXCHANGE [BROADCAST]
| | |
| | 25:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Music')
| | row-size=46B cardinality=1.80K
| |
| 28:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: ws_item_sk = i_item_sk
| | row-size=76B cardinality=9.81K
| |
| |--50:EXCHANGE [HASH(i_item_sk)]
| | |
| | 24:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | runtime filters: RF016 -> i_item_id
| | row-size=36B cardinality=18.00K
| |
| 49:EXCHANGE [HASH(ws_item_sk)]
| |
| 27:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_bill_addr_sk = ca_address_sk
| | runtime filters: RF020 <- ca_address_sk
| | row-size=40B cardinality=9.81K
| |
| |--48:EXCHANGE [BROADCAST]
| | |
| | 23:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 26:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | runtime filters: RF022 <- d_date_sk
| | row-size=32B cardinality=42.85K
| |
| |--47:EXCHANGE [BROADCAST]
| | |
| | 22:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 1998, d_moy = 9
| | row-size=12B cardinality=108
| |
| 21:SCAN HDFS [tpcds.web_sales]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF022 -> ws_sold_date_sk, RF020 -> ws_bill_addr_sk
| row-size=20B cardinality=719.38K
|
|--46:AGGREGATE [FINALIZE]
| | output: sum:merge(cs_ext_sales_price)
| | group by: i_item_id
| | row-size=44B cardinality=3.01K
| |
| 45:EXCHANGE [HASH(i_item_id)]
| |
| 20:AGGREGATE [STREAMING]
| | output: sum(cs_ext_sales_price)
| | group by: i_item_id
| | row-size=44B cardinality=3.01K
| |
| 19:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| | hash predicates: i_item_id = i_item_id
| | runtime filters: RF008 <- i_item_id
| | row-size=76B cardinality=3.01K
| |
| |--44:EXCHANGE [BROADCAST]
| | |
| | 15:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | predicates: i_category IN ('Music')
| | row-size=46B cardinality=1.80K
| |
| 18:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: cs_item_sk = i_item_sk
| | row-size=76B cardinality=14.81K
| |
| |--43:EXCHANGE [HASH(i_item_sk)]
| | |
| | 14:SCAN HDFS [tpcds.item]
| | HDFS partitions=1/1 files=1 size=4.82MB
| | runtime filters: RF008 -> i_item_id
| | row-size=36B cardinality=18.00K
| |
| 42:EXCHANGE [HASH(cs_item_sk)]
| |
| 17:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_bill_addr_sk = ca_address_sk
| | runtime filters: RF012 <- ca_address_sk
| | row-size=40B cardinality=14.81K
| |
| |--41:EXCHANGE [BROADCAST]
| | |
| | 13:SCAN HDFS [tpcds.customer_address]
| | HDFS partitions=1/1 files=1 size=5.25MB
| | predicates: ca_gmt_offset = -5
| | row-size=8B cardinality=8.33K
| |
| 16:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: cs_sold_date_sk = d_date_sk
| | runtime filters: RF014 <- d_date_sk
| | row-size=32B cardinality=85.31K
| |
| |--40:EXCHANGE [BROADCAST]
| | |
| | 12:SCAN HDFS [tpcds.date_dim]
| | HDFS partitions=1/1 files=1 size=9.84MB
| | predicates: d_year = 1998, d_moy = 9
| | row-size=12B cardinality=108
| |
| 11:SCAN HDFS [tpcds.catalog_sales]
| HDFS partitions=1/1 files=1 size=282.20MB
| runtime filters: RF014 -> cs_sold_date_sk, RF012 -> cs_bill_addr_sk
| row-size=20B cardinality=1.44M
|
39:AGGREGATE [FINALIZE]
| output: sum:merge(ss_ext_sales_price)
| group by: i_item_id
| row-size=44B cardinality=5.79K
|
38:EXCHANGE [HASH(i_item_id)]
|
10:AGGREGATE [STREAMING]
| output: sum(ss_ext_sales_price)
| group by: i_item_id
| row-size=44B cardinality=5.79K
|
09:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: i_item_id = i_item_id
| runtime filters: RF000 <- i_item_id
| row-size=76B cardinality=5.79K
|
|--37:EXCHANGE [BROADCAST]
| |
| 05:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| predicates: i_category IN ('Music')
| row-size=46B cardinality=1.80K
|
08:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_item_sk = i_item_sk
| runtime filters: RF002 <- i_item_sk
| row-size=76B cardinality=28.50K
|
|--36:EXCHANGE [HASH(i_item_sk)]
| |
| 04:SCAN HDFS [tpcds.item]
| HDFS partitions=1/1 files=1 size=4.82MB
| runtime filters: RF000 -> i_item_id
| row-size=36B cardinality=18.00K
|
35:EXCHANGE [HASH(ss_item_sk)]
|
07:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_addr_sk = ca_address_sk
| runtime filters: RF004 <- ca_address_sk
| row-size=40B cardinality=28.50K
|
|--34:EXCHANGE [BROADCAST]
| |
| 03:SCAN HDFS [tpcds.customer_address]
| HDFS partitions=1/1 files=1 size=5.25MB
| predicates: ca_gmt_offset = -5
| row-size=8B cardinality=8.33K
|
06:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF006 <- d_date_sk
| row-size=32B cardinality=170.55K
|
|--33:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [tpcds.date_dim]
| HDFS partitions=1/1 files=1 size=9.84MB
| predicates: d_year = 1998, d_moy = 9
| row-size=12B cardinality=108
|
01:SCAN HDFS [tpcds.store_sales]
HDFS partitions=1824/1824 files=1824 size=346.60MB
runtime filters: RF006 -> ss_sold_date_sk, RF004 -> ss_addr_sk, RF002 -> ss_item_sk
row-size=20B cardinality=2.88M
====
# TPCDS-Q95
with ws_wh as
(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2
from web_sales ws1,web_sales ws2
where ws1.ws_order_number = ws2.ws_order_number
and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk)
select
count(distinct ws_order_number) as "order count"
,sum(ws_ext_ship_cost) as "total shipping cost"
,sum(ws_net_profit) as "total net profit"
from
web_sales ws1
,date_dim
,customer_address
,web_site
where
cast(d_date as timestamp) between cast('1999-02-01' as timestamp) and
(cast('1999-02-01' as timestamp) + interval 60 days)
and ws1.ws_ship_date_sk = d_date_sk
and ws1.ws_ship_addr_sk = ca_address_sk
and ca_state = 'IL'
and ws1.ws_web_site_sk = web_site_sk
and web_company_name = 'pri'
and ws1.ws_order_number in (select ws_order_number
from ws_wh)
and ws1.ws_order_number in (select wr_order_number
from web_returns,ws_wh
where wr_order_number = ws_wh.ws_order_number)
order by count(distinct ws_order_number)
limit 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=113.77MB Threads=10
Per-Host Resource Estimates: Memory=1010MB
PLAN-ROOT SINK
|
21:TOP-N [LIMIT=100]
| order by: count(ws_order_number) ASC
| row-size=40B cardinality=1
|
20:AGGREGATE [FINALIZE]
| output: count(ws_order_number), sum:merge(ws_ext_ship_cost), sum:merge(ws_net_profit)
| row-size=40B cardinality=1
|
19:AGGREGATE
| output: sum(ws_ext_ship_cost), sum(ws_net_profit)
| group by: ws_order_number
| row-size=40B cardinality=3.25K
|
18:HASH JOIN [RIGHT SEMI JOIN]
| hash predicates: tpcds.web_returns.wr_order_number = ws1.ws_order_number
| runtime filters: RF000 <- ws1.ws_order_number
| row-size=92B cardinality=3.25K
|
|--16:HASH JOIN [RIGHT SEMI JOIN]
| | hash predicates: ws1.ws_order_number = ws1.ws_order_number
| | runtime filters: RF006 <- ws1.ws_order_number
| | row-size=92B cardinality=3.25K
| |
| |--14:HASH JOIN [INNER JOIN]
| | | hash predicates: ws1.ws_ship_date_sk = d_date_sk
| | | runtime filters: RF010 <- d_date_sk
| | | row-size=92B cardinality=3.25K
| | |
| | |--01:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: CAST(d_date AS TIMESTAMP) <= TIMESTAMP '1999-04-02 00:00:00', CAST(d_date AS TIMESTAMP) >= TIMESTAMP '1999-02-01 00:00:00'
| | | row-size=26B cardinality=7.30K
| | |
| | 13:HASH JOIN [INNER JOIN]
| | | hash predicates: ws1.ws_web_site_sk = web_site_sk
| | | runtime filters: RF012 <- web_site_sk
| | | row-size=66B cardinality=3.25K
| | |
| | |--03:SCAN HDFS [tpcds.web_site]
| | | HDFS partitions=1/1 files=1 size=8.57KB
| | | predicates: web_company_name = 'pri'
| | | row-size=20B cardinality=5
| | |
| | 12:HASH JOIN [INNER JOIN]
| | | hash predicates: ws1.ws_ship_addr_sk = ca_address_sk
| | | runtime filters: RF014 <- ca_address_sk
| | | row-size=46B cardinality=19.52K
| | |
| | |--02:SCAN HDFS [tpcds.customer_address]
| | | HDFS partitions=1/1 files=1 size=5.25MB
| | | predicates: ca_state = 'IL'
| | | row-size=18B cardinality=980
| | |
| | 00:SCAN HDFS [tpcds.web_sales ws1]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF010 -> ws1.ws_ship_date_sk, RF012 -> ws1.ws_web_site_sk, RF014 -> ws1.ws_ship_addr_sk
| | row-size=28B cardinality=719.38K
| |
| 15:AGGREGATE [FINALIZE]
| | group by: ws1.ws_order_number
| | row-size=8B cardinality=59.77K
| |
| 06:HASH JOIN [INNER JOIN]
| | hash predicates: ws1.ws_order_number = ws2.ws_order_number
| | other predicates: ws1.ws_warehouse_sk != ws2.ws_warehouse_sk
| | runtime filters: RF008 <- ws2.ws_order_number
| | row-size=24B cardinality=8.66M
| |
| |--05:SCAN HDFS [tpcds.web_sales ws2]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF006 -> ws2.ws_order_number
| | row-size=12B cardinality=719.38K
| |
| 04:SCAN HDFS [tpcds.web_sales ws1]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF006 -> ws1.ws_order_number, RF008 -> ws1.ws_order_number
| row-size=12B cardinality=719.38K
|
17:AGGREGATE [FINALIZE]
| group by: tpcds.web_returns.wr_order_number
| row-size=8B cardinality=43.44K
|
11:HASH JOIN [INNER JOIN]
| hash predicates: ws1.ws_order_number = wr_order_number
| runtime filters: RF002 <- wr_order_number
| row-size=32B cardinality=10.39M
|
|--07:SCAN HDFS [tpcds.web_returns]
| HDFS partitions=1/1 files=1 size=9.35MB
| runtime filters: RF000 -> tpcds.web_returns.wr_order_number
| row-size=8B cardinality=71.76K
|
10:HASH JOIN [INNER JOIN]
| hash predicates: ws1.ws_order_number = ws2.ws_order_number
| other predicates: ws1.ws_warehouse_sk != ws2.ws_warehouse_sk
| runtime filters: RF004 <- ws2.ws_order_number
| row-size=24B cardinality=8.66M
|
|--09:SCAN HDFS [tpcds.web_sales ws2]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF000 -> ws2.ws_order_number, RF002 -> ws2.ws_order_number
| row-size=12B cardinality=719.38K
|
08:SCAN HDFS [tpcds.web_sales ws1]
HDFS partitions=1/1 files=1 size=140.07MB
runtime filters: RF000 -> ws1.ws_order_number, RF002 -> ws1.ws_order_number, RF004 -> ws1.ws_order_number
row-size=12B cardinality=719.38K
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=112.58MB Threads=21
Per-Host Resource Estimates: Memory=1.02GB
PLAN-ROOT SINK
|
21:TOP-N [LIMIT=100]
| order by: count(ws_order_number) ASC
| row-size=40B cardinality=1
|
33:AGGREGATE [FINALIZE]
| output: count:merge(ws_order_number), sum:merge(ws_ext_ship_cost), sum:merge(ws_net_profit)
| row-size=40B cardinality=1
|
32:EXCHANGE [UNPARTITIONED]
|
20:AGGREGATE
| output: count(ws_order_number), sum:merge(ws_ext_ship_cost), sum:merge(ws_net_profit)
| row-size=40B cardinality=1
|
19:AGGREGATE
| output: sum(ws_ext_ship_cost), sum(ws_net_profit)
| group by: ws_order_number
| row-size=40B cardinality=3.25K
|
18:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
| hash predicates: tpcds.web_returns.wr_order_number = ws1.ws_order_number
| runtime filters: RF000 <- ws1.ws_order_number
| row-size=92B cardinality=3.25K
|
|--16:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
| | hash predicates: ws1.ws_order_number = ws1.ws_order_number
| | runtime filters: RF006 <- ws1.ws_order_number
| | row-size=92B cardinality=3.25K
| |
| |--31:EXCHANGE [HASH(ws1.ws_order_number)]
| | |
| | 14:HASH JOIN [INNER JOIN, PARTITIONED]
| | | hash predicates: ws1.ws_ship_date_sk = d_date_sk
| | | runtime filters: RF010 <- d_date_sk
| | | row-size=92B cardinality=3.25K
| | |
| | |--30:EXCHANGE [HASH(d_date_sk)]
| | | |
| | | 01:SCAN HDFS [tpcds.date_dim]
| | | HDFS partitions=1/1 files=1 size=9.84MB
| | | predicates: CAST(d_date AS TIMESTAMP) <= TIMESTAMP '1999-04-02 00:00:00', CAST(d_date AS TIMESTAMP) >= TIMESTAMP '1999-02-01 00:00:00'
| | | row-size=26B cardinality=7.30K
| | |
| | 29:EXCHANGE [HASH(ws1.ws_ship_date_sk)]
| | |
| | 13:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ws1.ws_web_site_sk = web_site_sk
| | | runtime filters: RF012 <- web_site_sk
| | | row-size=66B cardinality=3.25K
| | |
| | |--28:EXCHANGE [BROADCAST]
| | | |
| | | 03:SCAN HDFS [tpcds.web_site]
| | | HDFS partitions=1/1 files=1 size=8.57KB
| | | predicates: web_company_name = 'pri'
| | | row-size=20B cardinality=5
| | |
| | 12:HASH JOIN [INNER JOIN, BROADCAST]
| | | hash predicates: ws1.ws_ship_addr_sk = ca_address_sk
| | | runtime filters: RF014 <- ca_address_sk
| | | row-size=46B cardinality=19.52K
| | |
| | |--27:EXCHANGE [BROADCAST]
| | | |
| | | 02:SCAN HDFS [tpcds.customer_address]
| | | HDFS partitions=1/1 files=1 size=5.25MB
| | | predicates: ca_state = 'IL'
| | | row-size=18B cardinality=980
| | |
| | 00:SCAN HDFS [tpcds.web_sales ws1]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF010 -> ws1.ws_ship_date_sk, RF012 -> ws1.ws_web_site_sk, RF014 -> ws1.ws_ship_addr_sk
| | row-size=28B cardinality=719.38K
| |
| 15:AGGREGATE [FINALIZE]
| | group by: ws1.ws_order_number
| | row-size=8B cardinality=59.77K
| |
| 06:HASH JOIN [INNER JOIN, PARTITIONED]
| | hash predicates: ws1.ws_order_number = ws2.ws_order_number
| | other predicates: ws1.ws_warehouse_sk != ws2.ws_warehouse_sk
| | runtime filters: RF008 <- ws2.ws_order_number
| | row-size=24B cardinality=8.66M
| |
| |--26:EXCHANGE [HASH(ws2.ws_order_number)]
| | |
| | 05:SCAN HDFS [tpcds.web_sales ws2]
| | HDFS partitions=1/1 files=1 size=140.07MB
| | runtime filters: RF006 -> ws2.ws_order_number
| | row-size=12B cardinality=719.38K
| |
| 25:EXCHANGE [HASH(ws1.ws_order_number)]
| |
| 04:SCAN HDFS [tpcds.web_sales ws1]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF006 -> ws1.ws_order_number, RF008 -> ws1.ws_order_number
| row-size=12B cardinality=719.38K
|
17:AGGREGATE [FINALIZE]
| group by: tpcds.web_returns.wr_order_number
| row-size=8B cardinality=43.44K
|
11:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ws1.ws_order_number = wr_order_number
| runtime filters: RF002 <- wr_order_number
| row-size=32B cardinality=10.39M
|
|--24:EXCHANGE [HASH(wr_order_number)]
| |
| 07:SCAN HDFS [tpcds.web_returns]
| HDFS partitions=1/1 files=1 size=9.35MB
| runtime filters: RF000 -> tpcds.web_returns.wr_order_number
| row-size=8B cardinality=71.76K
|
10:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ws1.ws_order_number = ws2.ws_order_number
| other predicates: ws1.ws_warehouse_sk != ws2.ws_warehouse_sk
| runtime filters: RF004 <- ws2.ws_order_number
| row-size=24B cardinality=8.66M
|
|--23:EXCHANGE [HASH(ws2.ws_order_number)]
| |
| 09:SCAN HDFS [tpcds.web_sales ws2]
| HDFS partitions=1/1 files=1 size=140.07MB
| runtime filters: RF000 -> ws2.ws_order_number, RF002 -> ws2.ws_order_number
| row-size=12B cardinality=719.38K
|
22:EXCHANGE [HASH(ws1.ws_order_number)]
|
08:SCAN HDFS [tpcds.web_sales ws1]
HDFS partitions=1/1 files=1 size=140.07MB
runtime filters: RF000 -> ws1.ws_order_number, RF002 -> ws1.ws_order_number, RF004 -> ws1.ws_order_number
row-size=12B cardinality=719.38K
====