前阵子和一个做实时数据平台的朋友吃饭,他抱怨说,他们团队花了大半年时间搭起来的流处理系统,每次业务需求一变,就要改代码、调架构,折腾得人仰马翻。我问他用的是什么方案,他说是Kafka 加 Flink 那套老组合。我说你听说过 RisingWave 吗?他愣了一下,表示好像有点印象,但没仔细研究过。我给他讲了讲这个数据库的特点,他听完后沉默了几秒,然后说:“这不就是我一直想要的东西吗?”这大概就是 RisingWave 在技术圈里的处境——知道的人不多,但真正了解的人往往会觉得相见恨晚。

RisingWave 本质上是一个流式数据库,这个说法听起来有点拗口,但其实很简单:传统数据库是存静态数据的,你往里写数据,然后查出来;而 RisingWave 处理的是动态数据,数据像水流一样源源不断地进来,它能实时处理、实时查询。打个比方,传统数据库像一个水库,你把水存进去,想用的时候再打开闸门放出来;而 RisingWave 更像一条河,水不停地流,你在岸边随时可以舀一瓢看看水质。这个差异对于做实时数据处理的团队来说是天壤之别。以前做实时处理,需要搭建一套复杂的流处理框架,写一堆代码,再连上消息队列和存储系统,像拼乐高一样把各个组件拼起来。而 RisingWave 把这套流程简化成写 SQL,你只要会写 SQL,就能搞定实时计算。
我见过太多团队在实时数据处理上栽跟头。一个做电商的客户搞了个实时推荐系统,数据从用户点击到最终展示推荐结果,中间要经过 Kafka、Flink、Redis、MySQL 四五个组件,每个环节都有延迟,也都可能出问题。运维人员每天提心吊胆,生怕哪个组件挂了。后来他们试了 RisingWave,直接用 SQL 定义数据处理逻辑,数据从 Kafka 进来,经过几个窗口计算,直接输出到应用端。原本需要五六个人维护的系统,现在两个人就搞定了。这不是黑科技,而是 RisingWave 把流处理的复杂性封装起来,让开发者专注业务逻辑,而不是底层基础设施。
很多人会问,RisingWave 跟 Flink 到底有什么区别?Flink 是一个流处理引擎,它更底层、更灵活,但也意味着你需要更懂它才能用好它。而 RisingWave 是一个数据库,提供完整的 SQL 支持,包括物化视图、窗口函数、UDF 等高级功能。你不需要写 Java 或 Scala 代码,不需要理解 checkpoint 机制,也不必操心状态管理。对大多数业务团队来说,写 SQL 比写流处理代码要友好得多。我认识一个传统企业的数据团队,他们连 Flink 是什么都没听说过,但用 RisingWave 做实时报表,两周就上线了。这就是产品的力量,而不是技术的力量。
但 RisingWave 也不是万能的。如果你要做非常复杂的自定义逻辑,比如自定义状态管理或自定义时间语义处理,Flink 可能更适合。但如果你要解决的是 80% 的常见实时场景——实时监控、实时报表、实时风控、实时推荐——RisingWave 能让你省掉大部分工作量。这其实是技术选型的智慧:不要为了炫技而选最复杂的方案,要选最能解决问题、最易上手的方案。很多团队在选型时容易陷入“我们一定要用最先进技术”的误区,结果把简单的问题搞得复杂。
RisingWave 的开源生态也挺有意思。它采用 Apache 2.0 许可证,这意味着你可以免费使用、修改、分发。社区很活跃,文档写得也很清晰。我最近在 GitHub 上看到他们把 Rust 代码库完全开源,Rust 在性能上的优势让 RisingWave 在处理高吞吐量数据时表现稳定。有测试数据显示,在相同硬件条件下,RisingWave 的吞吐量比某些老牌流处理引擎高出 30% 以上。而且它的存储层是分离的,你可以把数据存到 S3 或 MinIO,计算资源可以按需扩展。这种架构显然是面向云原生,和 Kubernetes、容器化等趋势高度契合。
我观察到,国内很多企业已经意识到实时数据处理的重要性,但真正落地的并不多。原因主要有两个:技术门槛高、运维成本大。RisingWave 正好切中了这两个痛点。它把流处理的门槛降到 SQL 层面,让做报表的分析师也能参与;同时它的运维复杂度比 Flink 集群低得多,一个 DBA 就能搞定。这种“降维打击”的打法在技术产品里并不少见,但真正做到位、做透的并不多。
说个细节。RisingWave 的团队是中国的,创始人几位来自阿里、字节跳动,他们在流处理领域深耕多年。这让我想起以前做技术报道时的感受:很多中国开源项目技术很强,但产品体验和文档质量跟不上。RisingWave 在这方面做得不错,英文文档甚至比某些硅谷公司的还友好。这可能和创始团队里有产品背景的人有关。技术产品最终要回到用户价值和开发者体验上。RisingWave 能否成为实时数据库领域的“下一个 Kafka”,现在说还为时过早,但它已经为行业提供了一种新选择,让那些被复杂系统折磨的开发者看到了一条更简单的出路。


