更快更穩:Apache Kylin 4.0.0-beta 正式發佈!

Apache Kylin 社區於日前宣佈:Apache Kylin 4.0.0-beta 正式發佈!歡迎大家下載使用。

Apache Kylin 是一個開源的分佈式分析引擎,提供 Hadoop/Spark 之上的 SQL 查詢接口及多維分析 (OLAP) 能力,支持對超大規模數據進行亞秒級查詢,已被 eBay、騰訊、美團、滴滴、汽車之家、貝殼找房、OLX 集團等全球上千家企業採用。

1. Release Notes

Apache Kylin 4.0.0-beta 是繼 Kylin 4.0.0-alpha 之後的一個重要版本。當前的 4.0.0-beta 是 Kylin 4.x 發佈的第二個測試版本,修復了 4.0.0-alpha 中的若干 bug,並且補充了一些對 Kylin 3.x 原有功能的支持,包括System CubeHadoop 3 的支持部分高級函數Cube Planner Phase

1 等等;後續我們會持續更新和發佈新版本,歡迎大家多多參與體驗和討論。

Kylin 4 使用 Parquet 這種真正的列式存儲來代替 HBase 存儲,從而提升文件掃描性能;同時,Kylin 4 重新實現了基於 Spark 的構建引擎和查詢引擎,使得計算和存儲的分離變爲可能,更加適應雲原生的技術趨勢。

本次發佈共添加了 25 個新功能以及改進,修復了 14 個問題,詳情請訪問:

https://kylin.apache.org/docs/release_notes.html


重要更新:

[KYLIN-4857] - 爲 Kylin 4 重構System Cube

[KYLIN-4842] - 爲 Kylin 4 支持 grouping sets 函數

[KYLIN-4829] - 爲查詢引擎支持線程級別的 Spark 參數配置

[KYLIN-4813] - 爲構建引擎重新開發日誌系統

[KYLIN-4858] - 支持在 CDH 6.X 上部署Kylin 4

[KYLIN-4818] - Kylin 4 支持 Cuboid 行數統計

[KYLIN-4817] - 爲 Kylin 4 重構 Cube 遷移工具


2. 下載

下載 Apache Kylin 4.0.0-beta 源代碼及二進制安裝包,請訪問下載頁面:

https://kylin.apache.org/cn/download/


3. 文檔更新

在本次發佈過程中,我們也在持續更新和發佈新的使用文檔,歡迎大家提出寶貴的意見。

截至目前,我們已經發布了 Kylin 4 在不同 Hadoop 版本的安裝文檔,同時也更新了關於 Cube Planner 功能、System Cube 功能、讀寫分離功能和垃圾清理工具等介紹文檔。更多文檔歡迎大家參考 Apache Kylin 官方 wiki:

https://cwiki.apache.org/confluence/display/KYLIN/User+Manual+4.X


4. Kylin 4 社區用戶反饋

在最近的三個月,我們陸續收到大家的試用體驗以及性能對比報告。我們總結了一下,用戶試用的整體反饋是:

1. 對於 Kylin 4 新的構建和查詢的調優和排錯過程,需要一定的時間來適應和學習。

2. 對比 Kylin 3 的 HBase Storage,對於簡單查詢,Kylin 4 的查詢響應時間基本持平或者耗時有一定幅度的增加;對於掃描行數較多或者返回行數較多的複雜查詢,Kylin 4 的穩定性和響應時間有較大的優勢

3. Kylin 4 的查詢和構建性能調優仍有較大的優化空間,社區正在嘗試的途徑包括:將 Spark 版本升級到 Spark 3;使用 Alluxio,JuiceFS 等提供緩存服務;針對不同場景提供更多高級索引等策略。

以下是來自某互聯網大廠用戶的部分測試報告:

* 注意:本次結果僅供參考

場景一(簡單查詢)

通過以上結果展示,可見在沒有做查詢優化的情況下,Kylin 4.0 簡單查詢的查詢響應時間表現不及 Kylin 3.0。通過初步溝通和測試,經過 ShardBy Column 優化手段後,簡單查詢的查詢響應時間可以降低 1~2s,與 Kylin 3.0 的性能變得更加接近。

Kylin 4.0 簡單查詢的查詢響應時間表現不及 Kylin 3.0 的原因,經分析主要如下:

1. HBase 對 rowkey 的索引速度快,Region 有緩存機制,容易實現亞秒級響應;

2. 本次測試使用的 Spark 3 開啓了 AE,也會對小查詢有一定的負面影響;

3. SparkSQL 執行需要準備時間進行節點分配和閉包分發,需要訪問 Hadoop API 進行文件訪問,這些額外的時間都是可以通過後續的優化來改善的,例如添加 Alluxio/JuiceFS 提供緩存。

場景二(返回結果行數多的查詢)

這些 SQL 的模式主要是如下兩類:

- 模式一:SELECT DISTINCT product    FROM table WHERE version IN ( ...so many versions... )

- 模式二:SELECT package,    SUM(occur), count(distinct device) FROM table WHERE version IN ( ...so    many versions... ) group by package

由於 IN 子句中包含過多的可選值,加上 package 是高基維度,導致 Kylin 在掃描和二次聚合的壓力都非常大,Kylin 3.0 不適合進行這樣的“導出式”查詢。但 Kylin 4.0 利用 Spark 計算引擎的能力,能夠在十分可觀的時間內得出需要的結果。這裏舉個例子:

場景三(時間跨度大的查詢)

這 4 個查詢的 SQL 除了在時間範圍上不同其他完全相同。從數據不難看出,時間跨度增長一倍,Kylin 3.0 需要掃描的數據量和查詢響應時間也相應地增長近一倍。而 Kylin 4.0 使用 Spark 分佈式計算,更高的並行度帶來的優勢便體現了出來。

當前 Kylin 4.0.0-beta 已經成爲一個相對穩定的版本,在多個早期用戶的測試驗證中都驗證了構建和查詢功能基本達到相對完備的程度,但是目前仍有不少在性能和功能上的提升空間。

我們十分歡迎大家積極參與到測試和開發的過程中,並且對 Kylin 4 的下一步開發路線提供你們的寶貴意見,說不定下一個 Kylin Committer 就是你!

5. 社區貢獻者

感謝所有參與 Kylin 4.0.0-beta 版本設計、開發、測試、討論的社區貢獻者們:

* 注:以下名單按照首字母排序,不分先後

Congling Xia, Kaiqi Xue, Lei Zhu, Linghui Zeng, Rupeng Wang, ShengJunZheng, Xiaoxiang Yu, Yangmin Luo, Yaqian Zhang, Zhichao Zhang

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