↓↓↓↓↓↓↓下载看水印↓↓↓↓↓↓↓
逻辑算子分为五部分和一个扩展.五部分: 输入输出, 数据重排, 投影过滤, 分组计算, 集合与连接.一个扩展: 嵌套与展开可以看做逻辑算子的一个特例, 用于将包压缩成一个标量值, 或将一个标量值展开成一个包.
输入输出(Input/Output)Sink
𝑆𝑖𝑛𝑘(𝑒)表示表的输出.
TableScan
𝑆𝑐𝑎𝑛(𝑇)表示表的输入. 𝑇 表示一个表数据的快照.
Values
{𝑡1,𝑡2,...}𝑏 或 𝑉𝑎𝑙𝑢𝑒𝑠(𝑒)Values 用于表示一个包常量.
Values 的实用意义包括将常量值封装为一个算子, 在处理算子树时可以统一处理.
TableFunction
𝑇𝑓(𝑒):={𝑒2|𝑒2=𝑓(𝑒)},𝑓 为表值函数
TableFunction 严格来说不是一个输入算子, 需要一个关系作为输入, 和后续提到的映射(map)类似. 但其可以一次性消费整个关系上的元组,以及可以从空关系中生成任意多个元组, 超越了一般逐行映射的能力, 所以在处理上看做输入算子会更容易, 对这个算子的优化讨论较少.