大数据流处理技术全解析
1. 滑动窗口查询处理与状态维护
在大数据处理中,滑动窗口查询处理和状态维护至关重要。对于基于时间的窗口,数据项的过期判断很简单:若其时间戳超出窗口范围,该数据项就会过期。而基于计数的窗口,数据项数量随时间保持恒定,过期处理可通过用新到达的数据项覆盖最旧的数据项来实现。不过,若操作符存储与基于计数的窗口连接输出对应的状态,状态中的数据项数量可能会根据新元组的连接属性值而改变。
一般来说,有两种滑动窗口查询处理和状态维护技术:负元组方法和直接方法。
- 负元组方法 :查询中引用的每个窗口都分配一个操作符,该操作符除了将新到达的元组推入查询计划外,还会为每次过期显式生成一个负元组。因此,每个窗口都必须具体化,以便生成适当的负元组。负元组会在查询计划中传播,并由操作符以与常规元组类似的方式处理,但它们也会使操作符从其状态中移除相应的“真实”元组。可以使用哈希表作为操作符状态来高效实现负元组方法,这样可以快速查找与负元组对应的过期元组。然而,该方法的缺点是查询必须处理两倍数量的元组,因为每个元组最终都会从其窗口中过期并生成一个相应的负元组。此外,随着窗口向前滑动,计划中必须有额外的操作符来生成负元组。
- 直接方法 :处理基于时间的窗口上无否定的查询。这些查询的特点是,可以通过基本元组和中间结果的过期时间戳(即到达时间加上窗口长度)来确定它们的过期时间。因此,操作符可以直接访问其状态并找到过期元组,而无需负元组。直接方法不会产生负元组的开销,也不必存储查询中引用的基本窗口。但是,对于多窗口查询,它可能比负元组方法慢,因为在插入或删除时,状态缓冲区可能需要顺序扫描。
下面
超级会员免费看
订阅专栏 解锁全文
884

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



