数据流
Dataflow 模块(参见 flow::compute 模块)是 flow 的核心计算模块。
它接收 SQL 查询并将其转换为 flow 的内部执行计划。
然后,该执行计划被转化为实际的数据流,而数据流本质上是一个由带有输入和输出端口的函数组成的有向无环图(DAG)。
数据流会在需要时被触发运行。
目前该数据流只支持 map和 reduce 操作,未来将添加对 join 等操作的支持。
在内部,数据流使用 tuple(row, time, diff) 以行格式处理数据。
这里 row 表示实际传递的数据,可能包含多个 value 对象。
time 是系统时间,用于跟踪数据流的进度,diff 通常表示行的插入或删除(+1 或 -1)。
因此,tuple 表示给定系统时间的 row 的插入/删除操 作。