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

来源:https://www.cnblogs.com/kyligence/archive/2020/05/06/how-does-kylin-on-parquet-perform-without-hbase.html
-Advertisement-
Play Games

Kylin on HBase 方案經過長時間的發展已經比較成熟,但也存在著局限性,因此,Kyligence 推出了 Kylin on Parquet 方案。通過標準數據集測試,與仍採用 Kylin on HBase 方案的 Kylin 3.0 相比,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官網


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 當你在自己平臺進行測試的時候,需要告訴討論的對方自己的型號,配置;這樣maintainer 才能分析你測試的合理性: macos 獲取自身的cpu型號,可以使用sysctl 命令: ➜ ~ sysctl -a | grep brand_string linux 平臺,可以直接在 /proc/cpui ...
  • 最近 CentOS 系統,內部裝了許多軟體,導致磁碟空間大小不足,因此需要對系統的磁碟空間進行擴充。 1.虛擬機擴展磁碟容量 這裡填寫最終的磁碟大小,點擊擴展。 這裡的擴展只是增加了操作系統的磁碟空間,並沒有與系統內部的文件目錄掛載,所以,磁碟占有量還是不會變化,下一步就是要把擴展的容量掛載到文件目 ...
  • ngx_http_ssl_module簡介 為https提供支持 ngx_http_ssl_module參數解釋 1. ssl on|off; 2. ssl_certificate file; 當前虛擬主機使用PEM格式的證書文件 3. ssl_certificate_key file; 當前虛擬主 ...
  • 前言:在網上找了很多的博客教程,最後終於成功,記錄一下,方便日後的查找。 https://blog.csdn.net/M_Kerry/article/details/81664548大部分根據這個鏈接操作就好。 註意MySQL這裡會遇到很多問題。 完全卸載MySQL、mariadb https:// ...
  • 最近發現了一個比較好用的代理客戶端,比較智能;名字叫clash: https://github.com/Dreamacro/clash https://github.com/yichengchen/clashX https://github.com/Fndroid/clash_for_windows ...
  • 第三天MySQL學習 :分組函數、分組查詢、連接查詢(等值連接、非等值連接、自連接) ...
  • 學習視頻:https://www.bilibili.com/video/BV1tJ411r7EC?p=75 游標cursor:用於存放多條數據的容器。需要開始open和關閉close。游標下移使用“fetch...into...”。 declare cursor myCursor is select ...
  • /* *周一作為一周的開始 *當年的1月1號所在的周算作第一周 */ CREATE function GetWeekIndexFirstDate ( @date datetime ) returns int as begin /* *計算邏輯 *1.先找出當年的1月1號@firstDate *2.計 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...