行如蜗牛,决定入海 | 访 StarRocks 社区大使流木

身处技术创新驱动的时代,只有开放协作才能带来巨大进步,创造非凡成就。

StarRocks 社区的发起和发展,正是立足于各个开发者的“贡献”和“集智”。

流木,物联网领域的大数据开发者,主导将 StarRocks 应用在所在公司多个大数据项目。在 StarRocks 社区记录学习了几百个问答后,他撰写了 7 章 39 节 10 多万字的 “手把手教你玩转StarRocks”系列教程 ,被社区伙伴戏称为“流木大佬”。

在教程中,流木把日常学习和使用 StarRocks 的经验,按照安装部署、数据模型设计、数据导入进行归纳,加入很多使用技巧与避坑指南,以及使用上的拓展内容。

近期,流木接受社区邀请,正式成为 StarRocks 社区大使

他如何看待当下的 OLAP 产品,如何走上了社区之路?StarRocks 社区和顺势而为、心怀大海的社区之人流木聊了聊。

社区大使首先是开发者,谈起“开发者”的身份,你会怎么说?

回答这个问题有些心虚,我不像 StarRocks 很多前辈那样站在技术和时代的前沿领域,对 StarRocks 的代码贡献也不够大。我认为“开发者”是一群很纯粹的人, 心无旁骛,把困难问题变简单,将不可能变为可能。

正如同所有开发者都会接触的第一行程序一样,一句“hello world”给我打开了新世界的大门,也让我有机会可以把数据分析做得更快更强。

你曾立志成为一位伟大的程序员,这一愿望是如何产生的?如今对专业探索有怎样的想法?

这里也没有什么励志的故事,大家小时候可能都看过类似的电影桥段:一名黑客,一台电脑,噼里啪啦一顿操作,攻破敌方防御系统,我方队友潇洒拯救人质。让那时的我感觉程序员是一个非常酷的职业,心心念念多年。接触后发现和电影里的完全不是一回事,但是,依旧很酷!

现在我依然想以 “伟大的程序员”为目标,当然“伟大”的希望渺茫。如果条件允许,我希望今后继续专注于研发,参与到 StarRocks 以及其他同样优秀的产品建设中。

你是什么时候接触到技术社区的?有什么社区经历可以分享?

最早接触的技术类社区是一个交流计算机软硬件的社区,有几个老前辈的 ID 我现在还记得,比如“老毛桃”、“深山红叶”等等。很多前辈们乐此不疲地分享技术、完善作品,不遗余力指导新人,整个社区一片热火朝天。

记得有次一位社区同学磁盘出现故障,眼见多年积累的资料不保,情绪崩溃,在线求助。社区一位老前辈半夜看到消息后立刻联系那位同学,远程指导进行修复。当时没有现在这么方便的远程协作工具,也没有目前这样丰富的磁盘修复工具,那位老前辈熬了一宿,QQ 打字一行一行命令地指导,最后硬是把资料给救了回来。

这件事让我深切感受到,一个优秀的社区,技术过硬可能只是起点,志趣相投的分享讨论和那暖心的“人情味儿”才会让大家最有归属感。

你正亲历创业,能否展开讲讲?创业经历给你带来了什么,是否改变了你看待事物的眼光?

那是 2018年,我刚接触到物联网行业,机缘巧合遇到了两位前辈,一拍即合创立了公司,一起做智能家居、车联网和工业互联网领域的产品,公司发展至今,不算快、比较稳。

在公司成立前期,事情比较多和杂,在人员有限的情况下,我也在尝试不断转换角色,从研发到产品、再到商务和市场。这可能也是初创公司的团队都会经历的一个阶段吧。

在我不断的调整定位的过程中,去了很多不同的地方,接触了很多的人和事。变化最明显的还是处事的心态,少了一份浮躁,多了些许沉稳,让我可以更无畏地来探索新的领域。

你在使用和参与开发 OLAP 产品方面都有怎样的经历和心得?如何结缘 StarRocks?

在结识 StarRocks 前,使用较多的 OLAP 产品是 Vertica 和 ClickHouse,也尝试过把一部分业务放在PostgreSQL 和 Kylin 里来进行。随着需求的不断增加与变化,项目里引入的框架也越来越多,数据链路也变得比较复杂,团队同事就开始痛苦。

复杂框架下运维的问题先不提,当时遇到的第一个麻烦事是多个库里的数据不一致了,因为 ETL 任务调整过多次,导致最后有一个 Case 我们内部也分不清哪份数据是最后要用的了。 这个问题比较着急,只能拉上上下游的同学,大半夜的 Truncate 后再从 ODS 层跑批重拉,搞得大家都很心累。 当时我们就在讨论,为什么大数据产品不能也来个通用方案,一站式解决问题,这样大家的“心智负担”就降低太多了。

2020 年,我们在给一个数据安全类的项目做调研时,惊喜地发现了早期的 StarRocks。经过一系列的功能验证和稳定性验证,发现完全能满足业务需求,于是我们就开始调整业务框架,把业务重心向 StarRocks 迁移,如今主干业务 All in StarRocks!

作为 StarRocks 社区参与最深入的参与者之一,遇到过哪些问题?最有成就感的事情是什么?

说起遇到的问题,应该是 1.18 版本时期,我发现了一个查看物化视图创建状态时展示错位的问题。当时 GitHub 上提完 Issue 后出去喝了杯水,回来就发现勇哥(GitHub ID: chaoyli)已经给修复了!这个效率让我感动得不行,因为有这样的响应效率,只作为使用者,都会感觉非常踏实。

说起比较有成就感的事,我想起去年 7 月份我们刚升级到 StarRocks 1.16 版本时客户的反应。那天晚上 11 点左右我把集群升级完成、验证功能后刚回去,一个没留意,手机上四五个未接电话,吓得我以为是升级后出现什么问题了。

电话接通后,客户特别焦虑地问:跑批的时候感觉磁盘 IO 不对,监控上看 IO 都上百兆了,比之前高了好几倍,监控出什么问题了?我赶紧解释,1.16 版本加入了向量化导入等。客户震惊之余,止不住感叹 StarRocks 带来的性能提升确实是太大了。

过去半年里,你在自己的博客上撰写了超级详细实用的 StarRocks 使用攻略,是什么契机和状态促使你持续分享这么多的内容?

StarRocks 社区正是我最喜欢的那种有“人情味儿”的社区。社区群里,纯哥(GitHub ID:imay)、勇哥、鳄哥(GitHub ID: trueeyu)他们,都在工作之余不遗余力解决大家的问题。我也是在这种氛围里,从小白成长到了新手,再从新手到熟悉,一路成长,获益良多。

在学习过程中,我零散地整理了一些笔记,也会把自己能想到的一些拓展的点实践梳理出来。在早期大家对部署问题较多的时候,我在 StarRocks 的论坛整理了几篇和部署相关的“新手教程”,后面为了方便查阅,干脆做了一个 PDF 部署手册。

去年 10 月份,一次偶然的机会来 StarRocks 拜访时,发现纯哥关注到了那几篇教程,也鼓励我继续整理下去,做成一个系列的文档。当时纯哥笑着说这个系列他把名字都想好啦,就叫“手把手教你玩转StarRocks”。

在 StarRocks 这样有温度的社区待久了,任谁都会想也给社区做点事情。那次回来后就考虑:都说新手最懂新手,我自己就是从新手入门,那就把这整个过程给梳理出来吧。下定决心后剩下的事情反而不麻烦了。这本身就是一件让人乐在其中的事情,空了就整理一些,几个月过去,基本算是完成了。

后续我计划跟随 StarRocks 的版本迭代,不断调整补充博客的内容,希望可以帮助更多同我一样的新手快速上手起来。

感觉你的生活状态是比较简单的,投入了很多注意力都在工作上,能否描述一下你的典型一天?

每天起床后到公司,日常开会同步进度,在电脑前工作到下班,下班后学习一些新的东西,整理些资料什么的。我比较宅,有点工作狂,生活上就不够丰富了,大家平时还是多些爱好比较好。

请用除了人类以外的事物比喻一下自己。

蜗牛。 思想简单,踏踏实实的,慢慢走,应该也能走得比较远。

“流木”这个 ID 是什么意思?

闲暇时各类书籍都会看一些,在佛家《四十二章经》中曾看到过这样一句禅语:“夫为道者,犹木在水,寻流而行。不触两岸,不为人取,不为鬼神所遮,不为洄流所住,亦不腐败,吾保此木决定入海”。

当时看到后对佛家 “顺势”、“自然” 的理念觉得有一些触动,就断章取义改动了一下,作为自己的座右铭: 流木于水,不触两岸,不为人取,亦不腐败。 然后也就有了“流木”这个 ID,来让自己放平心态。

:sparkles::sparkles::sparkles:

社区正发起 StarRocks Community Champions 计划

希望能通过 StarRocks 社区渠道扩大更多“流木”的影响力,以回馈他们的贡献。

计划即将上线,敬请期待!

了解 StarRocks 社区规范和贡献流程:

https://github.com/StarRocks/community/tree/main/Contributors/guide

祝各位开发者拥有正向循环的社区之旅

支持 StarRocks,欢迎在 GitHub 为 StarRocks 点亮你的 :star2: