数据流处理:模型与方法
1. 流处理的语义原语
流处理的主要通用原语函数可分为非阻塞和阻塞运算符两类。非阻塞运算符可直接应用于连续流,而阻塞运算符仅适用于有限序列。
1.1 非阻塞操作
非阻塞操作主要有过滤(Filter)和映射(Map)两种,它们都是无状态操作,处理流元素时无需维护状态信息,便于顺序或并行处理子流。大数据流分析平台如 Spark、Storm、Kafka、Samza 等都提供了这些操作的实现。
- 过滤(Filter) :根据谓词(条件)对数据流中的元组进行筛选,决定是否包含或排除某些元组。例如,过滤体温在 36.5 - 37.5ºC 范围内的数值,只处理超出该范围的值。
- 设 $P_T$ 是流 $S_T$ 中类型为 $T$ 的元组的过滤谓词集合,过滤操作 $\sigma : S_T × P_T → S_T$ 返回满足给定过滤谓词的流元素。
- 过滤谓词 $p \in P_T$ 是一个函数 $p : \hat{T} → {true, false}$。
- 映射(Map) :通过应用一个函数来转换输入流中的每个元组,可以将原始值映射到归一化区间内的值,映射结果可以是相同类型或不同类型的元组。
- 设 $F_{map}$ 是将类型为 $T_1$ 的元组映射到类型为 $T_2$ 的元组的所有映射函数集合,映射运算符 $\mu : S_{T_1} × F_{map} → S_{T_2}$ 对每个流元素的元组组件应用给定的映射函数 $f \in F_{map}$。
- 映射函数可以是高阶函数,这种定义比关系代数中的投影运算符更强大,因
超级会员免费看
订阅专栏 解锁全文
1716

被折叠的 条评论
为什么被折叠?



