一行代码极速部署:开源流数据库推出面向个人开发者的流计算平台

前言

arduino 复制代码
curl https://risingwave.com/sh | sh

2021 年初,我创立了 RisingWave,目标是让流计算技术普及化。在过去的三年中,我不断地向市场布道,希望 RisingWave 能在流计算市场中占有一席之地。经过不懈努力,如今,RisingWave 已被数百家企业采用,这些企业遍布各个领域,包括一些世界顶尖的金融交易、制造、安全、航空航天等领域的公司。

为大型企业提供优质服务总是令人感到兴奋。然而,我也始终在思考一个问题:为什么总是大公司?为什么不是中小型企业或者个人? 将流计算技术以开发者为中心来设计是否切实可行? 换句话说,个人开发者或中小型企业是否能够真正利用流计算技术的强大功能?

1. 数据系统市场的普及化趋势

想要"让流计算技术普及化"并不是我的脑洞大开。如今的数据系统市场,云上的数据库服务已经呈现了很明显的向开发者市场下沉的趋势。

正如其他任何先进技术的发展历程一样,各类数据库通常都是首先被顶尖科技公司等利用,然后随着时间的推移,逐渐被广大人民群众,尤其是个人开发者与中小型公司,所使用。

技术普及化需要有两大前提同时被满足:

  • 从用户角度出发,开发者及中小型公司有足够的需求;
  • 从产品角度出发,市场上有足够好用便宜的产品。

对于 OLTP 数据库这一领域来说,技术普及化已经实现了:从搭建个人网站到构建大型服务,只要用户有存储数据的需求,都可能会选择使用 OLTP 数据库。PostgreSQL、MySQL 这类成熟的数据库早已被无数公司部署在生产环境中,而云上 SaaS 产品如 Supabase、Neon 等将 PostgreSQL 带到云上,并提供了一系列工具,让开发者可以使用小几十美金一个月的价格来搭建应用。

对于 OLAP 数据库来说,技术普及化也正快速发展。当用户需要进行一定的数据统计与分析时,PostgreSQL 等操作型数据库就难以胜任了。选择 Snowflake、Redshift 这样的数据仓库系统对开发者来说成本高且复杂。如今,像 ClickHouse 这样的 OLAP 数据库,即便在单机环境下也能进行高效的数据分析。初创公司 Tinybird 基于 ClickHouse 搭建了无服务的计算平台,让大家能以很低的价格进行数据分析。

在 OLTP 与 OLAP 数据库这两个赛道中,我们都看到了同样的情况。但流计算已经经历了二十多年的发展,我们似乎并没有看到任何一个流计算产品真正下沉到开发者市场中,在个人开发者与中小型公司内部普及。我们如果看一下几个常见的流计算产品,无论是 Spark Streaming 还 Flink,目前更多应用在了具有一定规模工程团队的科技公司中。对于个人或者小团队来说,部署使用这类大数据组件很显然门槛较高。 可以想象一下,当一个小团队还在为构建产品雏形而加班加点的时候,几乎不可能有时间去考虑自己如何使用一套流计算框架。他们想要的仅仅是一个开箱即用的工具产品罢了。

思考到这里,我们不难发现,在流计算领域,面向企业的流计算系统已经日渐饱和,形成了竞争激烈的红海。相反,针对开发者的流计算系统似乎仍是一片未被充分开发的蓝海。我们不禁会想,在 2024 年这个时间点上,让流计算普及化的时机是否已经成熟?

2. 流计算的普及化:从用户角度分析

在当前的技术环境中,流计算的应用范围越来越广泛,但关键的问题在于:个人开发者和中小型企业是否真正需要流计算技术? 从根本上来说,流计算适用场景必须同时满足两个核心条件:

  • 首先,数据以流的形式不断被摄入系统;
  • 其次,用户需要对这些即时的数据流进行分析以提取信息。

世界上的数据流的来源还是相对比较广泛的,包括但不限于:

  • 网站上的用户行为日志(页面访问、点击等等)
  • IoT 设备数据
  • 社交媒体数据
  • 金融交易数据
  • 电商订单、支付数据

在这些领域中,如果有开发者希望开发新的产品,并且这些产品需要对数据进行及时的分析,那么就可能需要流计算技术。例如,如果我们希望从股票交易中监控某只股票的波动范围,或者从电子设备回传的数据中分析异常情况,那都是使用流计算技术的非常好的场景。

那么实时数据同步与实时 ETL 场景,是否也是可以被开发者所利用呢?虽然对开发者具有一定吸引力,但实际上门槛可能还是相对较高。这是因为实时数据同步或 ETL 通常涉及至少两个系统的协作,在引入流计算系统后,开发者需要同时维护三套系统。对于个人开发者或小型创业团队来说,这样的成本是相当高的,因此这可能并非一个理想的应用场景。

总的来说,我认为从用户角度分析,流计算普及化的前置条件是成立的。

3. 流计算的普及化:从产品角度分析

我们接着从产品角度来分析。无论是个人开发者还是小的开发团队,都是希望将精力专注于快速开发迭代产品,而非研究底层数据系统架构。数据系统的定位就是工具,而工具就是为了给人以更好更快解决问题的手段。

当我们要开发一个面向开发者的数据系统时,我相信需要满足以下特征:

  • 能单机部署,不依赖于 Docker 或 Kubernetes 等容器,如果能够做到嵌入式那是更好;
  • 能提供 all-in-one 解决方案,不要求所有能力做到最好,但是需要提供各种能力:用户永远希望简化架构,而不希望把很多系统堆叠起来;
  • 简单易用,上手门槛极低;
  • 与各种其他开发者工具打通。

如果按照这一标准来寻找流计算系统,很显然我们在市面上的可选项极其有限了。幸运的是,RisingWave 就是极个别能够满足所有选项的流计算系统。

4. 流计算与批计算

我们讨论了这么多,其实最后又不得不回到一个老生常谈的问题:为什么需要流计算?用批计算不好吗?市面上不少批计算系统(尤其是 OLAP 数据库)都已经支持实时写入数据,那么为什么不直接使用批系统呢?我认为至少从三个方面来说,流计算系统拥有独一无二的优势:

  • 低延迟结果更新的要求强烈。对于金融交易、欺诈检测等场景来说,用户需要的往往是秒级甚至毫秒级的系统响应时间。对于这类应用来说,流计算也许是唯一的解法。OLAP 数据库中带有的物化视图功能尽管能够解决部分功能,但面对带有大状态的复杂查询的时候,可能就力不从心了。
  • 增量计算带来的好处明显大于存量计算。流计算使用的是增量计算模型,不难想象,这种计算模型大大避免了不必要的重复计算,使得计算效率得到大幅提升。
  • 流计算的思考方式更加直观。对于 IoT、金融等对于计算顺序有着强烈需求的场景来说,使用流计算更加符合正常思维方式,而批计算的计算反而可能"反直觉"。例如,如果我们想要不断监控过去 10 分钟内某只股票的平均价格,显然流计算的方式会更加容易被人接受。

当一个用户的使用场景满足这三个方面之一或更多时,我相信用户就可能会更加倾向于使用流计算系统。

5. RisingWave 本地版的设计理念

未来总是充满未知,但与其等待答案,不如自己寻找答案。在 RisingWave 最新的 1.7 版本中,我们推出了面向开发者的本地版,希望通过这一版本让 RisingWave 触及广大开发者,让开发者能够轻松享受到流计算带来的价值。

RisingWave 本地版的核心设计理念就是"极简"。

5.1 安装部署简单

RisingWave 本地版的最大特色之一便是安装部署极其简单。开发者能够通过简单的一行命令就在他们的本地电脑上(Mac 或者 Ubuntu)安装 RisingWave:

arduino 复制代码
curl https://risingwave.com/sh | sh

用户也不需要使用 Kubernetes 或 Docker 等容器,真正实现了裸机安装。对于关心程序体积的用户,我们还提供了一些编译选项,可以将程序大小压缩到约 140 MB。如果对这一大小还感到不满意,也欢迎与我们联系,商量一下更小打包的方案。

5.2 All-In-One

与 Flink、Spark Streaming 等传统流计算系统不同,RisingWave 自带存储功能,也就是说,用户不再需要寻找一个所谓"下游数据库"来存储流计算结果。在支持流计算的同时,RisingWave 也支持对存储在自身内部的数据进行随机查询。对于用户来讲,RisingWave 实现了从计算到存储再到服务的所有功能。

5.3 上手门槛极低

RisingWave 兼容的是 PostgreSQL 语法。用户可以直接写 SQL 语句便进行流计算,完全不需要学习 Java/Scala 等语言的 API,更不需要了解如 Checkpoint、Savepoint 等系统内部细节。

5.4 丰富的系统集成

RisingWave 支持了数十种常用系统与管理工具的集成。对于开发者常用的 MySQL、PostgreSQL、MongoDB 等数据库,RisingWave 可以一条语句直接连接,免除中间消息队列等组件。感谢 PostgreSQL 的生态,RisingWave 同样可以与 Grafana、Superset、DBeaver、dbt 等可视化、管理、建模等工具无缝集成,大幅提升用户体验。

6. 后记

RisingWave 本地版寄托着我们对流计算普及化的美好愿景,是我们对于流计算技术发展的一次探索。探索未知自然意味着风险与挑战,我们诚挚地希望读者们能够给予更多的支持,与我们携手共探未来的边界!

关于 RisingWave

RisingWave 是一款分布式 SQL 流处理数据库,旨在帮助用户降低实时应用的的开发成本。作为专为云上分布式流处理而设计的系统,RisingWave 为用户提供了与 PostgreSQL 类似的使用体验,并且具备比 Flink 高出 10 倍的性能以及更低的成本。 🧑‍💻想要了解和探索 RisingWave,欢迎浏览我们的官网:

risingwave.com/

🔧如果你还不知道如何上手 RisingWave,请体验中文入门教程:www.risingwavetutorial.com/

💻想要更深入地理解并使用 RisingWave,请阅读中文用户文档:zh-cn.risingwave.com/docs

相关推荐
乌啼霜满天2493 分钟前
如何将MySQL卸载干净(win11)
数据库·mysql
2的n次方_12 分钟前
掌握Spring Boot数据库集成:用JPA和Hibernate构建高效数据交互与版本控制
数据库·spring boot·hibernate
青灯文案115 分钟前
SpringBoot 项目统一 API 响应结果封装示例
java·spring boot·后端
NaZiMeKiY1 小时前
SQLServer数据分页
数据库·sql·sqlserver
Python私教1 小时前
Python国产新 ORM 框架 fastzdp_sqlmodel 快速入门教程
java·数据库·python
孟章豪1 小时前
SQL Server全方位指南:从入门到高级详解
数据库
数分大拿的Statham1 小时前
PostgreSQL中的regexp_split_to_table函数详解,拆分字段为多行
大数据·数据库·postgresql·数据分析·数据清洗
mqiqe1 小时前
PostgreSQL主备环境配置
数据库·postgresql
mqiqe1 小时前
PostgreSQL 容器安装
数据库·postgresql
微尘81 小时前
C语言存储类型 auto,register,static,extern
服务器·c语言·开发语言·c++·后端