You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/07/19 21:44:40 UTC

[02/54] [abbrv] hive git commit: HIVE-17896: TopNKey: Create a standalone vectorizable TopNKey operator (Teddy Choi, reviewed by Jesus Camacho Rodriguez)

http://git-wip-us.apache.org/repos/asf/hive/blob/851c8aba/ql/src/test/results/clientpositive/perf/tez/query80.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query80.q.out b/ql/src/test/results/clientpositive/perf/tez/query80.q.out
index ee8cdd8..e02f45f 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query80.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query80.q.out
@@ -232,394 +232,400 @@ Stage-0
     limit:100
     Stage-1
       Reducer 10 vectorized
-      File Output Operator [FS_460]
-        Limit [LIM_459] (rows=100 width=108)
+      File Output Operator [FS_465]
+        Limit [LIM_464] (rows=100 width=108)
           Number of rows:100
-          Select Operator [SEL_458] (rows=1217531358 width=108)
+          Select Operator [SEL_463] (rows=1217531358 width=108)
             Output:["_col0","_col1","_col2","_col3","_col4"]
           <-Reducer 9 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_457]
-              Select Operator [SEL_456] (rows=1217531358 width=108)
+            SHUFFLE [RS_462]
+              Select Operator [SEL_461] (rows=1217531358 width=108)
                 Output:["_col0","_col1","_col2","_col3","_col4"]
-                Group By Operator [GBY_455] (rows=1217531358 width=108)
+                Group By Operator [GBY_460] (rows=1217531358 width=108)
                   Output:["_col0","_col1","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2
                 <-Union 8 [SIMPLE_EDGE]
                   <-Reducer 18 [CONTAINS] vectorized
-                    Reduce Output Operator [RS_484]
+                    Reduce Output Operator [RS_490]
                       PartitionCols:_col0, _col1, _col2
-                      Group By Operator [GBY_483] (rows=2435062716 width=108)
+                      Group By Operator [GBY_489] (rows=2435062716 width=108)
                         Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L
-                        Select Operator [SEL_482] (rows=231905279 width=135)
-                          Output:["_col0","_col1","_col2","_col3","_col4"]
-                          Group By Operator [GBY_481] (rows=231905279 width=135)
-                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0
-                          <-Reducer 17 [SIMPLE_EDGE]
-                            SHUFFLE [RS_75]
-                              PartitionCols:_col0
-                              Group By Operator [GBY_74] (rows=463810558 width=135)
-                                Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col0
-                                Select Operator [SEL_72] (rows=463810558 width=135)
-                                  Output:["_col0","_col1","_col2","_col3"]
-                                  Merge Join Operator [MERGEJOIN_368] (rows=463810558 width=135)
-                                    Conds:RS_69._col1=RS_469._col0(Inner),Output:["_col5","_col6","_col9","_col10","_col18"]
-                                  <-Map 39 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_469]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_468] (rows=46000 width=460)
-                                        Output:["_col0","_col1"]
-                                        Filter Operator [FIL_467] (rows=46000 width=460)
-                                          predicate:cp_catalog_page_sk is not null
-                                          TableScan [TS_54] (rows=46000 width=460)
-                                            default@catalog_page,catalog_page,Tbl:COMPLETE,Col:NONE,Output:["cp_catalog_page_sk","cp_catalog_page_id"]
-                                  <-Reducer 16 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_69]
-                                      PartitionCols:_col1
-                                      Merge Join Operator [MERGEJOIN_367] (rows=421645953 width=135)
-                                        Conds:RS_66._col3=RS_425._col0(Inner),Output:["_col1","_col5","_col6","_col9","_col10"]
-                                      <-Map 30 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_425]
-                                          PartitionCols:_col0
-                                          Select Operator [SEL_422] (rows=1150 width=1179)
-                                            Output:["_col0"]
-                                            Filter Operator [FIL_421] (rows=1150 width=1179)
-                                              predicate:((p_channel_tv = 'N') and p_promo_sk is not null)
-                                              TableScan [TS_12] (rows=2300 width=1179)
-                                                default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_tv"]
-                                      <-Reducer 15 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_66]
-                                          PartitionCols:_col3
-                                          Merge Join Operator [MERGEJOIN_366] (rows=383314495 width=135)
-                                            Conds:RS_63._col2=RS_409._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col9","_col10"]
-                                          <-Map 26 [SIMPLE_EDGE] vectorized
-                                            SHUFFLE [RS_409]
-                                              PartitionCols:_col0
-                                              Select Operator [SEL_406] (rows=154000 width=1436)
-                                                Output:["_col0"]
-                                                Filter Operator [FIL_405] (rows=154000 width=1436)
-                                                  predicate:((i_current_price > 50) and i_item_sk is not null)
-                                                  TableScan [TS_9] (rows=462000 width=1436)
-                                                    default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price"]
-                                          <-Reducer 14 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_63]
-                                              PartitionCols:_col2
-                                              Merge Join Operator [MERGEJOIN_365] (rows=348467716 width=135)
-                                                Conds:RS_60._col0=RS_393._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
-                                              <-Map 12 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_393]
-                                                  PartitionCols:_col0
-                                                  Select Operator [SEL_390] (rows=8116 width=1119)
-                                                    Output:["_col0"]
-                                                    Filter Operator [FIL_389] (rows=8116 width=1119)
-                                                      predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-08-04 00:00:00' AND TIMESTAMP'1998-09-03 00:00:00' and d_date_sk is not null)
-                                                      TableScan [TS_6] (rows=73049 width=1119)
-                                                        default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"]
-                                              <-Reducer 37 [SIMPLE_EDGE]
-                                                SHUFFLE [RS_60]
-                                                  PartitionCols:_col0
-                                                  Merge Join Operator [MERGEJOIN_364] (rows=316788826 width=135)
-                                                    Conds:RS_477._col2, _col4=RS_480._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
-                                                  <-Map 36 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_477]
-                                                      PartitionCols:_col2, _col4
-                                                      Select Operator [SEL_476] (rows=287989836 width=135)
-                                                        Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
-                                                        Filter Operator [FIL_475] (rows=287989836 width=135)
-                                                          predicate:((cs_catalog_page_sk BETWEEN DynamicValue(RS_70_catalog_page_cp_catalog_page_sk_min) AND DynamicValue(RS_70_catalog_page_cp_catalog_page_sk_max) and in_bloom_filter(cs_catalog_page_sk, DynamicValue(RS_70_catalog_page_cp_catalog_page_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_64_item_i_item_sk_min) AND DynamicValue(RS_64_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_64_item_i_item_sk_bloom_filter))) and (cs_promo_sk BETWEEN DynamicValue(RS_67_promotion_p_promo_sk_min) AND DynamicValue(RS_67_promotion_p_promo_sk_max) and in_bloom_filter(cs_promo_sk, DynamicValue(RS_67_promotion_p_promo_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_61_date_dim_d_date_sk_min) AND DynamicValue(RS_61_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_61_date_dim_d_date_sk_bloom_filter))) and cs_catalog_page_sk is not null and cs_item_sk is not null and cs_pr
 omo_sk is not null and cs_sold_date_sk is not null)
-                                                          TableScan [TS_39] (rows=287989836 width=135)
-                                                            default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_catalog_page_sk","cs_item_sk","cs_promo_sk","cs_order_number","cs_ext_sales_price","cs_net_profit"]
-                                                          <-Reducer 19 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_462]
-                                                              Group By Operator [GBY_461] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_401]
-                                                                  Group By Operator [GBY_398] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_394] (rows=8116 width=1119)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_390]
-                                                          <-Reducer 28 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_464]
-                                                              Group By Operator [GBY_463] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_417]
-                                                                  Group By Operator [GBY_414] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_410] (rows=154000 width=1436)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_406]
-                                                          <-Reducer 32 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_466]
-                                                              Group By Operator [GBY_465] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_433]
-                                                                  Group By Operator [GBY_430] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_426] (rows=1150 width=1179)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_422]
-                                                          <-Reducer 40 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_474]
-                                                              Group By Operator [GBY_473] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 39 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                PARTITION_ONLY_SHUFFLE [RS_472]
-                                                                  Group By Operator [GBY_471] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_470] (rows=46000 width=460)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_468]
-                                                  <-Map 38 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_480]
-                                                      PartitionCols:_col0, _col1
-                                                      Select Operator [SEL_479] (rows=28798881 width=106)
-                                                        Output:["_col0","_col1","_col2","_col3"]
-                                                        Filter Operator [FIL_478] (rows=28798881 width=106)
-                                                          predicate:cr_item_sk is not null
-                                                          TableScan [TS_42] (rows=28798881 width=106)
-                                                            default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_return_amount","cr_net_loss"]
+                        Top N Key Operator [TNK_488] (rows=811687572 width=108)
+                          keys:_col0, _col1, 0L,sort order:+++,top n:100
+                          Select Operator [SEL_487] (rows=231905279 width=135)
+                            Output:["_col0","_col1","_col2","_col3","_col4"]
+                            Group By Operator [GBY_486] (rows=231905279 width=135)
+                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0
+                            <-Reducer 17 [SIMPLE_EDGE]
+                              SHUFFLE [RS_75]
+                                PartitionCols:_col0
+                                Group By Operator [GBY_74] (rows=463810558 width=135)
+                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col0
+                                  Select Operator [SEL_72] (rows=463810558 width=135)
+                                    Output:["_col0","_col1","_col2","_col3"]
+                                    Merge Join Operator [MERGEJOIN_369] (rows=463810558 width=135)
+                                      Conds:RS_69._col1=RS_474._col0(Inner),Output:["_col5","_col6","_col9","_col10","_col18"]
+                                    <-Map 39 [SIMPLE_EDGE] vectorized
+                                      PARTITION_ONLY_SHUFFLE [RS_474]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_473] (rows=46000 width=460)
+                                          Output:["_col0","_col1"]
+                                          Filter Operator [FIL_472] (rows=46000 width=460)
+                                            predicate:cp_catalog_page_sk is not null
+                                            TableScan [TS_54] (rows=46000 width=460)
+                                              default@catalog_page,catalog_page,Tbl:COMPLETE,Col:NONE,Output:["cp_catalog_page_sk","cp_catalog_page_id"]
+                                    <-Reducer 16 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_69]
+                                        PartitionCols:_col1
+                                        Merge Join Operator [MERGEJOIN_368] (rows=421645953 width=135)
+                                          Conds:RS_66._col3=RS_429._col0(Inner),Output:["_col1","_col5","_col6","_col9","_col10"]
+                                        <-Map 30 [SIMPLE_EDGE] vectorized
+                                          SHUFFLE [RS_429]
+                                            PartitionCols:_col0
+                                            Select Operator [SEL_426] (rows=1150 width=1179)
+                                              Output:["_col0"]
+                                              Filter Operator [FIL_425] (rows=1150 width=1179)
+                                                predicate:((p_channel_tv = 'N') and p_promo_sk is not null)
+                                                TableScan [TS_12] (rows=2300 width=1179)
+                                                  default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_tv"]
+                                        <-Reducer 15 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_66]
+                                            PartitionCols:_col3
+                                            Merge Join Operator [MERGEJOIN_367] (rows=383314495 width=135)
+                                              Conds:RS_63._col2=RS_413._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col9","_col10"]
+                                            <-Map 26 [SIMPLE_EDGE] vectorized
+                                              SHUFFLE [RS_413]
+                                                PartitionCols:_col0
+                                                Select Operator [SEL_410] (rows=154000 width=1436)
+                                                  Output:["_col0"]
+                                                  Filter Operator [FIL_409] (rows=154000 width=1436)
+                                                    predicate:((i_current_price > 50) and i_item_sk is not null)
+                                                    TableScan [TS_9] (rows=462000 width=1436)
+                                                      default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price"]
+                                            <-Reducer 14 [SIMPLE_EDGE]
+                                              SHUFFLE [RS_63]
+                                                PartitionCols:_col2
+                                                Merge Join Operator [MERGEJOIN_366] (rows=348467716 width=135)
+                                                  Conds:RS_60._col0=RS_397._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
+                                                <-Map 12 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_397]
+                                                    PartitionCols:_col0
+                                                    Select Operator [SEL_394] (rows=8116 width=1119)
+                                                      Output:["_col0"]
+                                                      Filter Operator [FIL_393] (rows=8116 width=1119)
+                                                        predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-08-04 00:00:00' AND TIMESTAMP'1998-09-03 00:00:00' and d_date_sk is not null)
+                                                        TableScan [TS_6] (rows=73049 width=1119)
+                                                          default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"]
+                                                <-Reducer 37 [SIMPLE_EDGE]
+                                                  SHUFFLE [RS_60]
+                                                    PartitionCols:_col0
+                                                    Merge Join Operator [MERGEJOIN_365] (rows=316788826 width=135)
+                                                      Conds:RS_482._col2, _col4=RS_485._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
+                                                    <-Map 36 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_482]
+                                                        PartitionCols:_col2, _col4
+                                                        Select Operator [SEL_481] (rows=287989836 width=135)
+                                                          Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+                                                          Filter Operator [FIL_480] (rows=287989836 width=135)
+                                                            predicate:((cs_catalog_page_sk BETWEEN DynamicValue(RS_70_catalog_page_cp_catalog_page_sk_min) AND DynamicValue(RS_70_catalog_page_cp_catalog_page_sk_max) and in_bloom_filter(cs_catalog_page_sk, DynamicValue(RS_70_catalog_page_cp_catalog_page_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_64_item_i_item_sk_min) AND DynamicValue(RS_64_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_64_item_i_item_sk_bloom_filter))) and (cs_promo_sk BETWEEN DynamicValue(RS_67_promotion_p_promo_sk_min) AND DynamicValue(RS_67_promotion_p_promo_sk_max) and in_bloom_filter(cs_promo_sk, DynamicValue(RS_67_promotion_p_promo_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_61_date_dim_d_date_sk_min) AND DynamicValue(RS_61_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_61_date_dim_d_date_sk_bloom_filter))) and cs_catalog_page_sk is not null and cs_item_sk is not null and cs_
 promo_sk is not null and cs_sold_date_sk is not null)
+                                                            TableScan [TS_39] (rows=287989836 width=135)
+                                                              default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_catalog_page_sk","cs_item_sk","cs_promo_sk","cs_order_number","cs_ext_sales_price","cs_net_profit"]
+                                                            <-Reducer 19 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_467]
+                                                                Group By Operator [GBY_466] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_405]
+                                                                    Group By Operator [GBY_402] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_398] (rows=8116 width=1119)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_394]
+                                                            <-Reducer 28 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_469]
+                                                                Group By Operator [GBY_468] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_421]
+                                                                    Group By Operator [GBY_418] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_414] (rows=154000 width=1436)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_410]
+                                                            <-Reducer 32 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_471]
+                                                                Group By Operator [GBY_470] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_437]
+                                                                    Group By Operator [GBY_434] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_430] (rows=1150 width=1179)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_426]
+                                                            <-Reducer 40 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_479]
+                                                                Group By Operator [GBY_478] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 39 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  PARTITION_ONLY_SHUFFLE [RS_477]
+                                                                    Group By Operator [GBY_476] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_475] (rows=46000 width=460)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_473]
+                                                    <-Map 38 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_485]
+                                                        PartitionCols:_col0, _col1
+                                                        Select Operator [SEL_484] (rows=28798881 width=106)
+                                                          Output:["_col0","_col1","_col2","_col3"]
+                                                          Filter Operator [FIL_483] (rows=28798881 width=106)
+                                                            predicate:cr_item_sk is not null
+                                                            TableScan [TS_42] (rows=28798881 width=106)
+                                                              default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_return_amount","cr_net_loss"]
                   <-Reducer 24 [CONTAINS] vectorized
-                    Reduce Output Operator [RS_508]
+                    Reduce Output Operator [RS_515]
                       PartitionCols:_col0, _col1, _col2
-                      Group By Operator [GBY_507] (rows=2435062716 width=108)
+                      Group By Operator [GBY_514] (rows=2435062716 width=108)
                         Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L
-                        Select Operator [SEL_506] (rows=115958879 width=135)
-                          Output:["_col0","_col1","_col2","_col3","_col4"]
-                          Group By Operator [GBY_505] (rows=115958879 width=135)
-                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0
-                          <-Reducer 23 [SIMPLE_EDGE]
-                            SHUFFLE [RS_115]
-                              PartitionCols:_col0
-                              Group By Operator [GBY_114] (rows=231917759 width=135)
-                                Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col0
-                                Select Operator [SEL_112] (rows=231917759 width=135)
-                                  Output:["_col0","_col1","_col2","_col3"]
-                                  Merge Join Operator [MERGEJOIN_373] (rows=231917759 width=135)
-                                    Conds:RS_109._col2=RS_493._col0(Inner),Output:["_col5","_col6","_col9","_col10","_col18"]
-                                  <-Map 44 [SIMPLE_EDGE] vectorized
-                                    PARTITION_ONLY_SHUFFLE [RS_493]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_492] (rows=84 width=1850)
-                                        Output:["_col0","_col1"]
-                                        Filter Operator [FIL_491] (rows=84 width=1850)
-                                          predicate:web_site_sk is not null
-                                          TableScan [TS_94] (rows=84 width=1850)
-                                            default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_site_id"]
-                                  <-Reducer 22 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_109]
-                                      PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_372] (rows=210834322 width=135)
-                                        Conds:RS_106._col3=RS_427._col0(Inner),Output:["_col2","_col5","_col6","_col9","_col10"]
-                                      <-Map 30 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_427]
-                                          PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_422]
-                                      <-Reducer 21 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_106]
-                                          PartitionCols:_col3
-                                          Merge Join Operator [MERGEJOIN_371] (rows=191667562 width=135)
-                                            Conds:RS_103._col1=RS_411._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col9","_col10"]
-                                          <-Map 26 [SIMPLE_EDGE] vectorized
-                                            SHUFFLE [RS_411]
-                                              PartitionCols:_col0
-                                               Please refer to the previous Select Operator [SEL_406]
-                                          <-Reducer 20 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_103]
-                                              PartitionCols:_col1
-                                              Merge Join Operator [MERGEJOIN_370] (rows=174243235 width=135)
-                                                Conds:RS_100._col0=RS_395._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
-                                              <-Map 12 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_395]
-                                                  PartitionCols:_col0
-                                                   Please refer to the previous Select Operator [SEL_390]
-                                              <-Reducer 42 [SIMPLE_EDGE]
-                                                SHUFFLE [RS_100]
-                                                  PartitionCols:_col0
-                                                  Merge Join Operator [MERGEJOIN_369] (rows=158402938 width=135)
-                                                    Conds:RS_501._col1, _col4=RS_504._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
-                                                  <-Map 41 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_501]
-                                                      PartitionCols:_col1, _col4
-                                                      Select Operator [SEL_500] (rows=144002668 width=135)
-                                                        Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
-                                                        Filter Operator [FIL_499] (rows=144002668 width=135)
-                                                          predicate:((ws_item_sk BETWEEN DynamicValue(RS_104_item_i_item_sk_min) AND DynamicValue(RS_104_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_104_item_i_item_sk_bloom_filter))) and (ws_promo_sk BETWEEN DynamicValue(RS_107_promotion_p_promo_sk_min) AND DynamicValue(RS_107_promotion_p_promo_sk_max) and in_bloom_filter(ws_promo_sk, DynamicValue(RS_107_promotion_p_promo_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_101_date_dim_d_date_sk_min) AND DynamicValue(RS_101_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_101_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_110_web_site_web_site_sk_min) AND DynamicValue(RS_110_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_110_web_site_web_site_sk_bloom_filter))) and ws_item_sk is not null and ws_promo_sk is not null and ws_sold_date_sk is not null and ws_web_si
 te_sk is not null)
-                                                          TableScan [TS_79] (rows=144002668 width=135)
-                                                            default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_web_site_sk","ws_promo_sk","ws_order_number","ws_ext_sales_price","ws_net_profit"]
-                                                          <-Reducer 25 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_486]
-                                                              Group By Operator [GBY_485] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_402]
-                                                                  Group By Operator [GBY_399] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_396] (rows=8116 width=1119)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_390]
-                                                          <-Reducer 29 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_488]
-                                                              Group By Operator [GBY_487] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_418]
-                                                                  Group By Operator [GBY_415] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_412] (rows=154000 width=1436)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_406]
-                                                          <-Reducer 33 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_490]
-                                                              Group By Operator [GBY_489] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_434]
-                                                                  Group By Operator [GBY_431] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_428] (rows=1150 width=1179)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_422]
-                                                          <-Reducer 45 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_498]
-                                                              Group By Operator [GBY_497] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                PARTITION_ONLY_SHUFFLE [RS_496]
-                                                                  Group By Operator [GBY_495] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_494] (rows=84 width=1850)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_492]
-                                                  <-Map 43 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_504]
-                                                      PartitionCols:_col0, _col1
-                                                      Select Operator [SEL_503] (rows=14398467 width=92)
-                                                        Output:["_col0","_col1","_col2","_col3"]
-                                                        Filter Operator [FIL_502] (rows=14398467 width=92)
-                                                          predicate:wr_item_sk is not null
-                                                          TableScan [TS_82] (rows=14398467 width=92)
-                                                            default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_order_number","wr_return_amt","wr_net_loss"]
+                        Top N Key Operator [TNK_513] (rows=811687572 width=108)
+                          keys:_col0, _col1, 0L,sort order:+++,top n:100
+                          Select Operator [SEL_512] (rows=115958879 width=135)
+                            Output:["_col0","_col1","_col2","_col3","_col4"]
+                            Group By Operator [GBY_511] (rows=115958879 width=135)
+                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0
+                            <-Reducer 23 [SIMPLE_EDGE]
+                              SHUFFLE [RS_115]
+                                PartitionCols:_col0
+                                Group By Operator [GBY_114] (rows=231917759 width=135)
+                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col0
+                                  Select Operator [SEL_112] (rows=231917759 width=135)
+                                    Output:["_col0","_col1","_col2","_col3"]
+                                    Merge Join Operator [MERGEJOIN_374] (rows=231917759 width=135)
+                                      Conds:RS_109._col2=RS_499._col0(Inner),Output:["_col5","_col6","_col9","_col10","_col18"]
+                                    <-Map 44 [SIMPLE_EDGE] vectorized
+                                      PARTITION_ONLY_SHUFFLE [RS_499]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_498] (rows=84 width=1850)
+                                          Output:["_col0","_col1"]
+                                          Filter Operator [FIL_497] (rows=84 width=1850)
+                                            predicate:web_site_sk is not null
+                                            TableScan [TS_94] (rows=84 width=1850)
+                                              default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_site_id"]
+                                    <-Reducer 22 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_109]
+                                        PartitionCols:_col2
+                                        Merge Join Operator [MERGEJOIN_373] (rows=210834322 width=135)
+                                          Conds:RS_106._col3=RS_431._col0(Inner),Output:["_col2","_col5","_col6","_col9","_col10"]
+                                        <-Map 30 [SIMPLE_EDGE] vectorized
+                                          SHUFFLE [RS_431]
+                                            PartitionCols:_col0
+                                             Please refer to the previous Select Operator [SEL_426]
+                                        <-Reducer 21 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_106]
+                                            PartitionCols:_col3
+                                            Merge Join Operator [MERGEJOIN_372] (rows=191667562 width=135)
+                                              Conds:RS_103._col1=RS_415._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col9","_col10"]
+                                            <-Map 26 [SIMPLE_EDGE] vectorized
+                                              SHUFFLE [RS_415]
+                                                PartitionCols:_col0
+                                                 Please refer to the previous Select Operator [SEL_410]
+                                            <-Reducer 20 [SIMPLE_EDGE]
+                                              SHUFFLE [RS_103]
+                                                PartitionCols:_col1
+                                                Merge Join Operator [MERGEJOIN_371] (rows=174243235 width=135)
+                                                  Conds:RS_100._col0=RS_399._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
+                                                <-Map 12 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_399]
+                                                    PartitionCols:_col0
+                                                     Please refer to the previous Select Operator [SEL_394]
+                                                <-Reducer 42 [SIMPLE_EDGE]
+                                                  SHUFFLE [RS_100]
+                                                    PartitionCols:_col0
+                                                    Merge Join Operator [MERGEJOIN_370] (rows=158402938 width=135)
+                                                      Conds:RS_507._col1, _col4=RS_510._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
+                                                    <-Map 41 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_507]
+                                                        PartitionCols:_col1, _col4
+                                                        Select Operator [SEL_506] (rows=144002668 width=135)
+                                                          Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+                                                          Filter Operator [FIL_505] (rows=144002668 width=135)
+                                                            predicate:((ws_item_sk BETWEEN DynamicValue(RS_104_item_i_item_sk_min) AND DynamicValue(RS_104_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_104_item_i_item_sk_bloom_filter))) and (ws_promo_sk BETWEEN DynamicValue(RS_107_promotion_p_promo_sk_min) AND DynamicValue(RS_107_promotion_p_promo_sk_max) and in_bloom_filter(ws_promo_sk, DynamicValue(RS_107_promotion_p_promo_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_101_date_dim_d_date_sk_min) AND DynamicValue(RS_101_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_101_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_110_web_site_web_site_sk_min) AND DynamicValue(RS_110_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_110_web_site_web_site_sk_bloom_filter))) and ws_item_sk is not null and ws_promo_sk is not null and ws_sold_date_sk is not null and ws_web_
 site_sk is not null)
+                                                            TableScan [TS_79] (rows=144002668 width=135)
+                                                              default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_web_site_sk","ws_promo_sk","ws_order_number","ws_ext_sales_price","ws_net_profit"]
+                                                            <-Reducer 25 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_492]
+                                                                Group By Operator [GBY_491] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_406]
+                                                                    Group By Operator [GBY_403] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_400] (rows=8116 width=1119)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_394]
+                                                            <-Reducer 29 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_494]
+                                                                Group By Operator [GBY_493] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_422]
+                                                                    Group By Operator [GBY_419] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_416] (rows=154000 width=1436)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_410]
+                                                            <-Reducer 33 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_496]
+                                                                Group By Operator [GBY_495] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_438]
+                                                                    Group By Operator [GBY_435] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_432] (rows=1150 width=1179)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_426]
+                                                            <-Reducer 45 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_504]
+                                                                Group By Operator [GBY_503] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  PARTITION_ONLY_SHUFFLE [RS_502]
+                                                                    Group By Operator [GBY_501] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_500] (rows=84 width=1850)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_498]
+                                                    <-Map 43 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_510]
+                                                        PartitionCols:_col0, _col1
+                                                        Select Operator [SEL_509] (rows=14398467 width=92)
+                                                          Output:["_col0","_col1","_col2","_col3"]
+                                                          Filter Operator [FIL_508] (rows=14398467 width=92)
+                                                            predicate:wr_item_sk is not null
+                                                            TableScan [TS_82] (rows=14398467 width=92)
+                                                              default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_order_number","wr_return_amt","wr_net_loss"]
                   <-Reducer 7 [CONTAINS] vectorized
-                    Reduce Output Operator [RS_454]
+                    Reduce Output Operator [RS_459]
                       PartitionCols:_col0, _col1, _col2
-                      Group By Operator [GBY_453] (rows=2435062716 width=108)
+                      Group By Operator [GBY_458] (rows=2435062716 width=108)
                         Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L
-                        Select Operator [SEL_452] (rows=463823414 width=88)
-                          Output:["_col0","_col1","_col2","_col3","_col4"]
-                          Group By Operator [GBY_451] (rows=463823414 width=88)
-                            Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0
-                          <-Reducer 6 [SIMPLE_EDGE]
-                            SHUFFLE [RS_36]
-                              PartitionCols:_col0
-                              Group By Operator [GBY_35] (rows=927646829 width=88)
-                                Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col0
-                                Select Operator [SEL_33] (rows=927646829 width=88)
-                                  Output:["_col0","_col1","_col2","_col3"]
-                                  Merge Join Operator [MERGEJOIN_363] (rows=927646829 width=88)
-                                    Conds:RS_30._col2=RS_439._col0(Inner),Output:["_col5","_col6","_col9","_col10","_col18"]
-                                  <-Map 34 [SIMPLE_EDGE] vectorized
-                                    SHUFFLE [RS_439]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_438] (rows=1704 width=1910)
-                                        Output:["_col0","_col1"]
-                                        Filter Operator [FIL_437] (rows=1704 width=1910)
-                                          predicate:s_store_sk is not null
-                                          TableScan [TS_15] (rows=1704 width=1910)
-                                            default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"]
-                                  <-Reducer 5 [SIMPLE_EDGE]
-                                    SHUFFLE [RS_30]
-                                      PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_362] (rows=843315281 width=88)
-                                        Conds:RS_27._col3=RS_423._col0(Inner),Output:["_col2","_col5","_col6","_col9","_col10"]
-                                      <-Map 30 [SIMPLE_EDGE] vectorized
-                                        SHUFFLE [RS_423]
-                                          PartitionCols:_col0
-                                           Please refer to the previous Select Operator [SEL_422]
-                                      <-Reducer 4 [SIMPLE_EDGE]
-                                        SHUFFLE [RS_27]
-                                          PartitionCols:_col3
-                                          Merge Join Operator [MERGEJOIN_361] (rows=766650239 width=88)
-                                            Conds:RS_24._col1=RS_407._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col9","_col10"]
-                                          <-Map 26 [SIMPLE_EDGE] vectorized
-                                            SHUFFLE [RS_407]
-                                              PartitionCols:_col0
-                                               Please refer to the previous Select Operator [SEL_406]
-                                          <-Reducer 3 [SIMPLE_EDGE]
-                                            SHUFFLE [RS_24]
-                                              PartitionCols:_col1
-                                              Merge Join Operator [MERGEJOIN_360] (rows=696954748 width=88)
-                                                Conds:RS_21._col0=RS_391._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
-                                              <-Map 12 [SIMPLE_EDGE] vectorized
-                                                SHUFFLE [RS_391]
-                                                  PartitionCols:_col0
-                                                   Please refer to the previous Select Operator [SEL_390]
-                                              <-Reducer 2 [SIMPLE_EDGE]
-                                                SHUFFLE [RS_21]
-                                                  PartitionCols:_col0
-                                                  Merge Join Operator [MERGEJOIN_359] (rows=633595212 width=88)
-                                                    Conds:RS_447._col1, _col4=RS_450._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
-                                                  <-Map 1 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_447]
-                                                      PartitionCols:_col1, _col4
-                                                      Select Operator [SEL_446] (rows=575995635 width=88)
-                                                        Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
-                                                        Filter Operator [FIL_445] (rows=575995635 width=88)
-                                                          predicate:((ss_item_sk BETWEEN DynamicValue(RS_25_item_i_item_sk_min) AND DynamicValue(RS_25_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_25_item_i_item_sk_bloom_filter))) and (ss_promo_sk BETWEEN DynamicValue(RS_28_promotion_p_promo_sk_min) AND DynamicValue(RS_28_promotion_p_promo_sk_max) and in_bloom_filter(ss_promo_sk, DynamicValue(RS_28_promotion_p_promo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_22_date_dim_d_date_sk_min) AND DynamicValue(RS_22_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_22_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_31_store_s_store_sk_min) AND DynamicValue(RS_31_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_31_store_s_store_sk_bloom_filter))) and ss_item_sk is not null and ss_promo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null)
-                                                          TableScan [TS_0] (rows=575995635 width=88)
-                                                            default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_ext_sales_price","ss_net_profit"]
-                                                          <-Reducer 13 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_404]
-                                                              Group By Operator [GBY_403] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_400]
-                                                                  Group By Operator [GBY_397] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_392] (rows=8116 width=1119)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_390]
-                                                          <-Reducer 27 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_420]
-                                                              Group By Operator [GBY_419] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_416]
-                                                                  Group By Operator [GBY_413] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_408] (rows=154000 width=1436)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_406]
-                                                          <-Reducer 31 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_436]
-                                                              Group By Operator [GBY_435] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_432]
-                                                                  Group By Operator [GBY_429] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_424] (rows=1150 width=1179)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_422]
-                                                          <-Reducer 35 [BROADCAST_EDGE] vectorized
-                                                            BROADCAST [RS_444]
-                                                              Group By Operator [GBY_443] (rows=1 width=12)
-                                                                Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
-                                                              <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized
-                                                                SHUFFLE [RS_442]
-                                                                  Group By Operator [GBY_441] (rows=1 width=12)
-                                                                    Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
-                                                                    Select Operator [SEL_440] (rows=1704 width=1910)
-                                                                      Output:["_col0"]
-                                                                       Please refer to the previous Select Operator [SEL_438]
-                                                  <-Map 11 [SIMPLE_EDGE] vectorized
-                                                    SHUFFLE [RS_450]
-                                                      PartitionCols:_col0, _col1
-                                                      Select Operator [SEL_449] (rows=57591150 width=77)
-                                                        Output:["_col0","_col1","_col2","_col3"]
-                                                        Filter Operator [FIL_448] (rows=57591150 width=77)
-                                                          predicate:sr_item_sk is not null
-                                                          TableScan [TS_3] (rows=57591150 width=77)
-                                                            default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number","sr_return_amt","sr_net_loss"]
+                        Top N Key Operator [TNK_457] (rows=811687572 width=108)
+                          keys:_col0, _col1, 0L,sort order:+++,top n:100
+                          Select Operator [SEL_456] (rows=463823414 width=88)
+                            Output:["_col0","_col1","_col2","_col3","_col4"]
+                            Group By Operator [GBY_455] (rows=463823414 width=88)
+                              Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0
+                            <-Reducer 6 [SIMPLE_EDGE]
+                              SHUFFLE [RS_36]
+                                PartitionCols:_col0
+                                Group By Operator [GBY_35] (rows=927646829 width=88)
+                                  Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col0
+                                  Select Operator [SEL_33] (rows=927646829 width=88)
+                                    Output:["_col0","_col1","_col2","_col3"]
+                                    Merge Join Operator [MERGEJOIN_364] (rows=927646829 width=88)
+                                      Conds:RS_30._col2=RS_443._col0(Inner),Output:["_col5","_col6","_col9","_col10","_col18"]
+                                    <-Map 34 [SIMPLE_EDGE] vectorized
+                                      SHUFFLE [RS_443]
+                                        PartitionCols:_col0
+                                        Select Operator [SEL_442] (rows=1704 width=1910)
+                                          Output:["_col0","_col1"]
+                                          Filter Operator [FIL_441] (rows=1704 width=1910)
+                                            predicate:s_store_sk is not null
+                                            TableScan [TS_15] (rows=1704 width=1910)
+                                              default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"]
+                                    <-Reducer 5 [SIMPLE_EDGE]
+                                      SHUFFLE [RS_30]
+                                        PartitionCols:_col2
+                                        Merge Join Operator [MERGEJOIN_363] (rows=843315281 width=88)
+                                          Conds:RS_27._col3=RS_427._col0(Inner),Output:["_col2","_col5","_col6","_col9","_col10"]
+                                        <-Map 30 [SIMPLE_EDGE] vectorized
+                                          SHUFFLE [RS_427]
+                                            PartitionCols:_col0
+                                             Please refer to the previous Select Operator [SEL_426]
+                                        <-Reducer 4 [SIMPLE_EDGE]
+                                          SHUFFLE [RS_27]
+                                            PartitionCols:_col3
+                                            Merge Join Operator [MERGEJOIN_362] (rows=766650239 width=88)
+                                              Conds:RS_24._col1=RS_411._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col9","_col10"]
+                                            <-Map 26 [SIMPLE_EDGE] vectorized
+                                              SHUFFLE [RS_411]
+                                                PartitionCols:_col0
+                                                 Please refer to the previous Select Operator [SEL_410]
+                                            <-Reducer 3 [SIMPLE_EDGE]
+                                              SHUFFLE [RS_24]
+                                                PartitionCols:_col1
+                                                Merge Join Operator [MERGEJOIN_361] (rows=696954748 width=88)
+                                                  Conds:RS_21._col0=RS_395._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
+                                                <-Map 12 [SIMPLE_EDGE] vectorized
+                                                  SHUFFLE [RS_395]
+                                                    PartitionCols:_col0
+                                                     Please refer to the previous Select Operator [SEL_394]
+                                                <-Reducer 2 [SIMPLE_EDGE]
+                                                  SHUFFLE [RS_21]
+                                                    PartitionCols:_col0
+                                                    Merge Join Operator [MERGEJOIN_360] (rows=633595212 width=88)
+                                                      Conds:RS_451._col1, _col4=RS_454._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"]
+                                                    <-Map 1 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_451]
+                                                        PartitionCols:_col1, _col4
+                                                        Select Operator [SEL_450] (rows=575995635 width=88)
+                                                          Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+                                                          Filter Operator [FIL_449] (rows=575995635 width=88)
+                                                            predicate:((ss_item_sk BETWEEN DynamicValue(RS_25_item_i_item_sk_min) AND DynamicValue(RS_25_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_25_item_i_item_sk_bloom_filter))) and (ss_promo_sk BETWEEN DynamicValue(RS_28_promotion_p_promo_sk_min) AND DynamicValue(RS_28_promotion_p_promo_sk_max) and in_bloom_filter(ss_promo_sk, DynamicValue(RS_28_promotion_p_promo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_22_date_dim_d_date_sk_min) AND DynamicValue(RS_22_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_22_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_31_store_s_store_sk_min) AND DynamicValue(RS_31_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_31_store_s_store_sk_bloom_filter))) and ss_item_sk is not null and ss_promo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null)
+                                                            TableScan [TS_0] (rows=575995635 width=88)
+                                                              default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_ext_sales_price","ss_net_profit"]
+                                                            <-Reducer 13 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_408]
+                                                                Group By Operator [GBY_407] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_404]
+                                                                    Group By Operator [GBY_401] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_396] (rows=8116 width=1119)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_394]
+                                                            <-Reducer 27 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_424]
+                                                                Group By Operator [GBY_423] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_420]
+                                                                    Group By Operator [GBY_417] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_412] (rows=154000 width=1436)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_410]
+                                                            <-Reducer 31 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_440]
+                                                                Group By Operator [GBY_439] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_436]
+                                                                    Group By Operator [GBY_433] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_428] (rows=1150 width=1179)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_426]
+                                                            <-Reducer 35 [BROADCAST_EDGE] vectorized
+                                                              BROADCAST [RS_448]
+                                                                Group By Operator [GBY_447] (rows=1 width=12)
+                                                                  Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
+                                                                <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized
+                                                                  SHUFFLE [RS_446]
+                                                                    Group By Operator [GBY_445] (rows=1 width=12)
+                                                                      Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"]
+                                                                      Select Operator [SEL_444] (rows=1704 width=1910)
+                                                                        Output:["_col0"]
+                                                                         Please refer to the previous Select Operator [SEL_442]
+                                                    <-Map 11 [SIMPLE_EDGE] vectorized
+                                                      SHUFFLE [RS_454]
+                                                        PartitionCols:_col0, _col1
+                                                        Select Operator [SEL_453] (rows=57591150 width=77)
+                                                          Output:["_col0","_col1","_col2","_col3"]
+                                                          Filter Operator [FIL_452] (rows=57591150 width=77)
+                                                            predicate:sr_item_sk is not null
+                                                            TableScan [TS_3] (rows=57591150 width=77)
+                                                              default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number","sr_return_amt","sr_net_loss"]