迭代模型/火山模型(Iterator Model)
又称 Volcano Model 或者 Pipeline Model
每一种操作抽象为一个 Operator,将整个 SQL 构建成一个 Operator 树,查询树自顶向下的调用next()接口,数据则自底向上的被拉取处理
一次pull一条,调用次数太多,CPU执行效率低下。
相关数据库:SQLite、MongoDB、Impala、DB2、SQLServer、Greenplum、PostgreSQL、Oracle、MySQL
物化模型(Materialization Model)
同上,批量拉取,但是数据集不能太多。
##向量化/批处理模型(Vectorized / Batch Model)##
每次调用 next() 函数会返回一批的元组(tuples)
相关数据库:Presto、snowflake、SQLServer、Amazon Redshift,Spark 2.x,hive(ORC 格式来存储数据,将 hive.vectorized.execution.enabled 参数设置为 true)
参考
物化视图
这个概念,只是把视图(只保存SQL)进行了计算和数据物化