http://git-wip-us.apache.org/repos/asf/hive/blob/5553c59e/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out index 61342fa..daeda3f 100644 --- a/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out @@ -1,4 +1,4 @@ -Warning: Shuffle Join MERGEJOIN[401][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 22' is a cross product +Warning: Shuffle Join MERGEJOIN[406][tables = [$hdt$_3, $hdt$_4]] in Stage 'Reducer 20' is a cross product PREHOOK: query: explain with ss_items as (select i_item_id item_id @@ -142,252 +142,252 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 17 (BROADCAST_EDGE) -Map 26 <- Reducer 18 (BROADCAST_EDGE) -Map 27 <- Reducer 19 (BROADCAST_EDGE) -Reducer 10 <- Reducer 16 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (SIMPLE_EDGE) -Reducer 12 <- Map 27 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) -Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 16 <- Map 15 (SIMPLE_EDGE), Reducer 24 (ONE_TO_ONE_EDGE) -Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) -Reducer 18 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) -Reducer 19 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) -Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) -Reducer 22 <- Map 25 (CUSTOM_SIMPLE_EDGE), Reducer 21 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 25 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) -Reducer 24 <- Reducer 23 (SIMPLE_EDGE) -Reducer 3 <- Reducer 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 11 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) -Reducer 6 <- Reducer 14 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) -Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 9 <- Map 26 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Map 24 <- Reducer 9 (BROADCAST_EDGE) +Map 26 <- Reducer 13 (BROADCAST_EDGE) +Map 27 <- Reducer 17 (BROADCAST_EDGE) +Reducer 10 <- Map 26 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 11 <- Map 25 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 27 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 15 <- Map 25 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 22 (ONE_TO_ONE_EDGE) +Reducer 20 <- Map 23 (CUSTOM_SIMPLE_EDGE), Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Map 23 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 3 <- Map 24 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 25 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 16 (ONE_TO_ONE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 7 vectorized - File Output Operator [FS_464] - Limit [LIM_463] (rows=1 width=884) + Reducer 8 vectorized + File Output Operator [FS_470] + Limit [LIM_469] (rows=1 width=884) Number of rows:100 - Select Operator [SEL_462] (rows=1 width=884) + Select Operator [SEL_468] (rows=1 width=884) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 6 [SIMPLE_EDGE] - SHUFFLE [RS_160] - Select Operator [SEL_159] (rows=1 width=884) + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_157] + Select Operator [SEL_156] (rows=1 width=884) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_155] (rows=1 width=660) + Filter Operator [FIL_152] (rows=1 width=660) predicate:(_col1 BETWEEN _col6 AND _col7 and _col3 BETWEEN _col6 AND _col7 and _col5 BETWEEN (0.9 * _col1) AND (1.1 * _col1) and _col5 BETWEEN (0.9 * _col3) AND (1.1 * _col3)) - Merge Join Operator [MERGEJOIN_416] (rows=1 width=660) - Conds:RS_152._col0=RS_461._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7"] - <-Reducer 14 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_461] + Merge Join Operator [MERGEJOIN_422] (rows=384 width=660) + Conds:RS_149._col0=RS_467._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7"] + <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_467] PartitionCols:_col0 - Select Operator [SEL_460] (rows=69 width=436) + Select Operator [SEL_466] (rows=15768 width=436) Output:["_col0","_col1","_col2","_col3"] - Group By Operator [GBY_459] (rows=69 width=212) + Group By Operator [GBY_465] (rows=15768 width=212) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_144] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_141] PartitionCols:_col0 - Group By Operator [GBY_143] (rows=69 width=212) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_414] (rows=31537 width=100) - Conds:RS_139._col0=RS_140._col0(Inner),Output:["_col2","_col4"] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_140] + Group By Operator [GBY_140] (rows=15768 width=212) + Output:["_col0","_col1"],aggregations:["sum(_col5)"],keys:_col7 + Merge Join Operator [MERGEJOIN_420] (rows=31537 width=100) + Conds:RS_136._col4=RS_450._col0(Inner),Output:["_col5","_col7"] + <-Map 25 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_450] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_403] (rows=2 width=4) - Conds:RS_419._col1=RS_435._col0(Inner),Output:["_col0"] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_419] - PartitionCols:_col1 - Select Operator [SEL_418] (rows=73049 width=98) - Output:["_col0","_col1"] - Filter Operator [FIL_417] (rows=73049 width=98) - predicate:d_date is not null - TableScan [TS_5] (rows=73049 width=98) - default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_date"] - <-Reducer 24 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_435] + Select Operator [SEL_447] (rows=462000 width=104) + Output:["_col0","_col1"] + TableScan [TS_32] (rows=462000 width=104) + default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_136] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_419] (rows=31537 width=4) + Conds:RS_133._col0=RS_464._col0(Inner),Output:["_col4","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_133] PartitionCols:_col0 - Group By Operator [GBY_434] (rows=2 width=94) - Output:["_col0"],keys:KEY._col0 - <-Reducer 23 [SIMPLE_EDGE] - SHUFFLE [RS_31] + Merge Join Operator [MERGEJOIN_408] (rows=2 width=4) + Conds:RS_425._col1=RS_441._col0(Inner),Output:["_col0"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_425] + PartitionCols:_col1 + Select Operator [SEL_424] (rows=73049 width=98) + Output:["_col0","_col1"] + Filter Operator [FIL_423] (rows=73049 width=98) + predicate:d_date is not null + TableScan [TS_0] (rows=73049 width=98) + default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_date"] + <-Reducer 22 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_441] PartitionCols:_col0 - Group By Operator [GBY_30] (rows=2 width=94) - Output:["_col0"],keys:_col2 - Merge Join Operator [MERGEJOIN_402] (rows=5 width=94) - Conds:RS_26._col1=RS_432._col1(Inner),Output:["_col2"] - <-Map 25 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_432] - PartitionCols:_col1 - Select Operator [SEL_430] (rows=73049 width=98) - Output:["_col0","_col1"] - Filter Operator [FIL_428] (rows=73049 width=98) - predicate:(d_date is not null and d_week_seq is not null) - TableScan [TS_20] (rows=73049 width=98) - default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date","d_week_seq"] - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_26] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_401] (rows=1 width=4) - Conds:(Inner),Output:["_col1"] - <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_433] - Select Operator [SEL_431] (rows=1 width=4) - Output:["_col0"] - Filter Operator [FIL_429] (rows=1 width=98) - predicate:((d_date = '1998-02-19') and d_week_seq is not null) - Please refer to the previous TableScan [TS_20] - <-Reducer 21 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_427] - Select Operator [SEL_426] (rows=1 width=8) - Filter Operator [FIL_425] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_424] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_423] - Group By Operator [GBY_422] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_421] (rows=1 width=94) - Filter Operator [FIL_420] (rows=1 width=94) - predicate:(d_date = '1998-02-19') - TableScan [TS_8] (rows=73049 width=94) - default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date"] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_139] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_408] (rows=143966864 width=215) - Conds:RS_458._col1=RS_444._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_444] - PartitionCols:_col0 - Select Operator [SEL_441] (rows=462000 width=104) - Output:["_col0","_col1"] - TableScan [TS_3] (rows=462000 width=104) - default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_item_id"] + Group By Operator [GBY_440] (rows=2 width=94) + Output:["_col0"],keys:KEY._col0 + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col0 + Group By Operator [GBY_25] (rows=2 width=94) + Output:["_col0"],keys:_col2 + Merge Join Operator [MERGEJOIN_407] (rows=5 width=94) + Conds:RS_21._col1=RS_438._col1(Inner),Output:["_col2"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_438] + PartitionCols:_col1 + Select Operator [SEL_436] (rows=73049 width=98) + Output:["_col0","_col1"] + Filter Operator [FIL_434] (rows=73049 width=98) + predicate:(d_date is not null and d_week_seq is not null) + TableScan [TS_15] (rows=73049 width=98) + default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date","d_week_seq"] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_406] (rows=1 width=4) + Conds:(Inner),Output:["_col1"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_439] + Select Operator [SEL_437] (rows=1 width=4) + Output:["_col0"] + Filter Operator [FIL_435] (rows=1 width=98) + predicate:((d_date = '1998-02-19') and d_week_seq is not null) + Please refer to the previous TableScan [TS_15] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_433] + Select Operator [SEL_432] (rows=1 width=8) + Filter Operator [FIL_431] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_430] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_429] + Group By Operator [GBY_428] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_427] (rows=1 width=94) + Filter Operator [FIL_426] (rows=1 width=94) + predicate:(d_date = '1998-02-19') + TableScan [TS_3] (rows=73049 width=94) + default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date"] <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_458] - PartitionCols:_col1 - Select Operator [SEL_457] (rows=143966864 width=119) + SHUFFLE [RS_464] + PartitionCols:_col0 + Select Operator [SEL_463] (rows=143966864 width=119) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_456] (rows=143966864 width=119) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_140_date_dim_d_date_sk_min) AND DynamicValue(RS_140_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_140_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) - TableScan [TS_98] (rows=144002668 width=119) + Filter Operator [FIL_462] (rows=143966864 width=119) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_133_date_dim_d_date_sk_min) AND DynamicValue(RS_133_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_133_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_125] (rows=144002668 width=119) default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk","ws_ext_sales_price"] - <-Reducer 19 [BROADCAST_EDGE] vectorized - BROADCAST [RS_455] - Group By Operator [GBY_454] (rows=1 width=12) + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_461] + Group By Operator [GBY_460] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 16 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_360] - Group By Operator [GBY_359] (rows=1 width=12) + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_386] + Group By Operator [GBY_385] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_358] (rows=2 width=4) + Select Operator [SEL_384] (rows=2 width=4) Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_403] - <-Reducer 5 [ONE_TO_ONE_EDGE] - FORWARD [RS_152] + Please refer to the previous Merge Join Operator [MERGEJOIN_408] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_149] PartitionCols:_col0 - Filter Operator [FIL_150] (rows=1 width=324) + Filter Operator [FIL_147] (rows=384 width=324) predicate:(_col1 BETWEEN (0.9 * _col3) AND (1.1 * _col3) and _col3 BETWEEN (0.9 * _col1) AND (1.1 * _col1)) - Merge Join Operator [MERGEJOIN_415] (rows=68 width=324) - Conds:RS_446._col0=RS_453._col0(Inner),Output:["_col0","_col1","_col3"] - <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_453] + Merge Join Operator [MERGEJOIN_421] (rows=31163 width=324) + Conds:RS_452._col0=RS_459._col0(Inner),Output:["_col0","_col1","_col3"] + <-Reducer 12 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_459] PartitionCols:_col0 - Group By Operator [GBY_452] (rows=69 width=212) + Group By Operator [GBY_458] (rows=60249 width=212) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 10 [SIMPLE_EDGE] - SHUFFLE [RS_95] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_93] PartitionCols:_col0 - Group By Operator [GBY_94] (rows=69 width=212) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_413] (rows=120498 width=100) - Conds:RS_90._col0=RS_91._col0(Inner),Output:["_col2","_col4"] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_91] + Group By Operator [GBY_92] (rows=60249 width=212) + Output:["_col0","_col1"],aggregations:["sum(_col5)"],keys:_col7 + Merge Join Operator [MERGEJOIN_415] (rows=120498 width=100) + Conds:RS_88._col4=RS_449._col0(Inner),Output:["_col5","_col7"] + <-Map 25 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_449] PartitionCols:_col0 - Please refer to the previous Merge Join Operator [MERGEJOIN_403] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_90] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_404] (rows=550076554 width=210) - Conds:RS_451._col1=RS_443._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_443] + Please refer to the previous Select Operator [SEL_447] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_88] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_414] (rows=120498 width=4) + Conds:RS_85._col0=RS_457._col0(Inner),Output:["_col4","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_85] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_441] + Please refer to the previous Merge Join Operator [MERGEJOIN_408] <-Map 26 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_451] - PartitionCols:_col1 - Select Operator [SEL_450] (rows=550076554 width=114) + SHUFFLE [RS_457] + PartitionCols:_col0 + Select Operator [SEL_456] (rows=550076554 width=114) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_449] (rows=550076554 width=114) - predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_91_date_dim_d_date_sk_min) AND DynamicValue(RS_91_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_91_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) - TableScan [TS_49] (rows=575995635 width=114) + Filter Operator [FIL_455] (rows=550076554 width=114) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_85_date_dim_d_date_sk_min) AND DynamicValue(RS_85_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_85_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_77] (rows=575995635 width=114) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_ext_sales_price"] - <-Reducer 18 [BROADCAST_EDGE] vectorized - BROADCAST [RS_448] - Group By Operator [GBY_447] (rows=1 width=12) + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_454] + Group By Operator [GBY_453] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 16 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_314] - Group By Operator [GBY_313] (rows=1 width=12) + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_340] + Group By Operator [GBY_339] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_312] (rows=2 width=4) + Select Operator [SEL_338] (rows=2 width=4) Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_403] - <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_446] + Please refer to the previous Merge Join Operator [MERGEJOIN_408] + <-Reducer 5 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_452] PartitionCols:_col0 - Group By Operator [GBY_445] (rows=68 width=212) + Group By Operator [GBY_451] (rows=31163 width=212) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_46] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_45] PartitionCols:_col0 - Group By Operator [GBY_45] (rows=68 width=212) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_412] (rows=62327 width=100) - Conds:RS_41._col0=RS_42._col0(Inner),Output:["_col2","_col4"] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_42] - PartitionCols:_col0 - Please refer to the previous Merge Join Operator [MERGEJOIN_403] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_41] + Group By Operator [GBY_44] (rows=31163 width=212) + Output:["_col0","_col1"],aggregations:["sum(_col5)"],keys:_col7 + Merge Join Operator [MERGEJOIN_410] (rows=62327 width=100) + Conds:RS_40._col4=RS_448._col0(Inner),Output:["_col5","_col7"] + <-Map 25 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_448] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_400] (rows=286549727 width=215) - Conds:RS_440._col1=RS_442._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_442] + Please refer to the previous Select Operator [SEL_447] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_409] (rows=62327 width=4) + Conds:RS_37._col0=RS_446._col0(Inner),Output:["_col4","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_37] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_441] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_440] - PartitionCols:_col1 - Select Operator [SEL_439] (rows=286549727 width=119) + Please refer to the previous Merge Join Operator [MERGEJOIN_408] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_446] + PartitionCols:_col0 + Select Operator [SEL_445] (rows=286549727 width=119) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_438] (rows=286549727 width=119) - predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_42_date_dim_d_date_sk_min) AND DynamicValue(RS_42_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_42_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) - TableScan [TS_0] (rows=287989836 width=119) + Filter Operator [FIL_444] (rows=286549727 width=119) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_37_date_dim_d_date_sk_min) AND DynamicValue(RS_37_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_37_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_29] (rows=287989836 width=119) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_item_sk","cs_ext_sales_price"] - <-Reducer 17 [BROADCAST_EDGE] vectorized - BROADCAST [RS_437] - Group By Operator [GBY_436] (rows=1 width=12) + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_443] + Group By Operator [GBY_442] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 16 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_264] - Group By Operator [GBY_263] (rows=1 width=12) + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_290] + Group By Operator [GBY_289] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_262] (rows=2 width=4) + Select Operator [SEL_288] (rows=2 width=4) Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_403] + Please refer to the previous Merge Join Operator [MERGEJOIN_408]
http://git-wip-us.apache.org/repos/asf/hive/blob/5553c59e/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out index 74bec5c..14528e2 100644 --- a/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out @@ -1,4 +1,4 @@ -Warning: Map Join MAPJOIN[170][bigTable=?] in task 'Reducer 15' is a cross product +Warning: Map Join MAPJOIN[170][bigTable=?] in task 'Map 8' is a cross product PREHOOK: query: explain select a.ca_state state, count(*) cnt from customer_address a @@ -65,172 +65,157 @@ Plan optimized by CBO. Vertex dependency in root stage Map 1 <- Reducer 3 (BROADCAST_EDGE) -Map 16 <- Reducer 15 (BROADCAST_EDGE) -Map 6 <- Map 1 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE) -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) -Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 5 (BROADCAST_EDGE) -Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Map 11 <- Reducer 15 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Map 6 <- Map 1 (BROADCAST_EDGE) +Map 8 <- Reducer 5 (BROADCAST_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (SIMPLE_EDGE) Reducer 3 <- Map 2 (SIMPLE_EDGE) Reducer 4 <- Map 2 (SIMPLE_EDGE) Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) -Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 8 <- Map 16 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 8 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 9 <- Map 10 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 10 vectorized - File Output Operator [FS_232] - Limit [LIM_231] (rows=1 width=94) + Reducer 13 vectorized + File Output Operator [FS_231] + Limit [LIM_230] (rows=1 width=94) Number of rows:100 - Select Operator [SEL_230] (rows=1 width=94) + Select Operator [SEL_229] (rows=1 width=94) Output:["_col0","_col1"] - <-Reducer 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_229] - Filter Operator [FIL_228] (rows=1 width=94) + <-Reducer 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_228] + Filter Operator [FIL_227] (rows=1 width=94) predicate:(_col1 >= 10L) - Group By Operator [GBY_227] (rows=1 width=94) + Group By Operator [GBY_226] (rows=1 width=94) Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_68] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_225] PartitionCols:_col0 - Group By Operator [GBY_67] (rows=1 width=94) - Output:["_col0","_col1"],aggregations:["count()"],keys:_col9 - Merge Join Operator [MERGEJOIN_173] (rows=316 width=86) - Conds:RS_63._col4=RS_212._col0(Inner),Output:["_col9"] - <-Map 16 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_212] - PartitionCols:_col0 - Select Operator [SEL_211] (rows=154000 width=227) - Output:["_col0"] - Filter Operator [FIL_210] (rows=154000 width=227) - predicate:(_col4 > _col1) - Map Join Operator [MAPJOIN_209] (rows=462000 width=227) - Conds:RS_206._col0=SEL_208._col2(Inner),HybridGraceHashJoin:true,Output:["_col1","_col3","_col4"] - <-Reducer 15 [BROADCAST_EDGE] vectorized - BROADCAST [RS_206] - PartitionCols:_col0 - Map Join Operator [MAPJOIN_205] (rows=10 width=202) - Conds:(Inner),Output:["_col0","_col1"] - <-Reducer 5 [BROADCAST_EDGE] vectorized - BROADCAST [RS_202] - Select Operator [SEL_201] (rows=1 width=8) - Filter Operator [FIL_200] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_199] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_198] - Group By Operator [GBY_197] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_196] (rows=25 width=4) - Group By Operator [GBY_195] (rows=25 width=4) - Output:["_col0"],keys:KEY._col0 - <-Map 2 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_185] - PartitionCols:_col0 - Group By Operator [GBY_183] (rows=25 width=4) - Output:["_col0"],keys:d_month_seq - Select Operator [SEL_181] (rows=50 width=12) - Output:["d_month_seq"] - Filter Operator [FIL_179] (rows=50 width=12) - predicate:((d_moy = 2) and (d_year = 2000)) - TableScan [TS_3] (rows=73049 width=12) - default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_month_seq","d_year","d_moy"] - <-Select Operator [SEL_204] (rows=10 width=202) - Output:["_col0","_col1"] - Group By Operator [GBY_203] (rows=10 width=210) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_194] - PartitionCols:_col0 - Group By Operator [GBY_193] (rows=10 width=210) - Output:["_col0","_col1","_col2"],aggregations:["sum(i_current_price)","count(i_current_price)"],keys:i_category - Filter Operator [FIL_192] (rows=462000 width=201) - predicate:i_category is not null - TableScan [TS_22] (rows=462000 width=201) - default@item,j,Tbl:COMPLETE,Col:COMPLETE,Output:["i_current_price","i_category"] - <-Select Operator [SEL_208] (rows=462000 width=205) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_207] (rows=462000 width=205) - predicate:i_category is not null - TableScan [TS_43] (rows=462000 width=205) - default@item,i,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_category"] - <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_63] + Group By Operator [GBY_224] (rows=1 width=94) + Output:["_col0","_col1"],aggregations:["count()"],keys:_col10 + Map Join Operator [MAPJOIN_223] (rows=1 width=86) + Conds:RS_63._col4=SEL_222._col0(Inner),HybridGraceHashJoin:true,Output:["_col10"] + <-Reducer 7 [BROADCAST_EDGE] + BROADCAST [RS_63] PartitionCols:_col4 - Merge Join Operator [MERGEJOIN_172] (rows=7192227 width=90) - Conds:RS_221._col5=RS_61._col0(Inner),Output:["_col4","_col9"] + Merge Join Operator [MERGEJOIN_173] (rows=4923 width=90) + Conds:RS_197._col5=RS_61._col0(Inner),Output:["_col4","_col10"] <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_221] + SHUFFLE [RS_197] PartitionCols:_col5 - Map Join Operator [MAPJOIN_220] (rows=7192227 width=4) - Conds:RS_191._col0=SEL_219._col0(Inner),HybridGraceHashJoin:true,Output:["_col4","_col5"] + Map Join Operator [MAPJOIN_196] (rows=7192227 width=4) + Conds:RS_193._col0=SEL_195._col0(Inner),HybridGraceHashJoin:true,Output:["_col4","_col5"] <-Map 1 [BROADCAST_EDGE] vectorized - BROADCAST [RS_191] + BROADCAST [RS_193] PartitionCols:_col0 - Map Join Operator [MAPJOIN_190] (rows=660 width=4) - Conds:SEL_189._col1=RS_187._col0(Inner),HybridGraceHashJoin:true,Output:["_col0"] + Map Join Operator [MAPJOIN_192] (rows=660 width=4) + Conds:SEL_191._col1=RS_189._col0(Inner),HybridGraceHashJoin:true,Output:["_col0"] <-Reducer 3 [BROADCAST_EDGE] vectorized - BROADCAST [RS_187] + BROADCAST [RS_189] PartitionCols:_col0 - Group By Operator [GBY_186] (rows=25 width=4) + Group By Operator [GBY_188] (rows=25 width=4) Output:["_col0"],keys:KEY._col0 <-Map 2 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_184] + SHUFFLE [RS_186] PartitionCols:_col0 - Group By Operator [GBY_182] (rows=25 width=4) + Group By Operator [GBY_184] (rows=25 width=4) Output:["_col0"],keys:d_month_seq - Select Operator [SEL_180] (rows=50 width=12) + Select Operator [SEL_182] (rows=50 width=12) Output:["d_month_seq"] - Filter Operator [FIL_178] (rows=50 width=12) + Filter Operator [FIL_180] (rows=50 width=12) predicate:((d_moy = 2) and (d_year = 2000) and d_month_seq is not null) - Please refer to the previous TableScan [TS_3] - <-Select Operator [SEL_189] (rows=73049 width=8) + TableScan [TS_3] (rows=73049 width=12) + default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_month_seq","d_year","d_moy"] + <-Select Operator [SEL_191] (rows=73049 width=8) Output:["_col0","_col1"] - Filter Operator [FIL_188] (rows=73049 width=8) + Filter Operator [FIL_190] (rows=73049 width=8) predicate:d_month_seq is not null TableScan [TS_0] (rows=73049 width=8) default@date_dim,d,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_month_seq"] - <-Select Operator [SEL_219] (rows=525327388 width=11) + <-Select Operator [SEL_195] (rows=525327388 width=11) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_218] (rows=525327388 width=11) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_64_i_i_item_sk_min) AND DynamicValue(RS_64_i_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_64_i_i_item_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + Filter Operator [FIL_194] (rows=525327388 width=11) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) TableScan [TS_10] (rows=575995635 width=11) default@store_sales,s,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk"] - <-Reducer 17 [BROADCAST_EDGE] vectorized - BROADCAST [RS_217] - Group By Operator [GBY_216] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_215] - Group By Operator [GBY_214] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_213] (rows=154000 width=4) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_211] - <-Reducer 12 [SIMPLE_EDGE] + <-Reducer 9 [SIMPLE_EDGE] SHUFFLE [RS_61] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_169] (rows=80000000 width=90) - Conds:RS_224._col1=RS_226._col0(Inner),Output:["_col0","_col3"] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_224] - PartitionCols:_col1 - Select Operator [SEL_223] (rows=80000000 width=8) - Output:["_col0","_col1"] - Filter Operator [FIL_222] (rows=80000000 width=8) - predicate:c_current_addr_sk is not null - TableScan [TS_13] (rows=80000000 width=8) - default@customer,c,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_addr_sk"] - <-Map 13 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_226] + Merge Join Operator [MERGEJOIN_171] (rows=80000000 width=90) + Conds:RS_209._col1=RS_211._col0(Inner),Output:["_col0","_col4"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_211] PartitionCols:_col0 - Select Operator [SEL_225] (rows=40000000 width=90) + Select Operator [SEL_210] (rows=40000000 width=90) Output:["_col0","_col1"] - TableScan [TS_16] (rows=40000000 width=90) + TableScan [TS_30] (rows=40000000 width=90) default@customer_address,a,Tbl:COMPLETE,Col:COMPLETE,Output:["ca_address_sk","ca_state"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_209] + PartitionCols:_col1 + Map Join Operator [MAPJOIN_208] (rows=80000000 width=8) + Conds:(Inner),Output:["_col0","_col1"] + <-Reducer 5 [BROADCAST_EDGE] vectorized + BROADCAST [RS_205] + Select Operator [SEL_204] (rows=1 width=8) + Filter Operator [FIL_203] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_202] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_201] + Group By Operator [GBY_200] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_199] (rows=25 width=4) + Group By Operator [GBY_198] (rows=25 width=4) + Output:["_col0"],keys:KEY._col0 + <-Map 2 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col0 + Group By Operator [GBY_185] (rows=25 width=4) + Output:["_col0"],keys:d_month_seq + Select Operator [SEL_183] (rows=50 width=12) + Output:["d_month_seq"] + Filter Operator [FIL_181] (rows=50 width=12) + predicate:((d_moy = 2) and (d_year = 2000)) + Please refer to the previous TableScan [TS_3] + <-Select Operator [SEL_207] (rows=80000000 width=8) + Output:["_col0","_col1"] + Filter Operator [FIL_206] (rows=80000000 width=8) + predicate:c_current_addr_sk is not null + TableScan [TS_13] (rows=80000000 width=8) + default@customer,c,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_current_addr_sk"] + <-Select Operator [SEL_222] (rows=154000 width=227) + Output:["_col0"] + Filter Operator [FIL_221] (rows=154000 width=227) + predicate:(_col1 > _col4) + Map Join Operator [MAPJOIN_220] (rows=462000 width=227) + Conds:SEL_219._col2=RS_217._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col4"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_217] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=10 width=202) + Output:["_col0","_col1"] + Group By Operator [GBY_215] (rows=10 width=210) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_214] + PartitionCols:_col0 + Group By Operator [GBY_213] (rows=10 width=210) + Output:["_col0","_col1","_col2"],aggregations:["sum(i_current_price)","count(i_current_price)"],keys:i_category + Filter Operator [FIL_212] (rows=462000 width=201) + predicate:i_category is not null + TableScan [TS_42] (rows=462000 width=201) + default@item,j,Tbl:COMPLETE,Col:COMPLETE,Output:["i_current_price","i_category"] + <-Select Operator [SEL_219] (rows=462000 width=205) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_218] (rows=462000 width=205) + predicate:i_category is not null + TableScan [TS_39] (rows=462000 width=205) + default@item,i,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_current_price","i_category"]