瘋狂吐槽 Kylin 的我爲什麼成爲了 Kylin Committer

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米的大刀如是說

那當然是加上我們社區運營小姐姐的微信,多給她投投稿啦。(運營小姐姐:???算了,趁機留個投稿郵箱:[email protected]

所以,你該知道我們有多願意接納新社區開發者了吧?還在猶豫什麼?以你名字首字母爲前綴的郵箱,可能只有 apache 郵箱還有了。

 

彩蛋環節

封面照大揭祕~~~ 

Temple Zhou

天鵬

一個夢想成爲廚師懷揣着鍋鏟的暖男,

很偶然地成爲了一名手敲鍵盤的程序猿

又因爲偶然的原因

投入丁香園的懷抱

開始了票圈轉發醫學科普文的新新暖男人設

是不會在妹子感冒的時候讓她多喝水的那種哦~

問題來了

人見人愛的天鵬同學還缺女票嗎?

運營小姐姐最近發現了蛛絲馬跡!

(下拉至答案)

 

 

 

 

 

 

運營小姐姐:

聽說你的簡書名叫“帥大狗”,能講講這筆名背後的故事咩?不會藏着狗糧吧?

帥大狗本狗  : 

不愧是運營小姐姐。我老婆在遊戲裏隨機到了個名字叫“醜大狗”,所以你懂的…現在已經把筆名改成“醜大狗”了Orz

狗糧真好恰!

 

別忘了看看帥氣的「醜大狗」同學的投稿,乾貨滿滿:

Kylin Memcached IO 線程死亡診斷 

Tableau Generic JDBC 連接 Kylin

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

 

「醜大狗」同學的簡書賬號:

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

 

瞭解更多大數據資訊,點擊進入Kyligence官網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章