前语
curlhttps://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:
curlhttps://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,请体会中文入门教程:www.risingwavetutorial.com/
想要更深化地了解并运用 RisingWave,请阅读中文用户文档:zh-cn.risingwave.com/docs