📄️ 索引(index)
在数据库中,用户可以对表创建索引,以此来加速查询。RisingWave 中的索引基本与传统数据库中的索引一样,是为了加速随机查询。用户可以在表与物化视图上构建索引。
📄️ 关联关系(join)
在本文我们聊聊如何在 RisingWave 内对数据流做关联关系。
📄️ 时间窗口(windowing)
时间窗口可以在时间列上将数据按照一定规则进行分组和划分。
📄️ 水位线(watermark)
水位线是流处理系统中非常核心的概念之一。数据流是无限的,而水位线给用于给无限的数据流加以限制,引导系统系统更高效的处理数据。水位线消息夹杂在数据流中,每一个 watermark 都带有一个时间戳,代表该时间戳之前的数据都全部到达。
📄️ 窗口闭合时触发(EMIT ON WINDOW CLOSE)
在流计算中,由于输入流是无界的,流计算引擎可以有不同的计算触发策略来决定何时计算并输出结果。目前,RisingWave 在在创建物化视图和 Sink 等流计算任务时支持指定两种不同的触发策略:
📄️ 时间过滤器(temporal filter)
RisingWave 处理的数据流是无限的。但在不少情况下,用户只对最近一段时间(比如过去1小时、1天、1周)内的数据感兴趣,此时存储和处理不需要的过期数据往往不必要,并且浪费了很多资源。在其他一些系统中往往允许用户定义生存时间 (TTL,Time-To-Live) 来淘汰过期数据,但定义较为模糊,淘汰的具体时间不明确,用户也很难精准指明需要淘汰的目标状态。RisingWave 在 SQL 中提供了 temporal filter 的语法来帮助用户淘汰过期数据。
📄️ 表结构变更(schema change)
表结构变更(schema change)在数据库中尤为重要。在生产环境中,我们每几周或者每几个月就可能会经历一次表结构变更。由于流处理系统经常被作为数据库系统的下游系统来使用,因此如何响应上游数据库的表结构变更,对于流处理系统来说是个常见问题。