参加开源贡献后,大厂向我抛出了橄榄枝
前言
2021 年,openLooKeng 社区又迎来了新的蓬勃发展,社区活跃度持续提高。目前,openLooKeng 社区用户数达到 100k+,社区下载量突破 100k+,累计收到 2000+PR,1500+PR,1500+comments。当前社区汇集了 30+来自金融、政府、互联网、教育等不同行业的合作伙伴加入。如今社区一派生机勃勃,绿荫环绕的景象。
近期,openLooKeng 社区特推出《社区超新星》专栏,分享社区“爱马仕”们挥洒汗水所得的开源成果以及参与开源过程中发生的小趣事
如果你也想让大家看见闪闪发光的你,欢迎投稿告诉社区你的故事。
优秀故事还会获得,社区提供的走心奖品和纪念品哦!
投稿请加 openLooKeng 社区小助手微信(openLooKengoss);并注明“投稿”。
感谢大家的支持!
我们故事的主人公:
“通过接触开源项目,我收获了很多。让我真正深入到底层与框架,实现了让自己的代码为人所用;让学计算机的我更加坚定了对于技术的不懈追求;同时,让我惊喜的是,这次经历成为了我求职路上的闪光点!”
我与开源的缘起
2020 年底的某天,老大交给我一项任务,让我去调研一下。听老大说 openLooKeng 的 OLAP 引擎是一款“跨数据源跨地域的数据虚拟引擎”。
我立马来了兴趣,立刻上网搜索,以一种看得见摸得着的方式知道 openLooKeng 是什么?可以查 Mysql,可以查 Hive,特性很不错,可以缓存,还可以启发式引擎查询效率。这家伙有点东西啊!用老大的话来说,参与开源项目,“这是个锻炼⾃⼰的机会,做得好我们也能参与开源,回馈社区。”
但是!很快我就发现,openLooKeng 不支持 ClicKHouse,可我们这边最多用的就是 ClicKHouse,我突然虎躯一震,意识之前用的最多的就是 ClicKHouse,搞这个不太会,但是一想到会接触到更多的技术,为开源社区贡献自己的一份力,我就瞬间来了斗志,决心接受老大给的项目。
我的开源故事
先了解概念,任何⼀个⼤数据引擎出现,都⼀定是有其⾯临的场景,为了解决痛点⽽出现的,就像 ClickHouse 单表查询的能⼒⾮常优秀,在⼀些报表业务上很适合。⽽openLooKeng,主要是做联邦查询,解决跨 数据源跨地域的查询能⼒。
openLooKeng 实现跨数据源跨地域⼤数据分析是基于 Connector 实现的,不同的 Connector 提供了查询不同数据 源的能⼒。不同数据源的连接器只需要实现 SPI 对应的接⼝就可以被 openLooKeng 调⽤。所以实际上只需要实现 ClickHouse connector 就⾏了,并不涉及对于 coordinator 和 worker 部分的修改。
让 openLooKeng 能够查询 ClickHouse 很容易,我很快完成了,但是很快就发现,查询效率却很低,那么,参与开源项目遇到的瓶颈来了:
如何利用 openLooKeng,提高查询 ClickHouse 的效率?
查阅资料,在与社区小伙伴交流过程中,我了解到 connector。而如果想要提⾼查询的效率,可以利⽤数据源本身的计算能⼒,将算⼦下推,减少数据的传输,让 filter 接近数据源。 要下推的话需要对语法进⾏适配,需要对应语法哪⾥有区别,对 SQL 进⾏测试。这些可难不倒我(我已不是⼏年前的代码菜⻦!),因此完成后,我信⼼满满的交给了测试的同学。
过了⼏天,测试的同学反馈说,“这啥呀,好多业务的 SQL 运⾏好慢呀。”我辩解道,“只能将 openLookeng 识别的函数下推到 ClickHouse 中。”随即,我想起,如果只能将 openLooKeng 的函数进⾏下推,那查询效率是⽆法接受的。⻁哥说,“没办法,只能采⽤⼀种较丑的⽅式进⾏映射,你先把业务要⽤的这⼏种映射到 olk 有的近似 函数上吧。”这样的做法虽然能⽤,但是未来有新的业务函数⼜怎么办呢?
事情的转机出现在 openLooKeng1.3 版本的发布,在这⼀版本中,增加了对于外部函数的⽀持,我赶快将所有的业务代码都修改了映射⽅式,这次终于能进⾏性能测试了。在内部测试没问题后,我将代码 PR 到了社区的版本,虽然所做的功能不多,但是能为社区贡献自己的力量,还是很有成就感的。
个人技能 UP,求职路的闪光点
作为当时还是在校学⽣的我,之前最多就是看看开源项目,自己 clone 下来玩玩,不会 PR 上去,所以是我第一个,真正意义上正式参与实践的开源项目。接触 openLooKeng 后,使得我个人能力有了很大的提升,代码更规范,同时也对测试更加重视了!学习优秀的开源代码和设计模式,并且亲自去实践,去 debug,去试验新的 feature,这些都会对编程能力带来很大的提升。同时,还会感受到技术的有趣之处!
在学生阶段,其实很多项目都是 Demo 项目,不需要向别人负责,面临的场景也较为单一。而开源项目,属于较为深入的了解一个实际的项目,项目会经受大家的考验,会在社区的 issue 中逐渐做到完善,面临的场景也较为复杂,这是学生在学校很难接触到的。更加让我激动的是,因为作为开发者,参与开源项目贡献,这经历成为了求职路上的闪光点,在后⾯的秋招中,让我收获了不少⼤⼚offer。
因为 openLooKeng 社区,真正感受到技术带给我的乐趣,并且让我坚定了对于技术的追求。“未来要参与到更核⼼的⼯作!”
版权声明: 本文为 InfoQ 作者【openLooKeng】的原创文章。
原文链接:【http://xie.infoq.cn/article/2b84ebe7e5076206d84acc0b3】。文章转载请联系作者。
评论