去 HBase,Kylin on Parquet 性能表現如何?


Kylin on HBase 方案經過長時間的發展已經比較成熟,但也存在着局限性,因此,Kyligence 推出了 Kylin on Parquet 方案(了解詳情戳此處)。通過標准數據集測試,與仍采用 Kylin on HBase 方案的 Kylin 3.0 相比,Kylin on Parquet 的構建引擎性能有了很大的提升,對於復雜查詢也有更好的性能表現。

 

本篇文章主要通過使用標准 SSB 數據集和 TPC-H 數據集,來分別獲取 Kylin on Parquet 和 Kylin 3.0 構建引擎以及查詢引擎的性能數據,然后進行對比分析,讓用戶們能夠更清楚地了解到當前 Kylin on Parquet 相對於 Kylin 3.0(仍采用 Kylin on HBase )的優勢和不足。

  • SSB(Star Schema Benchmark)是一套用於測試數據庫產品在星型模式下性能表現的基准測試規范,也是 OLAP 領域經常會用到的數據集。
  • TPC(Transaction Processing Performance Council,即事務處理性能委員會)有多種基准測試體系,在這里我們使用了 TPC-H 數據集。使用 TPC-H 的主要目的是測試數據庫系統復雜查詢的響應時間,以此來評價特定查詢的決策支持能力。

Kyligence 公司研發了適用於 Kylin 的 SSB 和 TPC-H 數據集工具,並且包含了標准 SQL,源碼倉庫地址如下:

  • https://github.com/Kyligence/ssb-kylin
  • https://github.com/Kyligence/kylin-tpch

 

01

測試環境配置

Hadoop 集群:

  • 4 個物理節點
  • Yarn 隊列擁有 400G 內存和 128 個 CPU 核數

Kylin 3.0 使用的是 MapReduce 引擎。Kylin on Parquet 目前只支持內部定制版本的 Spark 引擎,定制版相對於社區版主要是做了性能方面的優化,其他方面與社區版 Spark 並沒有區別。

  • Spark 源碼倉庫https://github.com/Kyligence/spark/tree/2.4.1-kylin-r3
  • Spark 二進制包下載https://download-resource.s3.cn-north-1.amazonaws.com.cn/osspark/spark-2.4.1-os-kylin-r3

 

02

構建性能對比

Over SSB

下面兩個圖分別表示構建時間和構建完成后占用存儲空間的對比。我們可以看到在 SSB 6000 萬和 9000 萬數據量下,新的構建引擎構建速度快了一倍,最終占用存儲空間也減少了接近一倍。

Building Duration Over SSBResult Size Over SSB

值得一提的是,Kylin on Parquet 最終構建的數據只包含 HDFS 上的數據,由於 Kylin on HBase cuboid 文件構建完成之后 HDFS 上的文件需要轉換為 HFile,而且為了 merge 准備,HDFS 上的數據默認是不會清除的,所以實際存儲還會多一倍空間;而使用 Parquet 后,只需要一份數據即可以用於查詢,也可以用於 segment 合並,所以總體對比,Kylin on Parquet 的占用空間大約只有 Kylin on HBase 存儲的 1/3 到 1/4 !

構建完成后前端頁面會顯示 Cube 的大小,如下圖所示:

Kylin on Parquet

      △ Kylin on Parquet

Kylin 3.0

      △ Kylin 3.0

 

03

查詢性能對比

Kylin on Parquet 的查詢引擎會在第一次查詢的時候在 YARN 上創建一個常駐進程,專門用來處理查詢任務,所以第一次查詢會比較慢(初始化過程大約 20 秒),這里的測試並沒有將第一次查詢時間統計在內。

最近一周,查詢引擎兼容性的問題也得到了進一步的修復,目前大部分 SQL 查詢包括 CountDistinct, TopN, Percentile 等目前都已經能夠支持。

我們使用 SSB 數據集(9000萬行)和TPC-H(1200萬行)官方標准 SQL 進行查詢響應時間測試,查詢響應時間越低,查詢引擎性能表現越好。兩個數據集的標准查詢 SQL 可以在文章開始提到的 SSB 和 TPC-H 數據集工具倉庫中找到。

Over SSB

從下圖中我們可以看到對於 SSB 數據集, Kylin on Parquet 查詢響應要比 Kylin 3.0 的要慢,但是大部分的查詢還是能夠在 1 秒內返回。

Query Response Over SSB

Over TPC-H

因為 TPC-H 的主要目的是測試數據庫系統復雜查詢的響應時間,所以 TPC-H 數據集的 SQL 更加復雜,要求更高,從下圖中可以看到 Kylin on Parquet 對查詢復雜的 SQL 處理時間更快,具有明顯優勢。

Query Response Over TPC-H

 

04

總結

通過 Kylin on Parquet 和 Kylin 3.0 查詢構建引擎的性能對比數據我們能夠看到,Kylin on Parquet 的構建引擎性能有了很大的提升,構建時間和存儲空間都減少了接近一倍。從 SSB 數據集查詢對比結果來看,查詢引擎對於簡單的查詢請求和 Kylin 3.0 有一定差距,但是大部分還是能夠做到秒級響應。而對於 TPC-H 數據集測試使用的比較復雜的 SQL 來說,一般后計算會比較多,新的查詢引擎會有更好的性能表現。

目前, Kylin on Parquet 方案(了解詳情戳此處)還處在不斷完善的階段,歡迎大家來體驗。最后附上 GitHub 倉庫地址:https://github.com/Kyligence/kylin-on-parquet-v2.git。

QRcode

大家有問題可以提 issue 和 pr,也歡迎大家加一下上圖的微信群,一起討論完善。

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM