隨著互聯網技術的不斷發展,各行各業的數據處理量與日俱增,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的數據集進行測試。
測試環境
服務器配置
1.CPU:2顆10核Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz,超線程40
2.內存:256GB
3.硬盤:4*1000GB SSD
4.操作系統: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文件,將數據導入。
運行結果比較
![]()
(兩款數據庫不同Query下的耗時,越小越好)
![]()
總結
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同時通過計算存儲分離架構解決了傳統數據倉庫高成本、高門檻、難維護、難擴展的問題,可以讓企業用戶輕松構建核心數倉、數據集市、實時數倉以及湖倉一體數據平臺,是當今的企業構建數據湖倉的不二選擇。