–本文为社区伙伴heatao原创投稿,未进允许请勿转载。
– 转载需联系openLooKeng社区小助手微信。
前言
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社区,真正感受到技术带给我的乐趣,并且让我坚定了对于技术的追求。“未来要参与到更核⼼的⼯作!”