02.28 360聯查引擎新版發佈,究竟是變形金剛還是瑞士軍刀?

360聯查引擎新版發佈,究竟是變形金剛還是瑞士軍刀?


前言

伴隨著格林尼治的時間戳自增至2020年,計算機內的時鐘振盪器在Tick-Tock聲中也蕩過50個年頭。在這50年的計算機發展史上,我們見證了摩爾定律的準確預測和逐步失效,也見證了安迪比爾定律在IT產業中的市場催生。從硅谷仙童半導體公司的興起,到英特爾與德州儀器的取而代之,再到華為海思芯片的破局。這些計算機產業的不間斷變革,被CPU中這片不休止的小小時鐘電路見證銘記。

當然,在這悠悠的歲月長河中,360的聯查引擎也悄然在上面刻下記號,從去年1月份開源,到7月份全球架構師峰會的分享,我們從一個小小的項目經過不斷孵化,最終站在了大家眼前。我們很高興地看到各大公司也都相繼推出了自己的聯查解決方案,成功服務了自己的業務,這代表聯查的落地場景經受住了考驗,背後潛藏的價值逐漸被企業發現。當然,此消彼長的質疑與讚譽聲也推動我們不斷鞏固社區,豐富功能,以期帶來更大價值。


導讀

本次聯查引擎Quicksql發佈的版本是0.7,距離上個版本0.6已經時隔了大半年時間,這段時間裡Quicksql到底有哪些優化和更新?是否有重大特性的升級?到底是像變形金剛一樣功能強大,變換自如?還是像瑞士軍刀一樣小巧精悍,銜接方便?

接下來將詳細闡述本次發版帶來的新特性,一睹為快吧!

  • 整體架構能力持續優化增強

在0.6發佈後的很長一段時間內,不斷有人問我們:”Presto也支持聯查,Quicksql和Presto有什麼區別呢?”,”Quicksql底層使用Spark,Spark自身也支持數據源下推,有什麼區別呢?”。由於功能的侷限,這兩個問題猶如太乙的捆仙繩,股股纏繞Quicksql使其難脫其困。終於,在0.7版終於有了用事實說話的能力。Quicksql在新版中引入了Flink計算引擎,使Flink也可以作為中間引擎彌合原生數據源不具備的能力,至此,Quicksql在架構上具備了多引擎切換的能力,可以作為中間件適配在原有的IT設施上,使業務原生的計算引擎在不用二次開發的基礎上具備聯邦查詢能力,即便業務沒有部署Presto,或Presto無法滿足相應的計算量及可靠性保障時,都可以由Quicksql配合原生計算引擎完成。這就意味著,不但離線計算可以滿足聯邦能力,實時計算同樣也可以由Quicksql囊括其中。Quicksql的架構能力能夠適應不斷演進的引擎存儲。

360聯查引擎新版發佈,究竟是變形金剛還是瑞士軍刀?


  • 引擎和數據源類型不斷豐富

在新版本中,Quicksql實現了基於Flink引擎的聯查能力,在Flink的批處理能力基礎上,用戶可以對MySQL和Hive進行任意的跨源跨庫統一查詢,為未來目標構建流批合一的業務提供聯查支持,也為下階段Quicksql引入Flink流式計算作好鋪墊。此外,作為對Spark引擎的增強, Quicksql新版增加了對Kylin數據源的支持,使得主體依託Kylin作OLAP分析的業務能夠搞定複雜聯合查詢場景。在引入新引擎和數據源的基礎上,Quicksql新版也進一步完善了計算邏輯的下推能力,對於謂詞關聯比較等場景進行了深度優化。

360聯查引擎新版發佈,究竟是變形金剛還是瑞士軍刀?


  • 接入方式多樣化

舊版Quicksql的接入方式尚且單一,不具備應用對接的能力。在0.7版本中,Quicksql實現了基於Avatica改造的JDBC接入方式。通過預先啟動Quicksql Server,在應用端引入Quicksql Driver並使用標準的JDBC協議進行交互,完全實現與應用端的解耦。使得Quicksql既可以獨立部署作為工具使用,也可以以服務的形式被應用集成。JDBC整體架構如下圖,即在數據源上方啟動引擎對應的常駐JDBC Server,並維持現有資源,Driver端通過指定URL連接對應的引擎Server,Server充當數據源的JDBC門面,所有數據源都可以使用同一個Quicksql Driver進行連接查詢。

360聯查引擎新版發佈,究竟是變形金剛還是瑞士軍刀?


  • 豐富的使用文檔和測試用例

在新版中,我們尤其重視對社區的規範化建設,採納了社區內很多小夥伴的意見,我們重製了大部分文檔,儘可能將用戶使用過程中可能遇到的問題及疑惑在文檔中進行解答,更加專業並詳細地介紹項目已有的沉澱和後續的發展方向。在項目構建方面,社區進一步完善了相應測試用例,並構建了CI/CD,以提升項目敏捷性和快速構建的能力。

360聯查引擎新版發佈,究竟是變形金剛還是瑞士軍刀?

Quicksql作為一名一週歲的嬰孩,在諸多方面尚不完善。然而,在這一年的哺育中,Quicksql真切感受到了開源社區的力量,如同循循善誘的導師,來自四面八方的小夥伴連拉帶拽將你拖上正軌,這無疑堅定著小夥伴們將它做好的心,願能以星星之火吹動燎原之勢,落地更多業務場景,溫暖寒冷的北京。


結尾

最後在此非常鄭重地感謝兩位貢獻者:

  • @ Francis-du: 經驗豐富的社區推動者
  1. #推動Quicksql社區標準化建設,引入持續集成/社群溝通/標準文檔等
  2. #持續維持社區活躍度,引導新人小夥伴,貢獻多次提交
  • @ Shaofeng Shi: 來自Kyligence的Apache Kylin社區PMC
  1. #為Quicksql社區發展和運營給出良多經驗和建議
  2. #使得Quicksql具備查詢Kylin的能力

開源地址

  • Quicksql開源地址:https://github.com/Qihoo360/Quicksql
  • Quicksql文檔地址:quicksql.readthedocs.io


分享到:


相關文章: