Kyligence Copilot - AI 数智助理,以 AI 变革企业经营与管理! 立即了解更多

疯狂吐槽 Kylin 的我为什么成为了 Kylin Committer

周天鹏
丁香园
2019年 12月 20日

Apache Kylin 最初由 eBay 开发,于 2015 年毕业成为 Apache 顶级项目,目前已被腾讯、美团点评、滴滴等全球上千家企业采用。Kylin 社区的成长离不开社区成员在代码、案例、文档等诸多方面不断的贡献,尤其是社区中的三十多位 Committer,他们不仅是社区里的技术中坚力量,也是热心的贡献者,来自丁香园的周天鹏正是其中一员。2018 年初,刚接触 Kylin 时,天鹏疯狂吐槽为什么入了 Kylin 的坑,短短两年后,被社区提名,成为 Kylin Committer。这两年间发生了什么呢?

注:文末有大大大大彩蛋!

 

结缘 Kylin

差不多两年前,我还是个浸淫在 Oracle Database 中的关系型数据库从业者。至于为什么离开 Oracle 圈?为了避免产生“世界上最好的语言是什么?”这种史诗级难题,这里就不讨论了吧。总之,离开 Oracle 行业后,我加入了丁香园,开始接触 Kylin。前不久,我竟然收到了成为 Apache Kylin Committer 的邀请,想想也是挺魔幻的。

Kylin 应该是我改行后遇到的感觉最亲切的一款开源软件了。你知道 Oracle 中的物化视图(还能带聚合函数的哦)吗?真庆幸这种操作没有被 Oracle 申请专利,不然 Kylin 可能会直接夭折。因为我从 O 圈过来,所以这种类似构建物化视图的操作一直是我在接触 Hive 后,了解 Kylin 前所幻想的。Kylin 帮我实现了同样的想法。

当我后来得知这个 Apache 顶级项目竟然还是国人主导的,便开始更加关注这个项目了。想着 Hive 里的数据可以不用跑笨重的 MapReduce,直接预计算好存在 HBase 里,然后亚秒级给你出结果,省下来的时间拿去多吃两斤猪肉,它不香么?不要说什么这都是基于预计算,快一点没什么了不起。对不起,用户不管你是怎么算的,对他们而言,又快又稳就是王道。

 

与 Kylin 的爱恨纠葛

丁香园早在 2016 年便开始使用 Kylin 作为交互式报表(使用Tableau 制作)的底层数据源,那个时候 Kylin 毕业成为 Apache 顶级项目还没多久。服役期间,报表的使用方对于报表的性能和功能基本是满意了。但是,这么个组合真的是苦了我们运维呢。

刚到丁香园那会儿,我们的运维负责人就对我表示 Kylin 这个系统很让人头疼,生成了很多垃圾数据不敢乱清,级也不敢乱升。我还记得我给 Kylin 提交的第一个 Patch 就是清理没用的全局字典,当时好几年用下来,我们废弃的全局字典大概就占了好几 T。吐槽 Kylin 成了我的生活日常。

Kylin 难运维归难运维,大数据量下的快速分析却是我们的刚需,我们也找不到好的替代方案。于是,我只好不断地优化 Kylin,也陆陆续续向社区贡献代码,为了能让这款堪称国货之光的开源软件发展得越来越好。

冒了几个泡之后,发现竟然还有这么友好的社区,我作为小白提交的代码比较烂,大佬差点没抱着键盘跑过来一行一行教我该怎么改。

两年后的今天,Kylin 已不是当年的那个 Kylin,在社区同学们的努力下,稳定性不断增强,功能也越来越丰富,今年也开始涉足实时分析领域。我也成为了 Kylin Committer。

 

成为 Kylin committer 之后?

当我告诉一位同事我成为 Committer 之后,他开玩笑地问:你是不是也是帮人美化代码风格,水出来的?大家对国人参与的开源软件似乎都有那么点不信任,改变大家对中国开源开发者的看法,任重而道远,只能靠大家的共同努力了。随着中国的 Apache Committer 越来越多,成为 Committer 早已不是一个终点,这只是一个起点。

相信所有社区开发者应该都会觉得自己贡献的项目像自己的孩子一样,自己喷可以,但不允许别人说他一个不字。所以,我们也计划进一步提升 Kylin 的易用性。

多维数据源虽好,但使用门槛还是要比关系型数据高一些。分析师们需要创建自己的cube,定义维度和度量。可能用于定义 cube & 构建 cube 的时间都够做好几张报表的了,新入职的分析师总需要花很长一段时间熟悉 Kylin。

所以我们希望能够将 Kylin 透明化,分析人员只需要知道有哪些关系表,尽管使用就好,而不是纠结于 cube 要怎么建,让 Kylin 安静地做一个加速层。

而且,当 Kylin 的使用者越来越多后,难免会有一些不(sang)那(xin)么(bing)好(kuang)的SQL发过来。此时,CPU 可能被打满,内存也有可能溢出。因此我们希望根据不同业务线分配不同的 Kylin 实例,不至于A业务线的慢查询把 B 业务线的正常查询也拖垮。这样一来,把 Kylin Docker 化,并用 Kubernetes 调度便成了我们最好的选择。一来可以避免物理机宕机的风险,二来可以让部署和扩缩容更加便捷。

 

对想成为 Kylin Committer 同学的建议

大部分社区开发者应该都是本职做开发的,很少有我这种本职做运维的异类。因为所处角度的不同,所以我会发现,Kylin 在启动过程中加载元数据的方式对数据库不太友好,诸如此类的问题。但开发人员很少会管这种鸡毛蒜皮的小事。

大部分人可能都不辞辛劳地往仓库里推送自己的新功能,殊不知,有些新功能会让部分用户升级后踩大坑。所以,尝试换个角度,你可能会看到不一样的提交 PR 的姿势。

最后,社区真的比代码重要,对项目的贡献并不只有提 PR 一种方式。那除了提交代码还有什么方式呢?(运营小姐姐拿着40米的大刀如是说

那当然是加上我们社区运营小姐姐的微信,多给她投投稿啦。(运营小姐姐:???算了,趁机留个投稿邮箱:rui.zou@kyligence.io

所以,你该知道我们有多愿意接纳新社区开发者了吧?还在犹豫什么?以你名字首字母为前缀的邮箱,可能只有 apache 邮箱还有了。

 

彩蛋环节

封面照大揭秘~~~ 

天鹏

一个梦想成为厨师怀揣着锅铲的暖男,

很偶然地成为了一名手敲键盘的程序猿

又因为偶然的原因

投入丁香园的怀抱

开始了票圈转发医学科普文的新新暖男人设

是不会在妹子感冒的时候让她多喝水的那种哦~

问题来了

人见人爱的天鹏同学还缺女票吗?

运营小姐姐最近发现了蛛丝马迹!

(下拉至答案)

 

 

 

 

 

 

运营小姐姐:

听说你的简书名叫“帅大狗”,能讲讲这笔名背后的故事咩?不会藏着狗粮吧?

帅大狗本狗  : 

不愧是运营小姐姐😳。我老婆在游戏里随机到了个名字叫“丑大狗”,所以你懂的…现在已经把笔名改成“丑大狗”了Orz

狗粮真好恰!

 

别忘了看看帅气的「丑大狗」同学的投稿,干货满满:

Kylin Memcached IO 线程死亡诊断 

Tableau Generic JDBC 连接 Kylin

又想 Cube 小,又想 Cube 跑得好?

 

「丑大狗」同学的简书账号:

https://www.jianshu.com/u/76a9b45adedb

添加企微

kyligence
关注我们

kyligence