鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

OmniCache物化视图不支持重写的场景规则

OmniCache物化视图不支持重写的场景规则如表1所示。

表1 OmniCache物化视图不支持重写的场景规则

项目

说明

基本规则

  • 查询需要的数据,视图无法满足,不支持重写。例如:查询:c1>=2,视图:c1>2,不支持重写。
  • In、Like需要查询和视图条件完全匹配,不满足则不支持重写。例如:查询:in (2,3) ,视图: in(1,2,3),不支持重写。
  • 查询SQL中已经使用了视图,不支持重写。

Join规则

  • 只支持Inner-Join类型的重写,其他类型的Join不支持重写。
  • 通过isValidPlan检查当前匹配的查询和视图的逻辑计划树是否满足最小单元的要求,只包含以下类型算子,不满足则不支持重写。
    • LogicalRelation
    • HiveTableRelation
    • Project
    • Filter
    • Join
    • SubqueryAlias

Aggregate规则

  • 视图逻辑计划树根节点必须是Aggregate算子。像order by、having的根节点是Sort、Filter,这种视图不支持重写。
  • 查询和视图逻辑计划树匹配,两边根节点都必须是Aggregate算子,然后会通过isValidPlan检查子树是否满足最小单元的要求,不满足则不支持重写。
  • 查询中出现了视图中不存在的聚合函数,不支持重写。
  • 查询group by字段是视图group by字段的子集,只支持对以下聚合函数(不带distinct)rollUp,不满足则不支持重写。
    • sum
    • min
    • max
    • count