Repository: hive Updated Branches: refs/heads/master 8f804af05 -> a16e8e9e4
HIVE-18984: Make time window configurable per materialized view (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a16e8e9e Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a16e8e9e Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a16e8e9e Branch: refs/heads/master Commit: a16e8e9e4d1111d504051b836d43ed795de054b3 Parents: 8f804af Author: Jesus Camacho Rodriguez <jcama...@apache.org> Authored: Fri Mar 16 15:48:17 2018 -0700 Committer: Jesus Camacho Rodriguez <jcama...@apache.org> Committed: Tue Mar 20 12:56:17 2018 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/hive/conf/Constants.java | 2 + .../org/apache/hadoop/hive/conf/HiveConf.java | 2 +- .../apache/hadoop/hive/ql/metadata/Hive.java | 22 +- .../hadoop/hive/ql/parse/CalcitePlanner.java | 2 +- ...terialized_view_create_rewrite_time_window.q | 99 +++ ...alized_view_create_rewrite_time_window.q.out | 830 +++++++++++++++++++ 6 files changed, 949 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/a16e8e9e/common/src/java/org/apache/hadoop/hive/conf/Constants.java ---------------------------------------------------------------------- diff --git a/common/src/java/org/apache/hadoop/hive/conf/Constants.java b/common/src/java/org/apache/hadoop/hive/conf/Constants.java index 10aaee1..60a9b9e 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/Constants.java +++ b/common/src/java/org/apache/hadoop/hive/conf/Constants.java @@ -49,4 +49,6 @@ public class Constants { public static final String HIVE_SERVER2_JOB_CREDSTORE_PASSWORD_ENVVAR = "HIVE_JOB_CREDSTORE_PASSWORD"; public static final String HADOOP_CREDENTIAL_PASSWORD_ENVVAR = "HADOOP_CREDSTORE_PASSWORD"; public static final String HADOOP_CREDENTIAL_PROVIDER_PATH_CONFIG = "hadoop.security.credential.provider.path"; + + public static final String MATERIALIZED_VIEW_REWRITING_TIME_WINDOW = "rewriting.time.window"; } http://git-wip-us.apache.org/repos/asf/hive/blob/a16e8e9e/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java ---------------------------------------------------------------------- diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index f8e715d..dd94d4d 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -4135,7 +4135,7 @@ public class HiveConf extends Configuration { return getSizeVar(this, var); } - private static TimeUnit getDefaultTimeUnit(ConfVars var) { + public static TimeUnit getDefaultTimeUnit(ConfVars var) { TimeUnit inputUnit = null; if (var.validator instanceof TimeValidator) { inputUnit = ((TimeValidator)var.validator).getTimeUnit(); http://git-wip-us.apache.org/repos/asf/hive/blob/a16e8e9e/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java index 5a7e297..da690b4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java @@ -24,6 +24,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import static org.apache.hadoop.hive.conf.Constants.MATERIALIZED_VIEW_REWRITING_TIME_WINDOW; import static org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.META_TABLE_STORAGE; import static org.apache.hadoop.hive.serde.serdeConstants.SERIALIZATION_FORMAT; import static org.apache.hadoop.hive.serde.serdeConstants.STRING_TYPE_NAME; @@ -74,6 +75,7 @@ import org.apache.hadoop.hive.common.StatsSetupConst; import org.apache.hadoop.hive.common.classification.InterfaceAudience.LimitedPrivate; import org.apache.hadoop.hive.common.classification.InterfaceStability.Unstable; import org.apache.hadoop.hive.common.log.InPlaceUpdate; +import org.apache.hadoop.hive.conf.Constants; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; import org.apache.hadoop.hive.io.HdfsUtils; @@ -1299,11 +1301,11 @@ public class Hive { * @return the list of materialized views available for rewriting * @throws HiveException */ - public List<RelOptMaterialization> getValidMaterializedViews() throws HiveException { - final long diff = + public List<RelOptMaterialization> getValidMaterializedViews(boolean materializedViewRebuild) throws HiveException { + final long defaultDiff = HiveConf.getTimeVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW, TimeUnit.MILLISECONDS); - final long minTime = System.currentTimeMillis() - diff; + final long currentTime = System.currentTimeMillis(); try { // Final result List<RelOptMaterialization> result = new ArrayList<>(); @@ -1326,9 +1328,17 @@ public class Hive { " ignored for rewriting as there was no information loaded in the invalidation cache"); continue; } + // Check if materialization defined its own invalidation time window + String timeWindowString = materializedViewTable.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW); + long diff = org.apache.commons.lang.StringUtils.isEmpty(timeWindowString) ? defaultDiff : + HiveConf.toTime(timeWindowString, + HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW), + TimeUnit.MILLISECONDS); + long invalidationTime = materializationInvalidationInfo.getInvalidationTime(); - // If the limit is not met, we do not add the materialized view - if (diff == 0L) { + // If the limit is not met, we do not add the materialized view. + // If we are doing a rebuild, we do not consider outdated materialized views either. + if (diff == 0L || materializedViewRebuild) { if (invalidationTime != 0L) { // If parameter is zero, materialized view cannot be outdated at all LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() + @@ -1336,7 +1346,7 @@ public class Hive { continue; } } else { - if (invalidationTime != 0 && minTime > invalidationTime) { + if (invalidationTime != 0 && invalidationTime > currentTime - diff) { LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() + " ignored for rewriting as its contents are outdated"); continue; http://git-wip-us.apache.org/repos/asf/hive/blob/a16e8e9e/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index 3520d90..92e2f3b 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -1547,7 +1547,7 @@ public class CalcitePlanner extends SemanticAnalyzer { // Add views to planner List<RelOptMaterialization> materializations = new ArrayList<>(); try { - materializations = Hive.get().getValidMaterializedViews(); + materializations = Hive.get().getValidMaterializedViews(rewrittenRebuild); // We need to use the current cluster for the scan operator on views, // otherwise the planner will throw an Exception (different planners) materializations = Lists.transform(materializations, http://git-wip-us.apache.org/repos/asf/hive/blob/a16e8e9e/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window.q b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window.q new file mode 100644 index 0000000..0755d39 --- /dev/null +++ b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window.q @@ -0,0 +1,99 @@ +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; +set hive.strict.checks.cartesian.product=false; +set hive.materializedview.rewriting=true; + +create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true'); + +insert into cmv_basetable values + (1, 'alfred', 10.30, 2), + (2, 'bob', 3.14, 3), + (2, 'bonnie', 172342.2, 3), + (3, 'calvin', 978.76, 3), + (3, 'charlie', 9.8, 1); + +analyze table cmv_basetable compute statistics for columns; + +create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true'); + +insert into cmv_basetable_2 values + (1, 'alfred', 10.30, 2), + (3, 'calvin', 978.76, 3); + +analyze table cmv_basetable_2 compute statistics for columns; + +-- CREATE VIEW WITH REWRITE DISABLED +EXPLAIN +CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS + SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS + SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +DESCRIBE FORMATTED cmv_mat_view; + +-- CANNOT USE THE VIEW, IT IS DISABLED FOR REWRITE +EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +insert into cmv_basetable_2 values + (3, 'charlie', 15.8, 1); + +analyze table cmv_basetable_2 compute statistics for columns; + +-- ENABLE FOR REWRITE +EXPLAIN +ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE; + +ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE; + +DESCRIBE FORMATTED cmv_mat_view; + +-- CAN USE THE MATERIALIZED VIEW, AS TIME WINDOW IS HUGE +-- WE GET OUTDATED RESULTS +EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +-- REBUILD +EXPLAIN +ALTER MATERIALIZED VIEW cmv_mat_view REBUILD; + +ALTER MATERIALIZED VIEW cmv_mat_view REBUILD; + +DESCRIBE FORMATTED cmv_mat_view; + +-- CAN USE IT AGAIN +EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c; + +drop materialized view cmv_mat_view; http://git-wip-us.apache.org/repos/asf/hive/blob/a16e8e9e/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out new file mode 100644 index 0000000..bfbac3f --- /dev/null +++ b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_time_window.q.out @@ -0,0 +1,830 @@ +PREHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true') +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@cmv_basetable +POSTHOOK: query: create table cmv_basetable (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true') +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@cmv_basetable +PREHOOK: query: insert into cmv_basetable values + (1, 'alfred', 10.30, 2), + (2, 'bob', 3.14, 3), + (2, 'bonnie', 172342.2, 3), + (3, 'calvin', 978.76, 3), + (3, 'charlie', 9.8, 1) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@cmv_basetable +POSTHOOK: query: insert into cmv_basetable values + (1, 'alfred', 10.30, 2), + (2, 'bob', 3.14, 3), + (2, 'bonnie', 172342.2, 3), + (3, 'calvin', 978.76, 3), + (3, 'charlie', 9.8, 1) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@cmv_basetable +POSTHOOK: Lineage: cmv_basetable.a SCRIPT [] +POSTHOOK: Lineage: cmv_basetable.b SCRIPT [] +POSTHOOK: Lineage: cmv_basetable.c SCRIPT [] +POSTHOOK: Lineage: cmv_basetable.d SCRIPT [] +PREHOOK: query: analyze table cmv_basetable compute statistics for columns +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable +PREHOOK: Output: default@cmv_basetable +#### A masked pattern was here #### +POSTHOOK: query: analyze table cmv_basetable compute statistics for columns +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable +POSTHOOK: Output: default@cmv_basetable +#### A masked pattern was here #### +PREHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true') +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@cmv_basetable_2 +POSTHOOK: query: create table cmv_basetable_2 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true') +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@cmv_basetable_2 +PREHOOK: query: insert into cmv_basetable_2 values + (1, 'alfred', 10.30, 2), + (3, 'calvin', 978.76, 3) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@cmv_basetable_2 +POSTHOOK: query: insert into cmv_basetable_2 values + (1, 'alfred', 10.30, 2), + (3, 'calvin', 978.76, 3) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@cmv_basetable_2 +POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT [] +PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable_2 +PREHOOK: Output: default@cmv_basetable_2 +#### A masked pattern was here #### +POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable_2 +POSTHOOK: Output: default@cmv_basetable_2 +#### A masked pattern was here #### +PREHOOK: query: EXPLAIN +CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS + SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: query: EXPLAIN +CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS + SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 depends on stages: Stage-2 + Stage-5 depends on stages: Stage-0 + Stage-3 depends on stages: Stage-5 + Stage-6 depends on stages: Stage-3 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: cmv_basetable + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: a is not null (type: boolean) + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + TableScan + alias: cmv_basetable_2 + Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: ((c > 10) and a is not null) (type: boolean) + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int), c (type: decimal(10,2)) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: decimal(10,2)) + Reduce Operator Tree: + Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col0 (type: int) + 1 _col0 (type: int) + outputColumnNames: _col0, _col2 + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + Group By Operator + keys: _col0 (type: int), _col2 (type: decimal(10,2)) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col0 (type: int), _col1 (type: decimal(10,2)) + sort order: ++ + Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2)) + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2)) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat + serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde + name: default.cmv_mat_view + + Stage: Stage-0 + Move Operator + files: + hdfs directory: true +#### A masked pattern was here #### + + Stage: Stage-5 + Create View Operator: + Create View + columns: a int, c decimal(10,2) + table properties: + rewriting.time.window 300s + expanded text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c` + FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`) + WHERE `cmv_basetable_2`.`c` > 10.0 + GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c` + name: default.cmv_mat_view + original text: SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c + + Stage: Stage-3 + Stats Work + Basic Stats Work: + + Stage: Stage-6 + Materialized View Work + +PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS + SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: CREATE_MATERIALIZED_VIEW +PREHOOK: Input: default@cmv_basetable +PREHOOK: Input: default@cmv_basetable_2 +PREHOOK: Output: database:default +PREHOOK: Output: default@cmv_mat_view +POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view TBLPROPERTIES('rewriting.time.window'='300s') AS + SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: Input: default@cmv_basetable +POSTHOOK: Input: default@cmv_basetable_2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@cmv_mat_view +PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@cmv_mat_view +POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@cmv_mat_view +# col_name data_type comment +a int +c decimal(10,2) + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Retention: 0 +#### A masked pattern was here #### +Table Type: MATERIALIZED_VIEW +Table Parameters: + COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"} + numFiles 1 + numRows 2 + rawDataSize 232 + rewriting.time.window 300s + totalSize 325 +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde +InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] + +# View Information +View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c` + FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`) + WHERE `cmv_basetable_2`.`c` > 10.0 + GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c` +View Rewrite Enabled: No +PREHOOK: query: EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: cmv_basetable + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: a is not null (type: boolean) + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + TableScan + alias: cmv_basetable_2 + Statistics: Num rows: 2 Data size: 484 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: ((c > 10.1) and a is not null) (type: boolean) + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int), c (type: decimal(10,2)) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: decimal(10,2)) + Reduce Operator Tree: + Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col0 (type: int) + 1 _col0 (type: int) + outputColumnNames: _col0, _col2 + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + Group By Operator + keys: _col0 (type: int), _col2 (type: decimal(10,2)) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col0 (type: int), _col1 (type: decimal(10,2)) + sort order: ++ + Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2)) + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2)) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable +PREHOOK: Input: default@cmv_basetable_2 +#### A masked pattern was here #### +POSTHOOK: query: SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable +POSTHOOK: Input: default@cmv_basetable_2 +#### A masked pattern was here #### +1 +3 +PREHOOK: query: insert into cmv_basetable_2 values + (3, 'charlie', 15.8, 1) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@cmv_basetable_2 +POSTHOOK: query: insert into cmv_basetable_2 values + (3, 'charlie', 15.8, 1) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@cmv_basetable_2 +POSTHOOK: Lineage: cmv_basetable_2.a SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_2.b SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_2.c SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_2.d SCRIPT [] +PREHOOK: query: analyze table cmv_basetable_2 compute statistics for columns +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable_2 +PREHOOK: Output: default@cmv_basetable_2 +#### A masked pattern was here #### +POSTHOOK: query: analyze table cmv_basetable_2 compute statistics for columns +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable_2 +POSTHOOK: Output: default@cmv_basetable_2 +#### A masked pattern was here #### +PREHOOK: query: EXPLAIN +ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE +PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE +POSTHOOK: query: EXPLAIN +ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE +POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + Alter Materialized View Operator: + Alter Materialized View + name: default.cmv_mat_view + operation: UPDATE_REWRITE_FLAG + +PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE +PREHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE +PREHOOK: Input: default@cmv_mat_view +PREHOOK: Output: default@cmv_mat_view +POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view ENABLE REWRITE +POSTHOOK: type: ALTER_MATERIALIZED_VIEW_REWRITE +POSTHOOK: Input: default@cmv_mat_view +POSTHOOK: Output: default@cmv_mat_view +PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@cmv_mat_view +POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@cmv_mat_view +# col_name data_type comment +a int +c decimal(10,2) + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Retention: 0 +#### A masked pattern was here #### +Table Type: MATERIALIZED_VIEW +Table Parameters: + COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"} + numFiles 1 + numRows 2 + rawDataSize 232 + rewriting.time.window 300s + totalSize 325 +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde +InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] + +# View Information +View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c` + FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`) + WHERE `cmv_basetable_2`.`c` > 10.0 + GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c` +View Rewrite Enabled: Yes +PREHOOK: query: EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: default.cmv_mat_view + Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (c > 10.1) (type: boolean) + Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable +PREHOOK: Input: default@cmv_basetable_2 +PREHOOK: Input: default@cmv_mat_view +#### A masked pattern was here #### +POSTHOOK: query: SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable +POSTHOOK: Input: default@cmv_basetable_2 +POSTHOOK: Input: default@cmv_mat_view +#### A masked pattern was here #### +1 +3 +PREHOOK: query: EXPLAIN +ALTER MATERIALIZED VIEW cmv_mat_view REBUILD +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +ALTER MATERIALIZED VIEW cmv_mat_view REBUILD +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 depends on stages: Stage-2 + Stage-3 depends on stages: Stage-0, Stage-4 + Stage-6 depends on stages: Stage-3 + Stage-4 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: cmv_basetable + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: a is not null (type: boolean) + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE Column stats: NONE + TableScan + alias: cmv_basetable_2 + Statistics: Num rows: 3 Data size: 727 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: ((c > 10) and a is not null) (type: boolean) + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int), c (type: decimal(10,2)) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 1 Data size: 242 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: decimal(10,2)) + Reduce Operator Tree: + Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 _col0 (type: int) + 1 _col0 (type: int) + outputColumnNames: _col0, _col2 + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + Group By Operator + keys: _col0 (type: int), _col2 (type: decimal(10,2)) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col0 (type: int), _col1 (type: decimal(10,2)) + sort order: ++ + Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2)) + Statistics: Num rows: 5 Data size: 1325 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2)) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat + serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde + name: default.cmv_mat_view + Select Operator + expressions: _col0 (type: int), _col1 (type: decimal(10,2)) + outputColumnNames: a, c + Statistics: Num rows: 2 Data size: 530 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: compute_stats(a, 'hll'), compute_stats(c, 'hll') + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-0 + Move Operator + tables: + replace: true + table: + input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat + serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde + name: default.cmv_mat_view + + Stage: Stage-3 + Stats Work + Basic Stats Work: + Column Stats Desc: + Columns: a, c + Column Types: int, decimal(10,2) + Table: default.cmv_mat_view + + Stage: Stage-6 + Materialized View Work + + Stage: Stage-4 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 1056 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: struct<columntype:string,min:bigint,max:bigint,countnulls:bigint,bitvector:binary>), _col1 (type: struct<columntype:string,min:decimal(10,2),max:decimal(10,2),countnulls:bigint,bitvector:binary>) + Reduce Operator Tree: + Group By Operator + aggregations: compute_stats(VALUE._col0), compute_stats(VALUE._col1) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 1088 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + +PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable +PREHOOK: Input: default@cmv_basetable_2 +PREHOOK: Output: default@cmv_mat_view +POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view REBUILD +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable +POSTHOOK: Input: default@cmv_basetable_2 +POSTHOOK: Output: default@cmv_mat_view +POSTHOOK: Lineage: cmv_mat_view.a SIMPLE [(cmv_basetable)cmv_basetable.FieldSchema(name:a, type:int, comment:null), ] +POSTHOOK: Lineage: cmv_mat_view.c SIMPLE [(cmv_basetable_2)cmv_basetable_2.FieldSchema(name:c, type:decimal(10,2), comment:null), ] +PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@cmv_mat_view +POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@cmv_mat_view +# col_name data_type comment +a int +c decimal(10,2) + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Retention: 0 +#### A masked pattern was here #### +Table Type: MATERIALIZED_VIEW +Table Parameters: + COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"c\":\"true\"}} + numFiles 1 + numRows 3 + rawDataSize 348 + rewriting.time.window 300s + totalSize 332 +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde +InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] + +# View Information +View Original Text: SELECT cmv_basetable.a, cmv_basetable_2.c + FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) + WHERE cmv_basetable_2.c > 10.0 + GROUP BY cmv_basetable.a, cmv_basetable_2.c +View Expanded Text: SELECT `cmv_basetable`.`a`, `cmv_basetable_2`.`c` + FROM `default`.`cmv_basetable` JOIN `default`.`cmv_basetable_2` ON (`cmv_basetable`.`a` = `cmv_basetable_2`.`a`) + WHERE `cmv_basetable_2`.`c` > 10.0 + GROUP BY `cmv_basetable`.`a`, `cmv_basetable_2`.`c` +View Rewrite Enabled: Yes +PREHOOK: query: EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT cmv_basetable.a +FROM cmv_basetable join cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: default.cmv_mat_view + Statistics: Num rows: 3 Data size: 348 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (c > 10.1) (type: boolean) + Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +PREHOOK: type: QUERY +PREHOOK: Input: default@cmv_basetable +PREHOOK: Input: default@cmv_basetable_2 +PREHOOK: Input: default@cmv_mat_view +#### A masked pattern was here #### +POSTHOOK: query: SELECT cmv_basetable.a +FROM cmv_basetable JOIN cmv_basetable_2 ON (cmv_basetable.a = cmv_basetable_2.a) +WHERE cmv_basetable_2.c > 10.10 +GROUP BY cmv_basetable.a, cmv_basetable_2.c +POSTHOOK: type: QUERY +POSTHOOK: Input: default@cmv_basetable +POSTHOOK: Input: default@cmv_basetable_2 +POSTHOOK: Input: default@cmv_mat_view +#### A masked pattern was here #### +1 +3 +3 +PREHOOK: query: drop materialized view cmv_mat_view +PREHOOK: type: DROP_MATERIALIZED_VIEW +PREHOOK: Input: default@cmv_mat_view +PREHOOK: Output: default@cmv_mat_view +POSTHOOK: query: drop materialized view cmv_mat_view +POSTHOOK: type: DROP_MATERIALIZED_VIEW +POSTHOOK: Input: default@cmv_mat_view +POSTHOOK: Output: default@cmv_mat_view