一行代码极速部署:打造面向开发者的流计算平台

作者:Yingjun Wu  

TL;DR.

curl https://risingwave.com/sh | sh

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

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

数据系统市场的平民化趋势

“让流计算技术平民化”。产生这一想法,并不是单纯因为我喜欢开脑洞。如果我们看一下如今的数据系统市场的话,我们便会发现,云上的数据库服务已经呈现了很明显的向开发者市场下沉的趋势。正如其他任何先进技术的发展历程一样,各类数据库通常都是首先被顶尖科技公司等利用,然后随着时间的推移,逐渐被广大人民群众,尤其是个人开发者与中小型公司,所使用。

这一技术平民化的过程,需要有两大前提同时被满足:

  • 从用户角度出发,开发者及中小型公司有足够的需求;

  • 从产品角度出发,市场上有足够好用便宜的产品。

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

Supabase 的定价:个人开发者可以选择使用免费版本或者25美金一个月的服务。

Neon 的定价:个人开发者可以选择使用免费版本或者19或69美金一个月的服务。

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

Tinybird的定价:个人开发者可以选择使用免费版本或者根据用量付费。

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

在流计算领域里,面向中小型企业与开发者的系统还是一片蓝海。

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

流计算的平民化:从用户角度分析

在当前的技术环境中,流计算的应用范围越来越广泛,但关键的问题在于:个人开发者和中小型企业是否真正需要流计算技术?从根本上来说,流计算适用的场景必须同时满足两个核心条件:首先,数据以流的形式不断被摄入系统;其次,用户需要对这些即时的数据流进行分析以提取信息。世界上的数据流的来源还是相对比较广泛的,包括但不限于:

  • 网站上的用户行为日志(页面访问、点击等等)

  • IoT设备数据

  • 社交媒体数据

  • 金融交易数据

  • 电商订单、支付数据

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

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

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

流计算的平民化:从产品角度分析

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

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

  • 能单机部署,不依赖于Docker或Kubernetes等容器,如果能够做到嵌入式那是更好;

  • 能提供all-in-one解决方案,不要求所有能力做到最好,但是需要提供各种能力:用户永远希望简化架构,而不希望把很多系统堆叠起来;

  • 简单易用,上手门槛极低;

  • 与各种其他开发者工具打通。

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

流计算与批计算

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

  • 对于一些应用来说,低延迟结果更新的要求强烈。对于金融交易、欺诈检测等场景来说,用户需要的往往是秒级甚至毫秒级的系统响应时间。对于这类应用来说,流计算也许是唯一的解法。OLAP数据库中带有的物化视图功能尽管能够解决部分功能,但面对带有大状态的复杂查询的时候,可能就力不从心了。

  • 对于一些应用来说,增量计算带来的好处明显大于存量计算。流计算使用的是增量计算模型,不难想象,这种计算模型大大避免了不必要的重复计算,使得计算效率得到大幅提升。

  • 对于一些应用来说,流计算的思考方式更加直观。对于IoT、金融等对于计算顺序有着强烈需求的场景来说,使用流计算更加符合正常思维方式,而批计算的计算反而可能“反直觉”。例如,如果我们想要不断监控过去10分钟内某只股票的平均价格,显然流计算的方式会更加容易被人接受。

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

RisingWave本地版的设计理念

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

RisingWave本地版的设计理念很简单,便是“极简”。

安装部署简单

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

curl https://risingwave.com/sh | sh

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

All-in-one

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

上手门槛极低

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

丰富的系统集成

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

后记

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


 RisingWave 是一款基于 Apache 2.0 协议开源的分布式流数据库,致力于为用户提供极致简单、高效的流数据处理与管理能力。RisingWave 采用存算分离架构,实现了高效的复杂查询、瞬时动态扩缩容以及快速故障恢复,并助力用户极大地简化流计算架构,轻松搭建稳定且高效的流计算应用。RisingWave 始终聆听来自社区的声音,并积极回应用户的反馈。目前,RisingWave 已汇聚了近 150 名开源贡献者和近 3000 名社区成员。全球范围内,已有上百个 RisingWave 集群在生产环境中部署。

了解更多:

官网: risingwave.com

入门教程:快速上手 | RisingWave

GitHub:risingwave.com/github

微信公众号:RisingWave中文开源社区

中文社区用户交流群:risingwave_assistant

英文社区用户交流群:https://risingwave.com/slack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/458496.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

精简版 Obsidian 图床配置 PicGo+ gitee

精简版 Obsidian 图床配置 PicGo gitee 图床的作用 图床(Image Hosting Service)是一种在线服务,用于存储和托管用户上传的图片文件。用户可以将图片上传到图床服务器,并获得一个可访问的图片链接,然后可以在网页、博…

【Stable Diffusion】入门-01:原理简介+应用安装(Windows)+生成步骤

【Stable Diffusion】入门:原理简介应用安装(Windows)生成步骤 原理简介应用安装 原理简介 稳定扩散生成模型(Stable Diffusion)是一种潜在的文本到图像扩散模型,能够在给定任何文本输入的情况下生成照片般逼真的图像。 应用安…

谷歌的后量子密码学威胁模型

1. 引言 若现在不使用量子安全算法来加密数据,能够存储当前通信的攻击者最快十年内就能对其解密。这种先存储后解密的攻击是当前采用后量子密码学 (post-quantum cryptography,PQC) 背后的主要动机,但其他未来的量子计算威胁也需要一个深思熟…

macOS - 获取硬件设备信息

文章目录 1、CPU获取方式 一: system_profiler获取方式二:sysctl, machdepmachdep 2、内存3、硬盘4、显卡5、声卡6、光驱7、系统序列号8、型号标识符9、UUID 等信息 10. 计算机名称 1、CPU 获取方式 一: system_profiler % syst…

CKA认证之Etcd备份与恢复

题目介绍: 资料参考: https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd 解题: 1、备份 #参考模板列出 etcdctl 可用的各种选项。 #例如,你可以通过指定端点、证书和密钥来制作快照&#xff0…

计算机视觉——目标检测(R-CNN、Fast R-CNN、Faster R-CNN )

前言、相关知识 1.闭集和开集 开集:识别训练集不存在的样本类别。闭集:识别训练集已知的样本类别。 2.多模态信息融合 文本和图像,文本的语义信息映射成词向量,形成词典,嵌入到n维空间。 图片内容信息提取特征&…

大语言模型提示词技巧

LLM(Large Language Model)大语言模型时代,提示词(Prompt)很重要,而改进提示词显然有助于在不同任务上获得更好的结果。这就是提示工程背后的整个理念。 下面我们将介绍更高级的提示工程技术,使…

【办公类-40-01】20240311 用Python将MP4转MP3提取音频 (家长会系列一)

作品展示: 背景需求: 马上就要家长会,我负责做会议前的照片滚动PPT,除了大量照片视频,还需要一个时间很长的背景音乐MP3 一、下载“歌曲串烧” 装一个IDM 下载三个“串烧音乐MP4”。 代码展示 家长会背景音乐: 歌曲串…

科普|大数据信用高风险形成原因,怎么查询?

在大数据时代,基于大数据技术的大数据信用风险在很多时候是很多机构比较重视的问题,大数据信用风险主要包括多头借贷风险、履约行为风险、联系人风险、司法风险等。本文将详细为大家讲讲大数据信用高风险是怎么形成的?怎么查询?一起去了解一下吧。 大数…

leetCode刷题 13. 罗马数字转整数

目录 题目: 1. 思路 2. 解题方法 3. 复杂度 4. Code 题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L …

Python 多种字符串处理函数介绍

Python 提供了丰富的字符串处理函数,用于执行各种字符串操作,如查找、替换、截取、转换等。以下是一些常用的 Python 字符串处理函数及其用法: 字符串长度和大小写转换 1. **len()**:返回字符串的长度。 2. **upper()**&#xff1…

如何区分工业以太网交换机和常规以太网交换机

工业以太网交换机和常规以太网交换机乍一看似乎很相似,但两者之间存在着一些关键区别。在本文中,我们将阐明这些差异,并为您提供一些快速区分两者的提示。 工业以太网交换机与常规以太网交换机的比较 工业以太网交换机和常规以太网交换机都…

[ai笔记15] openAI官方提示词工程文档(图文重排版本)

欢迎来到文思源想的ai空间,这是技术老兵重学ai以及成长思考的第15篇分享! 最近在学习prompt提示词技巧,一番研究发现其实提示词的技巧并不是限定死的,所谓技巧和心法更像是教导我们如何更清晰、更结构化的大模型聊天工具进行沟通…

SpringBoot +WebSocket应用

我们今天不研究原理,只看应用。 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数…

Redis-复制功能

0 序言 复制功能是Redis提供的多机功能中最基础的一个,这个功能是通过主从复制(master-slave replication)模式实现的,它允许用户为存储着目标数据库的服务器创建出多个拥有相同数据库副本的服务器,其中存储目标数据库…

ES6:箭头函数中的this指向问题

普通函数中的this指向函数的调用者 例子: 黑马程序员的说法:箭头函数不会创建自己的this,它只会从自己的作用域链的上一层沿用this 尚硅谷的说法:this始终指向函数声明时所在作用域下的this的值 通俗理解就是箭头函数中找this&…

c#简易学生管理系统

https://pan.baidu.com/s/1kCPvWg8P5hvlf26nGf2vxg?pwdya45 ya45

中国钛合金自行车出口海外营销策略-大舍传媒

中国是世界上自行车产量最大的国家之一,而如今,它也在自行车制造领域迈出了一大步。Titan Super Bond与Bright Laser Technologies (BLT)合作,成功开发了中国和亚洲首款全3D打印钛合金自行车车架。 这款创新的自行车车架采用了BLT-A320机器&a…

国产三维声纳

最近几天后台有人问三维声纳的事情。目前市面上三维声纳用得比较多的是Coda Octopus的Echoscope系列产品,Echoscope系列已经从第3代4D版本发展到第4代PIPE版本(包含5D和6D),见下图。从它的介绍来看,3D是指采集三维立体…

PHP 生成图片

1.先确认是否有GD库 echo phpinfo(); // 创建一个真彩色图像 $image imagecreatetruecolor(120, 50);// 分配颜色 $bgColor imagecolorallocate($image, 255, 255, 255); // 白色背景 $textColor imagecolorallocate($image, 230, 230, 230); // 黑色文字// 填充背景 image…
最新文章