查询引擎:推Push与拉Pull

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

本文讨论了推式和拉式查询引擎的区别。推式查询引擎主动传递数据给下游操作符,拉式查询引擎则是消费者主动请求数据。推式查询引擎能高效处理有向无环图(DAG)的查询计划,并提高缓存效率。拉式查询引擎需要等待数据请求才能工作。推式系统能让Snowflake高效处理DAG计划,而拉式系统不支持。推式系统通过移除控制流逻辑提高缓存效率。在基于推送的系统中,操作者处于闲置状态,直到有人告诉它有一行数据。基于拉动的系统中,操作者一直处于闲置状态,直到有人向他们索要数据行。推式系统能够处理DAG计划以及共享和流水线中间结果。

➡️

继续阅读