public class HiveMaterializedViewUtils extends Object
| Modifier and Type | Method and Description |
|---|---|
static MaterializedViewStatus.MaterializedDataPredicates |
differenceDataPredicates(MaterializedViewStatus.MaterializedDataPredicates baseTablePredicatesInfo,
MaterializedViewStatus.MaterializedDataPredicates viewPredicatesInfo,
Map<String,String> viewToBaseTablePredicatesKeyMap) |
static MaterializedViewStatus.MaterializedDataPredicates |
differenceDataPredicates(MaterializedViewStatus.MaterializedDataPredicates baseTablePredicatesInfo,
MaterializedViewStatus.MaterializedDataPredicates viewPredicatesInfo,
Map<String,String> viewToBaseTablePredicatesKeyMap,
Map<String,String> viewToBaseTableIndirectMap)
From given base table partitions, removes all partitions that are already used to compute
related view partitions, only returning partitions that are not reflected in Materialized View.
|
static MaterializedViewStatus.MaterializedDataPredicates |
getEmptyMaterializedViewDataPredicates() |
static MaterializedViewStatus.MaterializedDataPredicates |
getMaterializedDataPredicates(SemiTransactionalHiveMetastore metastore,
MetastoreContext metastoreContext,
TypeManager typeManager,
Table table,
org.joda.time.DateTimeZone timeZone) |
static Map<SchemaTableName,Map<String,String>> |
getViewToBasePartitionMap(Table view,
List<Table> baseTables,
Map<String,Map<SchemaTableName,String>> viewToBaseColumnMap) |
static void |
validateMaterializedViewPartitionColumns(SemiTransactionalHiveMetastore metastore,
MetastoreContext metastoreContext,
Table viewTable,
MaterializedViewDefinition viewDefinition)
Validate the partition columns of a materialized view to ensure 1) a materialized view is partitioned; 2) it has at least one partition
directly mapped to all base tables and 3) Outer join conditions have common partitions that are partitions in the view as well
|
static Optional<Map<String,String>> |
viewToBaseTableOnOuterJoinSideIndirectMappedPartitions(MaterializedViewDefinition viewDefinition,
Table baseTable) |
public static void validateMaterializedViewPartitionColumns(SemiTransactionalHiveMetastore metastore, MetastoreContext metastoreContext, Table viewTable, MaterializedViewDefinition viewDefinition)
A column is directly mapped to a base table column if it is derived directly or transitively from the base table column, by only selecting a column or an aliased column without any function or operator applied. For example, with SELECT column_b AS column_a, column_a is directly mapped to column_b. With SELECT column_b + column_c AS column_a, column_a is not directly mapped to any column.
viewToBaseColumnMap only contains direct column mappings.
public static MaterializedViewStatus.MaterializedDataPredicates getMaterializedDataPredicates(SemiTransactionalHiveMetastore metastore, MetastoreContext metastoreContext, TypeManager typeManager, Table table, org.joda.time.DateTimeZone timeZone)
public static Optional<Map<String,String>> viewToBaseTableOnOuterJoinSideIndirectMappedPartitions(MaterializedViewDefinition viewDefinition, Table baseTable)
public static MaterializedViewStatus.MaterializedDataPredicates differenceDataPredicates(MaterializedViewStatus.MaterializedDataPredicates baseTablePredicatesInfo, MaterializedViewStatus.MaterializedDataPredicates viewPredicatesInfo, Map<String,String> viewToBaseTablePredicatesKeyMap)
public static MaterializedViewStatus.MaterializedDataPredicates differenceDataPredicates(MaterializedViewStatus.MaterializedDataPredicates baseTablePredicatesInfo, MaterializedViewStatus.MaterializedDataPredicates viewPredicatesInfo, Map<String,String> viewToBaseTablePredicatesKeyMap, Map<String,String> viewToBaseTableIndirectMap)
baseTablePredicatesInfo - Partitions info for base tableviewPredicatesInfo - Partitions info for viewviewToBaseTablePredicatesKeyMap - Partitions mapping from view to base table. Only includes direct mapping, i.e. excludes mapping from outer joins EQ clauses.viewToBaseTableIndirectMap - Extra partitions mapping from view to base table, computed from viewToBaseTableOnOuterJoinSideIndirectMappedPartitions()public static MaterializedViewStatus.MaterializedDataPredicates getEmptyMaterializedViewDataPredicates()
Copyright © 2012–2023. All rights reserved.