隨著網際網路技術的不斷髮展,各行各業的資料處理量與日俱增,Hadoop 作為一項革命性的技術提供了處理海量資料的能力,隨之而來的Spark又大大提升了 Hadoop 的計算能力,解決了Hadoop 的效能問題,受到了大資料行業的熱捧。但到了2022年,Spark依然是大資料行業的最佳選擇嗎?
Hadoop 生態系統經過多年的發展,已經在世界範圍內廣泛的採用,許多企業已經搭建了基於Hadoop生態圈的大資料平臺,並且嘗試更加深入的應用,比如資料倉儲遷入的嘗試,作為分析型場景的主要元件Hive與Spark扮演了主要的角色。
Hadoop上的SQL支援一開始是Apache Hive,Hive自帶的計算引擎是面向磁碟的MapReduce,受限於磁碟讀/寫效能和網路I/O效能的約束,在處理迭代計算、實時計算、互動式資料查詢等方面並不高效,其主要適用場景是批處理模式。針對這一不足,Spark將資料儲存在記憶體中並基於記憶體進行計算是一個有效的解決途徑。Spark 允許將中間輸出和結果儲存在記憶體中,節省了大量的磁碟 IO。並且使用 DAG 排程程式,查詢優化程式和物理執行引擎,實現批量和流式資料的高效能。同時 Spark 自身的 DAG 執行引擎也支援資料在記憶體中的計算。
偶數科技研發的資料倉儲OushuDB, 主要依託雲原生特性、計算儲存分離架構、強事務特性、完整SQL標準支援、高效能並行執行能力等一系列底層技術的變革,從而實現高彈性、高效能、強擴充套件性、強相容性等上層技術的變革,最終幫助企業有效應對大規模、強敏態、高時效、智慧化的趨勢。
這次我們將對OushuDB 與Spark 3.0的效能做一次對比。
資料查詢哪家強?
為了更直觀的比較Spark與OushuDB的查詢能力,我們用TPC-H(商業智慧計算測試)來對OushuDB和Spark進行測試,TPC-H是美國交易處理效能委員會(TPC,Transaction Processing Performance Council) 組織制定的用來模擬決策支援類應用的一個測試集,目前在學術界和工業界普遍採用它來評價資料查詢處理能力。
國際通用的資料庫測試標準TPC-H包括 22 個查詢(Q1~Q22),我們主要的評價指標是各個查詢的響應時間,即從提交查詢到結果返回所需時間,我們分別對兩個平臺進行單節點使用Scale為100的資料集進行測試。
測試環境
伺服器配置
CPU:2顆10核Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz,超執行緒40
記憶體:256GB
硬碟:4*1000GB SSD
作業系統:Centos 7.4
對比軟體版本
OushuDB 4.0
Spark 3.0
資料庫引數
Spark
OushuDB
注:為測試在同一資源水平上,並且更接近生產實際,core與記憶體設定相同,分別是16 core與1gb
表屬性
注:資料分佈,OushuDB可以表級設定及控制資料分佈“桶數”,直接影響資源使用
資料生成方式
提前用dbgen生成TPCH測試用文字資料;OushuDB採用外部表並行匯入,並進行Analyze。OushuDB採用可寫外部表將匯入的資料寫入指定的HDFS目錄,供Spark匯入資料。
Spark建立外部表,指向OushuDB寫出HDFS檔案,將資料匯入。
執行結果比較
總結
Spark新的自適應查詢執行(AQE)框架只在某些場景提升了Spark效能,基於這次TPC-H測試由於新SIMD執行器的優勢,OushuDB全面效能超過Spark最大相差55倍,總體(22查詢個)效能8倍以上。在各行業實際應用場景進行大規模資料查詢的過程中, OushuDB的優勢就相當明顯了。
OushuDB作為一款高效能雲資料庫,支援訪問標準的ORC檔案,並且具備高可擴充套件,遵循ANSI-SQL標準,具有極速執行器,提供PB級資料互動式查詢能力,比傳統數倉/MPP快5-10倍,比Hadoop SQL引擎要快5-30倍。OushuDB同時通過計算儲存分離架構解決了傳統資料倉儲高成本、高門檻、難維護、難擴充套件的問題,可以讓企業使用者輕鬆構建核心數倉、資料集市、實時數倉以及湖倉一體資料平臺,是當今的企業構建資料湖倉的不二選擇。