RisingWave 非常适合以下类别的用例。
- 流式 ETL
- 实时分析
- 事件驱动应用
流式 ETL 是实时分析和事件驱动应用的基础。实时分析通过引入数据看板,扩展了流式 ETL,而事件驱动应用则在实时分析的基础上增加了逻辑,以评估条件是否触发后续行动。
1. 流式 ETL
流式 ETL(提取、转换和加载)是指在数据输入时,在不同系统间连续持续提取、转换和移动数据。
与批处理 ETL 作业相比,流式 ETL 具有一些优势,如较低的延迟、可扩展性、更细粒度的数据处理、更高效的资源使用和更好的数据新鲜度。
流式 ETL 通常使用如 Apache Flink 或 RisingWave 的流处理系统。
1.1 RisingWave 如何支持流式 ETL?
- 提取:RisingWave 支持从各种数据源摄取数据,如消息队列、日志文件或数据库的变更数据捕获(CDC)流。
- 转换:RisingWave 允许对流数据进行各种数据转换,如映射、过滤、连接、聚合、窗口化和有状态处理。
- 加载:可以将 RisingWave 处理过的数据导入下游系统,如数据库、数据仓库或消息队列。
1.2 流式 ETL 技术栈
1.3 流式 ETL 示例
- 持续数据集成
- 物联网数据处理
2. 实时分析
实时分析是指在数据生成或接收时对其进行分析,而不是事后分析。实时分析可为企业提供近乎实时的数据洞察和可操作信息,使其能够更快速明智地做出决策。
在金融、医疗保健和电子商务等许多行业,实时分析可以使企业快速响应不断变化的市场环境、客户行为和运营问题,从而提供竞争优势。实时分析还可用于提高运营效率和降低成本。
与传统的基于批处理的分析相比,实时分析具有明显的优势。然而,实现实时分析应用仍具挑战性。
2.1 RisingWave 如何支持实时分析?
RisingWave 通过从各种数据源(消息队列、数据库和日志文件等)实时摄取和转换数据来支持实时分析。它在其存储中始终保存新鲜结果,因而可以直接为数据看板提供查询服务。RisingWave 还提供将数据导入数据库、数据仓库或数据湖的选项,使用户可以进一步丰富其数据集,以便从中进行查询。此外,它还支持流式 SQL,使技术栈的设置更加容易。
2.2 实时分析技术栈
2.3 实时分析示例
- 实时流指标分析
- 实时广告效果分析
- Twitter 事件处理
- 点击流分析
- 加密货币智能
3. 事件驱动应用
事件驱动应用是对事件或消息做出响应的软件应用,而非传统的请求-响应交互。在事件驱动架构中,事件由应用的各个组件生成和消耗,应用的行为由接收到的事件决定。
事件可以是对应用非常重要的任何类型的事件或通知,如用户点击按钮、传感器检测到温度变化或来自另一个应用的消息。事件生成后,通常会发布到消息总线或事件流中,供应用的其他组件使用。
事件驱动应用通常使用微服务架构构建,其中每个微服务负责特定的业务功能,并通过事件与其他微服务通信。这可以提高灵活性和可扩展性,因为每个微服务都可以独立开发、部署和扩展。
事件驱动应用的主要优势之一是能够处理应用不同组件之间复杂的实时交互。通过使用事件在组件之间进行通信,事件驱动应用可以更快对环境中的变化做出响应,且有更强的适应能力。
3.1 RisingWave 如何支持事件驱动应用?
RisingWave 通过以下几种方式支持事件驱动应用。
- RisingWave 可实现持续的事件摄取和处理,允许应用实时对事件作出响应。RisingWave 对事件时间处理的支持还使其能够处理无序事件和延迟到达的数据。
- RisingWave 支持有状态处理,这使其能够在多个事件中保持上下文并执行更复杂的处理。RisingWave 对键控状态的支持还允许事件驱动应用为数据流中的每个键保持状态。
- RisingWave 通过 Temporal 运算符和函数以及用户定义函数支持复杂事件处理,使其能够检测事件流中的复杂的模式规律和关联性。
- RisingWave 可与各种上游和下游系统(如 Apache Kafka、PostgreSQL 和 MySQL 等)直接集成。这使得事件驱动应用能够利用这些系统进行事件流和存储,从而更容易构建端到端的事件驱动架构。
3.2 事件驱动应用技术栈
3.3 事件驱动应用示例
- 服务器性能异常检测
- 在线推荐系统
- 库存管理
4. 关于 RisingWave
RisingWave 是一款开源的分布式流处理数据库,旨在帮助用户降低实时应用的开发成本。RisingWave 采用存算分离架构,提供 Postgres-style 使用体验,具备比 Flink 高出 10 倍的性能以及更低的成本。
👨🔬加入 RW 社区,欢迎关注公众号:RisingWave 中文开源社区
🧑💻想要了解和探索 RisingWave,欢迎浏览我们的官网:risingwave.com/
🔧快速上手 RisingWave,欢迎体验入门教程:github.com/risingwave
💻深入理解使用 RisingWave,欢迎阅读用户文档:zh-cn.risingwave.com/docs