热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

成为我的饭是什么歌,成为我的软肋是什么意思

总之,离开Oracle行业后,我加入了丁香园,开始接触Kylin。真庆幸这种操作没有被Oracle申请专利,不然Kylin可能会直接夭折。不要说什么这都是基于预计算,快一点

Apache Kylin 最初由 eBay 开发,于 2015 年毕业成为 Apache 顶级项目,目前已被腾讯、美团点评、滴滴等全球上千家企业采用。Kylin 社区的成长离不开社区成员在代码、案例、文档等诸多方面不断的贡献,尤其是社区中的三十多位 Committer,他们不仅是社区里的技术中坚力量,也是热心的贡献者,来自丁香园的ggdhc正是其中一员。2018 年初,刚接触 Kylin 时,dfdys疯狂吐槽为什么入了 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,也陆陆续续向社区贡献代码,为了能让这款堪称国货之光的开源软件发展得越来越好。

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

两年后的今天,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 邮箱还有了。

 

彩蛋环节

封面照大揭秘~~~ 

dfdys

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

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

又因为偶然的原因

投入丁香园的怀抱

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

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

问题来了

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

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

(下拉至答案)

 

 

 

 

 

 

运营小姐姐:

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

帅大狗本狗  : 

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

狗粮真好恰!

 

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

Kylin Memcached IO 线程死亡诊断 

Tableau Generic JDBC 连接 Kylin

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

 

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

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

 

了解更多大数据资讯,点击进入Kyligence官网


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
author-avatar
杰ZGJ8513
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有