blob: 9f8595a651fb5b1090b6d5f478a5cf2e9a0a3d6d [file] [log] [blame]
# TPCDS-Q51
WITH web_v1 AS
(SELECT ws_item_sk item_sk,
d_date,
sum(sum(ws_sales_price)) OVER (PARTITION BY ws_item_sk
ORDER BY d_date ROWS BETWEEN unbounded preceding AND CURRENT ROW) cume_sales
FROM web_sales,
date_dim
WHERE ws_sold_date_sk=d_date_sk
AND d_month_seq BETWEEN 1200 AND 1200+11
AND ws_item_sk IS NOT NULL
GROUP BY ws_item_sk,
d_date),
store_v1 AS
(SELECT ss_item_sk item_sk,
d_date,
sum(sum(ss_sales_price)) OVER (PARTITION BY ss_item_sk
ORDER BY d_date ROWS BETWEEN unbounded preceding AND CURRENT ROW) cume_sales
FROM store_sales,
date_dim
WHERE ss_sold_date_sk=d_date_sk
AND d_month_seq BETWEEN 1200 AND 1200+11
AND ss_item_sk IS NOT NULL
GROUP BY ss_item_sk,
d_date)
SELECT *
FROM
(SELECT item_sk,
d_date,
web_sales,
store_sales,
max(web_sales) OVER (PARTITION BY item_sk
ORDER BY d_date ROWS BETWEEN unbounded preceding AND CURRENT ROW) web_cumulative,
max(store_sales) OVER (PARTITION BY item_sk
ORDER BY d_date ROWS BETWEEN unbounded preceding AND CURRENT ROW) store_cumulative
FROM
(SELECT CASE
WHEN web.item_sk IS NOT NULL THEN web.item_sk
ELSE store.item_sk
END item_sk,
CASE
WHEN web.d_date IS NOT NULL THEN web.d_date
ELSE store.d_date
END d_date,
web.cume_sales web_sales,
store.cume_sales store_sales
FROM web_v1 web
FULL OUTER JOIN store_v1 store ON (web.item_sk = store.item_sk
AND web.d_date = store.d_date))x)y
WHERE web_cumulative > store_cumulative
ORDER BY item_sk,
d_date
LIMIT 100;
---- PLAN
Max Per-Host Resource Reservation: Memory=106.00MB Threads=5
Per-Host Resource Estimates: Memory=333MB
F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Host Resources: mem-estimate=332.87MB mem-reservation=106.00MB thread-reservation=5 runtime-filters-memory=2.00MB
PLAN-ROOT SINK
| output exprs: item_sk, d_date, web_sales, store_sales, web_cumulative, store_cumulative
| mem-estimate=0B mem-reservation=0B thread-reservation=0
|
16:TOP-N [LIMIT=100]
| order by: item_sk ASC, d_date ASC
| mem-estimate=8.20KB mem-reservation=0B thread-reservation=0
| tuple-ids=13 row-size=84B cardinality=100
| in pipelines: 16(GETNEXT), 13(OPEN)
|
15:SELECT
| predicates: max(web_sales) > max(store_sales)
| mem-estimate=0B mem-reservation=0B thread-reservation=0
| tuple-ids=25,24 row-size=156B cardinality=359.98K
| in pipelines: 13(GETNEXT)
|
14:ANALYTIC
| functions: max(sum(sum(ws_sales_price))), max(sum(sum(ss_sales_price)))
| partition by: item_sk
| order by: CASE WHEN d_date IS NOT NULL THEN d_date ELSE d_date END ASC
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=25,24 row-size=156B cardinality=3.60M
| in pipelines: 13(GETNEXT)
|
13:SORT
| order by: CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END ASC NULLS LAST, CASE WHEN d_date IS NOT NULL THEN d_date ELSE d_date END ASC
| mem-estimate=22.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=25 row-size=124B cardinality=3.60M
| in pipelines: 13(GETNEXT), 10(OPEN)
|
12:HASH JOIN [FULL OUTER JOIN]
| hash predicates: ss_item_sk = ws_item_sk, d_date = d_date
| fk/pk conjuncts: d_date = d_date
| mem-estimate=46.79MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22N,21N,17N,16N row-size=124B cardinality=3.60M
| in pipelines: 10(GETNEXT), 04(OPEN)
|
|--05:ANALYTIC
| | functions: sum(sum(ws_sales_price))
| | partition by: ws_item_sk
| | order by: d_date ASC
| | window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17,16 row-size=62B cardinality=719.38K
| | in pipelines: 04(GETNEXT)
| |
| 04:SORT
| | order by: ws_item_sk ASC NULLS LAST, d_date ASC
| | mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17 row-size=46B cardinality=719.38K
| | in pipelines: 04(GETNEXT), 03(OPEN)
| |
| 03:AGGREGATE [FINALIZE]
| | output: sum(ws_sales_price)
| | group by: ws_item_sk, d_date
| | mem-estimate=34.71MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 03(GETNEXT), 00(OPEN)
| |
| 02:HASH JOIN [INNER JOIN]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | fk/pk conjuncts: ws_sold_date_sk = d_date_sk
| | runtime filters: RF002[bloom] <- d_date_sk
| | mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| | tuple-ids=0,1 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT), 01(OPEN)
| |
| |--01:SCAN HDFS [tpcds_parquet.date_dim]
| | HDFS partitions=1/1 files=1 size=2.15MB
| | predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | stored statistics:
| | table: rows=73.05K size=2.15MB
| | columns: all
| | extrapolated-rows=disabled max-scan-range-rows=73.05K
| | parquet statistics predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | parquet dictionary predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
| | tuple-ids=1 row-size=30B cardinality=7.30K
| | in pipelines: 01(GETNEXT)
| |
| 00:SCAN HDFS [tpcds_parquet.web_sales]
| HDFS partitions=1/1 files=2 size=45.09MB
| predicates: ws_item_sk IS NOT NULL
| runtime filters: RF002[bloom] -> ws_sold_date_sk
| stored statistics:
| table: rows=719.38K size=45.09MB
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=644.77K
| parquet dictionary predicates: ws_item_sk IS NOT NULL
| mem-estimate=96.00MB mem-reservation=4.00MB thread-reservation=1
| tuple-ids=0 row-size=16B cardinality=719.38K
| in pipelines: 00(GETNEXT)
|
11:ANALYTIC
| functions: sum(sum(ss_sales_price))
| partition by: ss_item_sk
| order by: d_date ASC
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22,21 row-size=62B cardinality=2.88M
| in pipelines: 10(GETNEXT)
|
10:SORT
| order by: ss_item_sk ASC NULLS LAST, d_date ASC
| mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22 row-size=46B cardinality=2.88M
| in pipelines: 10(GETNEXT), 09(OPEN)
|
09:AGGREGATE [FINALIZE]
| output: sum(ss_sales_price)
| group by: ss_item_sk, d_date
| mem-estimate=139.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 09(GETNEXT), 06(OPEN)
|
08:HASH JOIN [INNER JOIN]
| hash predicates: ss_sold_date_sk = d_date_sk
| fk/pk conjuncts: ss_sold_date_sk = d_date_sk
| runtime filters: RF000[bloom] <- d_date_sk
| mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| tuple-ids=5,6 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT), 07(OPEN)
|
|--07:SCAN HDFS [tpcds_parquet.date_dim]
| HDFS partitions=1/1 files=1 size=2.15MB
| predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| stored statistics:
| table: rows=73.05K size=2.15MB
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=73.05K
| parquet statistics predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| parquet dictionary predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
| tuple-ids=6 row-size=30B cardinality=7.30K
| in pipelines: 07(GETNEXT)
|
06:SCAN HDFS [tpcds_parquet.store_sales]
HDFS partitions=1824/1824 files=1824 size=201.02MB
predicates: ss_item_sk IS NOT NULL
runtime filters: RF000[bloom] -> ss_sold_date_sk
stored statistics:
table: rows=2.88M size=201.02MB
partitions: 1824/1824 rows=2.88M
columns: all
extrapolated-rows=disabled max-scan-range-rows=130.09K
parquet dictionary predicates: ss_item_sk IS NOT NULL
mem-estimate=32.00MB mem-reservation=1.00MB thread-reservation=1
tuple-ids=5 row-size=16B cardinality=2.88M
in pipelines: 06(GETNEXT)
---- DISTRIBUTEDPLAN
Max Per-Host Resource Reservation: Memory=232.88MB Threads=13
Per-Host Resource Estimates: Memory=560MB
F08:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Host Resources: mem-estimate=21.29KB mem-reservation=0B thread-reservation=1
PLAN-ROOT SINK
| output exprs: item_sk, d_date, web_sales, store_sales, web_cumulative, store_cumulative
| mem-estimate=0B mem-reservation=0B thread-reservation=0
|
26:MERGING-EXCHANGE [UNPARTITIONED]
| order by: item_sk ASC, d_date ASC
| limit: 100
| mem-estimate=21.29KB mem-reservation=0B thread-reservation=0
| tuple-ids=13 row-size=84B cardinality=100
| in pipelines: 16(GETNEXT)
|
F07:PLAN FRAGMENT [HASH(CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END)] hosts=2 instances=2
Per-Host Resources: mem-estimate=36.27MB mem-reservation=16.00MB thread-reservation=1
16:TOP-N [LIMIT=100]
| order by: item_sk ASC, d_date ASC
| mem-estimate=8.20KB mem-reservation=0B thread-reservation=0
| tuple-ids=13 row-size=84B cardinality=100
| in pipelines: 16(GETNEXT), 13(OPEN)
|
15:SELECT
| predicates: max(web_sales) > max(store_sales)
| mem-estimate=0B mem-reservation=0B thread-reservation=0
| tuple-ids=25,24 row-size=156B cardinality=359.98K
| in pipelines: 13(GETNEXT)
|
14:ANALYTIC
| functions: max(sum(sum(ws_sales_price))), max(sum(sum(ss_sales_price)))
| partition by: item_sk
| order by: CASE WHEN d_date IS NOT NULL THEN d_date ELSE d_date END ASC
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=25,24 row-size=156B cardinality=3.60M
| in pipelines: 13(GETNEXT)
|
13:SORT
| order by: CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END ASC NULLS LAST, CASE WHEN d_date IS NOT NULL THEN d_date ELSE d_date END ASC
| mem-estimate=22.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=25 row-size=124B cardinality=3.60M
| in pipelines: 13(GETNEXT), 10(OPEN)
|
25:EXCHANGE [HASH(CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END)]
| mem-estimate=10.27MB mem-reservation=0B thread-reservation=0
| tuple-ids=22N,21N,17N,16N row-size=124B cardinality=3.60M
| in pipelines: 10(GETNEXT)
|
F06:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
Per-Host Resources: mem-estimate=54.34MB mem-reservation=34.00MB thread-reservation=1
12:HASH JOIN [FULL OUTER JOIN, PARTITIONED]
| hash predicates: ss_item_sk = ws_item_sk, d_date = d_date
| fk/pk conjuncts: d_date = d_date
| mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22N,21N,17N,16N row-size=124B cardinality=3.60M
| in pipelines: 10(GETNEXT), 04(OPEN)
|
|--24:EXCHANGE [HASH(ws_item_sk,d_date)]
| | mem-estimate=10.14MB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16 row-size=62B cardinality=719.38K
| | in pipelines: 04(GETNEXT)
| |
| F05:PLAN FRAGMENT [HASH(ws_item_sk)] hosts=2 instances=2
| Per-Host Resources: mem-estimate=50.00MB mem-reservation=50.00MB thread-reservation=1
| 05:ANALYTIC
| | functions: sum(sum(ws_sales_price))
| | partition by: ws_item_sk
| | order by: d_date ASC
| | window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17,16 row-size=62B cardinality=719.38K
| | in pipelines: 04(GETNEXT)
| |
| 04:SORT
| | order by: ws_item_sk ASC NULLS LAST, d_date ASC
| | mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17 row-size=46B cardinality=719.38K
| | in pipelines: 04(GETNEXT), 22(OPEN)
| |
| 22:AGGREGATE [FINALIZE]
| | output: sum:merge(ws_sales_price)
| | group by: ws_item_sk, d_date
| | mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 22(GETNEXT), 00(OPEN)
| |
| 21:EXCHANGE [HASH(ws_item_sk)]
| | mem-estimate=10.10MB mem-reservation=0B thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT)
| |
| F03:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
| Per-Host Resources: mem-estimate=133.18MB mem-reservation=40.94MB thread-reservation=2 runtime-filters-memory=1.00MB
| 03:AGGREGATE [STREAMING]
| | output: sum(ws_sales_price)
| | group by: ws_item_sk, d_date
| | mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT)
| |
| 02:HASH JOIN [INNER JOIN, BROADCAST]
| | hash predicates: ws_sold_date_sk = d_date_sk
| | fk/pk conjuncts: ws_sold_date_sk = d_date_sk
| | runtime filters: RF002[bloom] <- d_date_sk
| | mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| | tuple-ids=0,1 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT), 01(OPEN)
| |
| |--20:EXCHANGE [BROADCAST]
| | | mem-estimate=248.01KB mem-reservation=0B thread-reservation=0
| | | tuple-ids=1 row-size=30B cardinality=7.30K
| | | in pipelines: 01(GETNEXT)
| | |
| | F04:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
| | Per-Host Resources: mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=2
| | 01:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
| | HDFS partitions=1/1 files=1 size=2.15MB
| | predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | stored statistics:
| | table: rows=73.05K size=2.15MB
| | columns: all
| | extrapolated-rows=disabled max-scan-range-rows=73.05K
| | parquet statistics predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | parquet dictionary predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
| | tuple-ids=1 row-size=30B cardinality=7.30K
| | in pipelines: 01(GETNEXT)
| |
| 00:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
| HDFS partitions=1/1 files=2 size=45.09MB
| predicates: ws_item_sk IS NOT NULL
| runtime filters: RF002[bloom] -> ws_sold_date_sk
| stored statistics:
| table: rows=719.38K size=45.09MB
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=644.77K
| parquet dictionary predicates: ws_item_sk IS NOT NULL
| mem-estimate=96.00MB mem-reservation=4.00MB thread-reservation=1
| tuple-ids=0 row-size=16B cardinality=719.38K
| in pipelines: 00(GETNEXT)
|
23:EXCHANGE [HASH(ss_item_sk,d_date)]
| mem-estimate=10.21MB mem-reservation=0B thread-reservation=0
| tuple-ids=22,21 row-size=62B cardinality=2.88M
| in pipelines: 10(GETNEXT)
|
F02:PLAN FRAGMENT [HASH(ss_item_sk)] hosts=3 instances=3
Per-Host Resources: mem-estimate=85.50MB mem-reservation=50.00MB thread-reservation=1
11:ANALYTIC
| functions: sum(sum(ss_sales_price))
| partition by: ss_item_sk
| order by: d_date ASC
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22,21 row-size=62B cardinality=2.88M
| in pipelines: 10(GETNEXT)
|
10:SORT
| order by: ss_item_sk ASC NULLS LAST, d_date ASC
| mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22 row-size=46B cardinality=2.88M
| in pipelines: 10(GETNEXT), 19(OPEN)
|
19:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: ss_item_sk, d_date
| mem-estimate=69.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 19(GETNEXT), 06(OPEN)
|
18:EXCHANGE [HASH(ss_item_sk)]
| mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT)
|
F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
Per-Host Resources: mem-estimate=104.68MB mem-reservation=37.94MB thread-reservation=2 runtime-filters-memory=1.00MB
09:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: ss_item_sk, d_date
| mem-estimate=69.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT)
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: ss_sold_date_sk = d_date_sk
| fk/pk conjuncts: ss_sold_date_sk = d_date_sk
| runtime filters: RF000[bloom] <- d_date_sk
| mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
| tuple-ids=5,6 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT), 07(OPEN)
|
|--17:EXCHANGE [BROADCAST]
| | mem-estimate=248.01KB mem-reservation=0B thread-reservation=0
| | tuple-ids=6 row-size=30B cardinality=7.30K
| | in pipelines: 07(GETNEXT)
| |
| F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
| Per-Host Resources: mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=2
| 07:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
| HDFS partitions=1/1 files=1 size=2.15MB
| predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| stored statistics:
| table: rows=73.05K size=2.15MB
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=73.05K
| parquet statistics predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| parquet dictionary predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
| tuple-ids=6 row-size=30B cardinality=7.30K
| in pipelines: 07(GETNEXT)
|
06:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
HDFS partitions=1824/1824 files=1824 size=201.02MB
predicates: ss_item_sk IS NOT NULL
runtime filters: RF000[bloom] -> ss_sold_date_sk
stored statistics:
table: rows=2.88M size=201.02MB
partitions: 1824/1824 rows=2.88M
columns: all
extrapolated-rows=disabled max-scan-range-rows=130.09K
parquet dictionary predicates: ss_item_sk IS NOT NULL
mem-estimate=32.00MB mem-reservation=1.00MB thread-reservation=1
tuple-ids=5 row-size=16B cardinality=2.88M
in pipelines: 06(GETNEXT)
---- PARALLELPLANS
Max Per-Host Resource Reservation: Memory=323.75MB Threads=14
Per-Host Resource Estimates: Memory=454MB
F08:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
| Per-Instance Resources: mem-estimate=21.29KB mem-reservation=0B thread-reservation=1
PLAN-ROOT SINK
| output exprs: item_sk, d_date, web_sales, store_sales, web_cumulative, store_cumulative
| mem-estimate=0B mem-reservation=0B thread-reservation=0
|
26:MERGING-EXCHANGE [UNPARTITIONED]
| order by: item_sk ASC, d_date ASC
| limit: 100
| mem-estimate=21.29KB mem-reservation=0B thread-reservation=0
| tuple-ids=13 row-size=84B cardinality=100
| in pipelines: 16(GETNEXT)
|
F07:PLAN FRAGMENT [HASH(CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END)] hosts=2 instances=2
Per-Instance Resources: mem-estimate=36.27MB mem-reservation=16.00MB thread-reservation=1
16:TOP-N [LIMIT=100]
| order by: item_sk ASC, d_date ASC
| mem-estimate=8.20KB mem-reservation=0B thread-reservation=0
| tuple-ids=13 row-size=84B cardinality=100
| in pipelines: 16(GETNEXT), 13(OPEN)
|
15:SELECT
| predicates: max(web_sales) > max(store_sales)
| mem-estimate=0B mem-reservation=0B thread-reservation=0
| tuple-ids=25,24 row-size=156B cardinality=359.98K
| in pipelines: 13(GETNEXT)
|
14:ANALYTIC
| functions: max(sum(sum(ws_sales_price))), max(sum(sum(ss_sales_price)))
| partition by: item_sk
| order by: CASE WHEN d_date IS NOT NULL THEN d_date ELSE d_date END ASC
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=25,24 row-size=156B cardinality=3.60M
| in pipelines: 13(GETNEXT)
|
13:SORT
| order by: CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END ASC NULLS LAST, CASE WHEN d_date IS NOT NULL THEN d_date ELSE d_date END ASC
| mem-estimate=22.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=25 row-size=124B cardinality=3.60M
| in pipelines: 13(GETNEXT), 10(OPEN)
|
25:EXCHANGE [HASH(CASE WHEN ws_item_sk IS NOT NULL THEN ws_item_sk ELSE ss_item_sk END)]
| mem-estimate=10.27MB mem-reservation=0B thread-reservation=0
| tuple-ids=22N,21N,17N,16N row-size=124B cardinality=3.60M
| in pipelines: 10(GETNEXT)
|
F06:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
Per-Instance Resources: mem-estimate=10.41MB mem-reservation=0B thread-reservation=1
12:HASH JOIN [FULL OUTER JOIN, PARTITIONED]
| hash-table-id=00
| hash predicates: ss_item_sk = ws_item_sk, d_date = d_date
| fk/pk conjuncts: d_date = d_date
| mem-estimate=0B mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22N,21N,17N,16N row-size=124B cardinality=3.60M
| in pipelines: 10(GETNEXT), 04(OPEN)
|
|--F09:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
| | Per-Instance Resources: mem-estimate=44.14MB mem-reservation=34.00MB thread-reservation=1
| JOIN BUILD
| | join-table-id=00 plan-id=01 cohort-id=01
| | build expressions: ws_item_sk, d_date
| | mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| |
| 24:EXCHANGE [HASH(ws_item_sk,d_date)]
| | mem-estimate=10.14MB mem-reservation=0B thread-reservation=0
| | tuple-ids=17,16 row-size=62B cardinality=719.38K
| | in pipelines: 04(GETNEXT)
| |
| F05:PLAN FRAGMENT [HASH(ws_item_sk)] hosts=2 instances=2
| Per-Instance Resources: mem-estimate=50.00MB mem-reservation=50.00MB thread-reservation=1
| 05:ANALYTIC
| | functions: sum(sum(ws_sales_price))
| | partition by: ws_item_sk
| | order by: d_date ASC
| | window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| | mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17,16 row-size=62B cardinality=719.38K
| | in pipelines: 04(GETNEXT)
| |
| 04:SORT
| | order by: ws_item_sk ASC NULLS LAST, d_date ASC
| | mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=17 row-size=46B cardinality=719.38K
| | in pipelines: 04(GETNEXT), 22(OPEN)
| |
| 22:AGGREGATE [FINALIZE]
| | output: sum:merge(ws_sales_price)
| | group by: ws_item_sk, d_date
| | mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 22(GETNEXT), 00(OPEN)
| |
| 21:EXCHANGE [HASH(ws_item_sk)]
| | mem-estimate=10.10MB mem-reservation=0B thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT)
| |
| F03:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
| Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
| Per-Instance Resources: mem-estimate=66.00MB mem-reservation=38.00MB thread-reservation=1
| 03:AGGREGATE [STREAMING]
| | output: sum(ws_sales_price)
| | group by: ws_item_sk, d_date
| | mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| | tuple-ids=2 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT)
| |
| 02:HASH JOIN [INNER JOIN, BROADCAST]
| | hash-table-id=01
| | hash predicates: ws_sold_date_sk = d_date_sk
| | fk/pk conjuncts: ws_sold_date_sk = d_date_sk
| | mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
| | tuple-ids=0,1 row-size=46B cardinality=719.38K
| | in pipelines: 00(GETNEXT), 01(OPEN)
| |
| |--F10:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
| | | Per-Instance Resources: mem-estimate=5.12MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
| | JOIN BUILD
| | | join-table-id=01 plan-id=02 cohort-id=02
| | | build expressions: d_date_sk
| | | runtime filters: RF002[bloom] <- d_date_sk
| | | mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
| | |
| | 20:EXCHANGE [BROADCAST]
| | | mem-estimate=248.01KB mem-reservation=0B thread-reservation=0
| | | tuple-ids=1 row-size=30B cardinality=7.30K
| | | in pipelines: 01(GETNEXT)
| | |
| | F04:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
| | Per-Instance Resources: mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=1
| | 01:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
| | HDFS partitions=1/1 files=1 size=2.15MB
| | predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | stored statistics:
| | table: rows=73.05K size=2.15MB
| | columns: all
| | extrapolated-rows=disabled max-scan-range-rows=73.05K
| | parquet statistics predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | parquet dictionary predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| | mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
| | tuple-ids=1 row-size=30B cardinality=7.30K
| | in pipelines: 01(GETNEXT)
| |
| 00:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
| HDFS partitions=1/1 files=2 size=45.09MB
| predicates: ws_item_sk IS NOT NULL
| runtime filters: RF002[bloom] -> ws_sold_date_sk
| stored statistics:
| table: rows=719.38K size=45.09MB
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=644.77K
| parquet dictionary predicates: ws_item_sk IS NOT NULL
| mem-estimate=32.00MB mem-reservation=4.00MB thread-reservation=0
| tuple-ids=0 row-size=16B cardinality=719.38K
| in pipelines: 00(GETNEXT)
|
23:EXCHANGE [HASH(ss_item_sk,d_date)]
| mem-estimate=10.41MB mem-reservation=0B thread-reservation=0
| tuple-ids=22,21 row-size=62B cardinality=2.88M
| in pipelines: 10(GETNEXT)
|
F02:PLAN FRAGMENT [HASH(ss_item_sk)] hosts=3 instances=6
Per-Instance Resources: mem-estimate=50.75MB mem-reservation=50.00MB thread-reservation=1
11:ANALYTIC
| functions: sum(sum(ss_sales_price))
| partition by: ss_item_sk
| order by: d_date ASC
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22,21 row-size=62B cardinality=2.88M
| in pipelines: 10(GETNEXT)
|
10:SORT
| order by: ss_item_sk ASC NULLS LAST, d_date ASC
| mem-estimate=12.00MB mem-reservation=12.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=22 row-size=46B cardinality=2.88M
| in pipelines: 10(GETNEXT), 19(OPEN)
|
19:AGGREGATE [FINALIZE]
| output: sum:merge(ss_sales_price)
| group by: ss_item_sk, d_date
| mem-estimate=34.75MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 19(GETNEXT), 06(OPEN)
|
18:EXCHANGE [HASH(ss_item_sk)]
| mem-estimate=10.29MB mem-reservation=0B thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT)
|
F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
Per-Instance Resources: mem-estimate=50.75MB mem-reservation=35.00MB thread-reservation=1
09:AGGREGATE [STREAMING]
| output: sum(ss_sales_price)
| group by: ss_item_sk, d_date
| mem-estimate=34.75MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
| tuple-ids=7 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT)
|
08:HASH JOIN [INNER JOIN, BROADCAST]
| hash-table-id=02
| hash predicates: ss_sold_date_sk = d_date_sk
| fk/pk conjuncts: ss_sold_date_sk = d_date_sk
| mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
| tuple-ids=5,6 row-size=46B cardinality=2.88M
| in pipelines: 06(GETNEXT), 07(OPEN)
|
|--F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
| | Per-Instance Resources: mem-estimate=5.12MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
| JOIN BUILD
| | join-table-id=02 plan-id=03 cohort-id=01
| | build expressions: d_date_sk
| | runtime filters: RF000[bloom] <- d_date_sk
| | mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
| |
| 17:EXCHANGE [BROADCAST]
| | mem-estimate=248.01KB mem-reservation=0B thread-reservation=0
| | tuple-ids=6 row-size=30B cardinality=7.30K
| | in pipelines: 07(GETNEXT)
| |
| F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
| Per-Instance Resources: mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=1
| 07:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
| HDFS partitions=1/1 files=1 size=2.15MB
| predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| stored statistics:
| table: rows=73.05K size=2.15MB
| columns: all
| extrapolated-rows=disabled max-scan-range-rows=73.05K
| parquet statistics predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| parquet dictionary predicates: d_month_seq <= CAST(1211 AS INT), d_month_seq >= CAST(1200 AS INT)
| mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
| tuple-ids=6 row-size=30B cardinality=7.30K
| in pipelines: 07(GETNEXT)
|
06:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
HDFS partitions=1824/1824 files=1824 size=201.02MB
predicates: ss_item_sk IS NOT NULL
runtime filters: RF000[bloom] -> ss_sold_date_sk
stored statistics:
table: rows=2.88M size=201.02MB
partitions: 1824/1824 rows=2.88M
columns: all
extrapolated-rows=disabled max-scan-range-rows=130.09K
parquet dictionary predicates: ss_item_sk IS NOT NULL
mem-estimate=16.00MB mem-reservation=1.00MB thread-reservation=0
tuple-ids=5 row-size=16B cardinality=2.88M
in pipelines: 06(GETNEXT)
====