blob: 37dd2eb57e30aeb6c017a37fac24b387de0b9735 [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=69.62MB Threads=11
Per-Host Resource Estimates: Memory=167MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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=101.50MB Threads=15
Per-Host Resource Estimates: Memory=408MB
PLAN-ROOT SINK
|
18: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
|
17: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
|
16: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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: i_item_sk
| |
| 15: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
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: p_promo_sk
| |
| 14: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, PARTITIONED]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- 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
| |
| 13:EXCHANGE [HASH(cd_demo_sk)]
| |
| 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
|
12:EXCHANGE [HASH(ss_cdemo_sk)]
|
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
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: 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=94.27MB Threads=17
Per-Host Resource Estimates: Memory=288MB
PLAN-ROOT SINK
|
21: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
|
20:AGGREGATE [FINALIZE]
| output: sum:merge(ss_net_profit)
| group by: s_store_name
| row-size=32B cardinality=8
|
19: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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: substr(substr(ca_zip, 1, 5), 1, 2)
| |
| 18: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
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: substr(ca_zip, 1, 5)
| | |
| | 16:AGGREGATE [FINALIZE]
| | | output: count:merge(*)
| | | group by: substr(ca_zip, 1, 5)
| | | having: count(*) > 10
| | | row-size=20B cardinality=396
| | |
| | 15: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, PARTITIONED]
| | | 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
| | |
| | |--JOIN BUILD
| | | | join-table-id=02 plan-id=03 cohort-id=03
| | | | build expressions: customer.c_current_addr_sk
| | | |
| | | 14:EXCHANGE [HASH(customer.c_current_addr_sk)]
| | | |
| | | 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
| | |
| | 13:EXCHANGE [HASH(customer_address.ca_address_sk)]
| | |
| | 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
| |
| 17: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
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: 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-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=108.27MB Threads=19
Per-Host Resource Estimates: Memory=303MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: 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=101.39MB Threads=15
Per-Host Resource Estimates: Memory=408MB
PLAN-ROOT SINK
|
18: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
|
17: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
|
16: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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: i_item_sk
| |
| 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
|
|--JOIN BUILD
| | join-table-id=01 plan-id=02 cohort-id=01
| | build expressions: s_store_sk
| |
| 14: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, PARTITIONED]
| hash predicates: ss_cdemo_sk = cd_demo_sk
| runtime filters: RF004 <- 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
| |
| 13:EXCHANGE [HASH(cd_demo_sk)]
| |
| 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
|
12:EXCHANGE [HASH(ss_cdemo_sk)]
|
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
|
|--JOIN BUILD
| | join-table-id=03 plan-id=04 cohort-id=01
| | build expressions: 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=87.52MB Threads=15
Per-Host Resource Estimates: Memory=278MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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=67.62MB Threads=9
Per-Host Resource Estimates: Memory=164MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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=51.64MB Threads=9
Per-Host Resource Estimates: Memory=164MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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=143.02MB Threads=19
Per-Host Resource Estimates: Memory=361MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: 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
| runtime filters: RF010 <- 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
| |
| 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=67.62MB Threads=9
Per-Host Resource Estimates: Memory=164MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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=77.52MB Threads=13
Per-Host Resource Estimates: Memory=206MB
PLAN-ROOT SINK
|
15: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
|
14:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_manufact_id, d_qoy
| row-size=24B cardinality=96
|
13: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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: s_store_sk
| |
| 12: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, PARTITIONED]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- 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
| |
| 11:EXCHANGE [HASH(d_date_sk)]
| |
| 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
|
10:EXCHANGE [HASH(ss_sold_date_sk)]
|
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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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=67.62MB Threads=9
Per-Host Resource Estimates: Memory=164MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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=202.53MB Threads=23
Per-Host Resource Estimates: Memory=483MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: d_week_seq - 52, 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
| | runtime filters: RF010 <- 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
| | |
| | 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
| |
| |--JOIN BUILD
| | | join-table-id=02 plan-id=03 cohort-id=02
| | | build expressions: 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
| | runtime filters: RF014 <- 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
| | |
| | 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
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=06 plan-id=07 cohort-id=01
| | build expressions: 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 FIRST
| 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 FIRST
| 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=82.52MB Threads=15
Per-Host Resource Estimates: Memory=226MB
PLAN-ROOT SINK
|
19: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 FIRST
| row-size=24B cardinality=6
|
18:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: i_manager_id, d_moy
| row-size=24B cardinality=6
|
17: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, PARTITIONED]
| hash predicates: ss_store_sk = s_store_sk
| runtime filters: RF000 <- 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
| |
| 16:EXCHANGE [HASH(s_store_sk)]
| |
| 03:SCAN HDFS [tpcds.store]
| HDFS partitions=1/1 files=1 size=3.08KB
| row-size=4B cardinality=12
|
15:EXCHANGE [HASH(ss_store_sk)]
|
05:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: ss_sold_date_sk = d_date_sk
| runtime filters: RF002 <- 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
| |
| 14:EXCHANGE [HASH(d_date_sk)]
| |
| 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
|
13:EXCHANGE [HASH(ss_sold_date_sk)]
|
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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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=153.02MB Threads=21
Per-Host Resource Estimates: Memory=392MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| | runtime filters: RF008 <- 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
| | |
| | 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF004 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: 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=204.64MB Threads=17
Per-Host Resource Estimates: Memory=401MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: 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
| runtime filters: RF010 <- 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
| |
| 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=87.52MB Threads=15
Per-Host Resource Estimates: Memory=279MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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=83.77MB Threads=15
Per-Host Resource Estimates: Memory=270MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST
| 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST
| 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=105.52MB Threads=11
Per-Host Resource Estimates: Memory=234MB
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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST
| 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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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=50.14MB Threads=9
Per-Host Resource Estimates: Memory=176MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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 FIRST
| 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 FIRST
| 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=115.75MB Threads=11
Per-Host Resource Estimates: Memory=203MB
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 FIRST
| 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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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=176.88MB Threads=22
Per-Host Resource Estimates: Memory=433MB
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
|
|--JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: 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)
| runtime filters: RF002 <- (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)
| |
| 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
|
|--JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: 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
| runtime filters: RF006 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=04 plan-id=05 cohort-id=01
| | build expressions: 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
| runtime filters: RF010 <- 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
| |
| 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, d_year ASC NULLS FIRST
| | 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, d_year ASC NULLS FIRST
| | 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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=746.80MB Threads=33
Per-Host Resource Estimates: Memory=1.03GB
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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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
| |
| |--JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: 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
| | runtime filters: RF014 <- 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
| | |
| | 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
| |
| |--JOIN BUILD
| | | join-table-id=03 plan-id=04 cohort-id=02
| | | build expressions: 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, d_year ASC NULLS FIRST
| | 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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
| |
| |--JOIN BUILD
| | | join-table-id=05 plan-id=06 cohort-id=03
| | | build expressions: 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
| | runtime filters: RF008 <- 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
| | |
| | 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
| |
| |--JOIN BUILD
| | | join-table-id=07 plan-id=08 cohort-id=03
| | | build expressions: 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 FIRST, i_brand ASC NULLS FIRST, s_store_name ASC NULLS FIRST, s_company_name ASC NULLS FIRST, 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
|
|--JOIN BUILD
| | join-table-id=08 plan-id=09 cohort-id=01
| | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=10 plan-id=11 cohort-id=01
| | build expressions: 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=236.78MB Threads=32
Per-Host Resource Estimates: Memory=621MB
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
| | runtime filters: RF012 <- 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
| | |
| | 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
| |
| |--JOIN BUILD
| | | join-table-id=02 plan-id=03 cohort-id=02
| | | build expressions: 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
| | runtime filters: RF018 <- 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
| | |
| | 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
| |
| |--JOIN BUILD
| | | join-table-id=05 plan-id=06 cohort-id=02
| | | build expressions: 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
| runtime filters: RF000 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=07 plan-id=08 cohort-id=01
| | build expressions: 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
| runtime filters: RF004 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=09 plan-id=10 cohort-id=01
| | build expressions: 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
| runtime filters: RF008 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=11 plan-id=12 cohort-id=01
| | build expressions: 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=373.12MB Threads=72
Per-Host Resource Estimates: Memory=1.34GB
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
| | runtime filters: RF046 <- 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
| | |
| | 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
| | runtime filters: RF040 <- 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
| | |
| | 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
| | runtime filters: RF034 <- 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
| | |
| | 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
| | runtime filters: RF028 <- 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
| | |
| | 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
| | runtime filters: RF022 <- 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
| | |
| | 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
| | runtime filters: RF016 <- 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
| | |
| | 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
| | runtime filters: RF008 <- 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
| | |
| | 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
| |
| |--JOIN BUILD
| | | join-table-id=27 plan-id=28 cohort-id=08
| | | build expressions: 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
| runtime filters: RF002 <- 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
| |
| 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
|
|--JOIN BUILD
| | join-table-id=30 plan-id=31 cohort-id=01
| | build expressions: 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
====