跳到主要內容
公司博客上

Databricks創造官方數據倉庫性能記錄

通過雷諾鑫而且Mostafa身

2021年11月2日 公司博客上

分享這篇文章

今天,我們自豪地宣布磚的SQL已經設定了新的100TB TPC-DS世界紀錄,是數據倉庫的黃金標準性能基準。Databricks SQL的表現比之前的記錄高出2.2倍.與其他大多數基準新聞不同的是,這一結果經過了TPC委員會的正式審計和審查。

這些結果得到了巴塞羅那超級計算中心的研究的證實,該中心經常在流行的數據倉庫上運行TPC-DS衍生的基準測試。他們的最新研究對Databricks和Snowflake進行了基準測試,發現Databricks的速度快2.7倍,在性價比方麵好12倍.這個結果驗證了這樣一個論點:隨著生產中數據大小的增加,雪花這樣的數據倉庫變得非常昂貴。

Databricks一直在數據湖上快速開發全麵的數據倉庫功能,在一個被稱為“數據架構”的數據架構中提供了兩個世界的最佳功能數據湖屋.我們在2020年11月宣布了Databricks SQL的全套數據倉庫功能。從那時起,一個懸而未決的問題就是基於湖畔小屋的開放架構能否提供經典數據倉庫的性能、速度和成本。這一結果毫無疑問地證明了湖屋建築是可能實現的。

不僅僅是分享結果,我們想借此機會與你們分享我們如何實現這一水平的業績以及為此付出的努力。但我們將從結果開始:

TPC-DS世界紀錄

Databricks SQL交付32,941,245 QphDS @ 100TB.這打破了此前由阿裏巴巴定製係統保持的世界紀錄14,861,137 QphDS @ 100TB乘以2.2x。(阿裏巴巴擁有一個令人印象深刻的係統,支持全球最大的電子商務平台)。Beplay体育安卓版本Databricks SQL不僅大大打破了之前的記錄,還將係統的總成本降低了10%(基於已公布的上市價格,不含任何折扣)。

如果你不知道QphDS是什麼意思,這很正常。(如果不看公式,我們也不會。)QphDS是TPC-DS的主要指標,它代表了工作負載組合的性能,包括(1)加載數據集,(2)處理一係列查詢(功率測試),(3)處理幾個並發查詢流(吞吐量測試),以及(4)運行插入和刪除數據的數據維護功能。

前麵提到的結論得到了巴塞羅那超級計算中心(BSC)的研究團隊的進一步支持,他們最近運行了一個來自TPC-DS的不同基準測試,比較了Databricks SQL和Snowflake,發現Databricks SQL比類似大小的Snowflake設置快2.7倍。

圖1:巴塞羅那超級計算中心TPC-DS 100TB Power Run測試的運行時間。
圖1:巴塞羅那超級計算中心TPC-DS 100TB Power Run測試的運行時間。

圖2:巴塞羅那超級計算中心TPC-DS 100TB Power Run測試的價格/性能。
圖2:巴塞羅那超級計算中心TPC-DS 100TB Power Run測試的價格/性能。

什麼是TPC-DS?

TPC-DS是由事務處理性能委員會(Transaction Processing Performance Council, TPC)定義的數據倉庫基準。TPC是一個非營利性組織,由數據庫社區在80年代末創立,專注於創建模擬現實場景的基準測試,因此可以客觀地用來衡量數據庫係統的性能。TPC在數據庫領域產生了深遠的影響,在Oracle、Microsoft和IBM等老牌供應商之間進行了長達十年的“基準測試戰爭”,推動了該領域的發展。

TPC-DS中的“DS”代表“決策支持”。它包括99個不同複雜度的查詢,從非常簡單的聚合到複雜的模式挖掘。這是一個相對較新的基準(始於2000年代中期),以反映分析日益增長的複雜性。在過去十年左右的時間裏,TPC-DS已經成為事實上的標準數據倉庫基準,幾乎被所有供應商采用。

然而,由於其複雜性,許多數據倉庫係統,甚至是由最成熟的供應商構建的係統,都對官方基準進行了調整,以便他們自己的係統能夠表現良好。(一些常見的調整包括刪除某些SQL特性,如rollup或更改數據分布以消除傾斜)。這就是為什麼盡管互聯網上關於TPC-DS的頁麵超過400萬頁,但官方的TPC-DS基準測試卻很少提交的原因之一。這些調整表麵上也解釋了為什麼大多數供應商根據自己的基準測試似乎擊敗了所有其他供應商。

我們是怎麼做到的?

如前所述,Databricks SQL是否有可能在SQL性能上勝過數據倉庫一直是一個懸而未決的問題。大多數挑戰可以歸結為以下四個問題:

  1. 數據倉庫利用了專有的數據格式,因此可以快速地發展它們,而Databricks(基於Lakehouse)依賴於變化不那麼快的開放格式(如Apache Parquet和Delta Lake)。因此,edw將具有固有的優勢。
  2. 出色的SQL性能需要MPP(大規模並行處理)架構,而Databricks和Apache Spark不是MPP。
  3. 吞吐量和延遲之間的經典權衡表明,係統可以很好地處理大型查詢(以吞吐量為中心)或小型查詢(以延遲為中心),但不能同時處理兩者。由於Databricks專注於大型查詢,我們不得不在小型查詢中表現不佳。
  4. 即使這是可能的,傳統的智慧是,建立一個數據倉庫係統需要十年或更長時間。不可能這麼快就取得進展。

在接下來的文章中,我們將逐一討論它們。

私有和開放的數據格式

的關鍵原則之一Lakehouse架構是開放存儲格式。“開放”不僅避免了廠商的鎖定,而且使開發工具的生態係統能夠獨立於廠商。開放格式的主要好處之一是標準化。這種標準化的結果是,大多數企業數據位於開放數據湖中,Apache Parquet已成為存儲數據的事實上的標準。通過將數據倉庫級性能引入開放格式,我們希望最大限度地減少數據移動,並簡化BI和AI工作負載的數據架構。

對“開放”的一個明顯攻擊是,開放格式很難改變,因此也很難改進。雖然在理論上這個論點是有道理的,但在實踐中並不準確。

首先,開放格式的發展是完全有可能的。Parquet是最流行的大型數據存儲開放格式改進的多次迭代.這是我們介紹的主要動機之一三角洲湖是引入在Parquet層難以實現的額外功能。Delta Lake為Parquet帶來了額外的索引和統計數據。

其次,當將數據從對象存儲加載到本地NVMe ssd時,Databricks係統自動將原始Delta Lake和Parquet數據轉換為更有效的格式(無需用戶幹預)。這為進一步優化提供了機會。

也就是說,對於大多數數據倉庫工作負載,與數據倉庫使用的專有格式相比,Delta Lake和Parquet已經提供了足夠的優化。對於這些工作負載,優化機會主要來自更快地處理查詢的能力,而不是更快地掃描更多數據。事實上,對於TPC-DS,查詢以更優化的內部格式緩存的數據隻比查詢S3中的冷數據快10%(我們發現對於我們測試的數據倉庫和Databricks都是如此)。

MPP架構

一個常見的誤解是,數據倉庫采用的MPP體係結構對SQL性能很好,而Databricks沒有。MPP體係結構指的是利用多個節點處理單個查詢的能力。這正是Databricks SQL的架構。它不是基於Apache Spark,而是光子它完全重寫了一個引擎,用c++從頭構建,適用於現代SIMD硬件,並進行大量並行查詢處理。光子因此是一個MPP引擎。

吞吐量和延遲是平衡的

吞吐量與延遲是計算機係統中的經典權衡,這意味著係統不能同時獲得高吞吐量和低延遲。如果一個設計傾向於吞吐量(例如通過批處理數據),它將不得不犧牲延遲。在數據係統上下文中,這意味著係統不能同時有效地處理大型查詢和小型查詢。

我們不否認這種權衡的存在。事實上,我們經常在技術設計文檔中討論它。然而,目前最先進的係統,包括我們自己的和所有流行的倉庫,在吞吐量和延遲方麵都遠遠沒有達到最佳前沿。

因此,完全有可能提出一種新的設計和實現,同時提高吞吐量和延遲。這正是我們在過去兩年中構建幾乎所有關鍵使能技術的方式:Photon、Delta Lake和許多其他前沿技術都提高了大型和小型查詢的性能,將前沿技術推向了一個新的性能記錄。

時間和注意力

最後,傳統觀點認為數據庫係統至少需要十年左右的時間才能成熟。考慮到Databricks最近對Lakehouse的關注(以支持SQL工作負載),要提高SQL的性能需要付出額外的努力。這是正確的,但讓我們解釋一下我們是如何比人們預期的更快地做到這一點的。

首先,這一投資並不是一兩年前才開始的。自Databricks成立以來,我們一直在投資各種基礎技術,以支持SQL工作負載,這也將有利於Databricks上的AI工作負載。這包括一個完整的基於成本的查詢優化器、一個本地向量化執行引擎和各種功能,如窗口函數。由於Spark的DataFrame API可以映射到SQL引擎,Databricks上的絕大多數工作負載都是通過這些組件運行的,因此這些組件已經經過了多年的測試和優化。我們還沒有強調SQL工作負載。對Lakehouse的定位變化是最近發生的,這是由於我們的客戶希望簡化他們的數據架構。beplay体育app下载地址

其次,SaaS模式加快了軟件開發周期。在過去,大多數供應商每年都有一個發布周期,然後是另一個多年的周期,供客戶安裝和采用軟件。beplay体育app下载地址在SaaS中,我們的工程團隊可以提出一個新的設計,實現它,並在幾天內將其發布給客戶的子集。beplay体育app下载地址這種縮短的開發周期使團隊能夠快速獲得反饋並更快地創新。

第三,Databricks可以在領導力帶寬和資本方麵為這個問題帶來更多的關注。過去,構建新數據倉庫係統的嚐試都是由初創公司或大公司內的新團隊完成的。從來沒有一家數據庫初創公司能像Databricks(融資超過35億美元)那樣吸引到所需的人才。在一家大公司裏,一項新的努力隻是另一項努力,不會得到領導層的充分關注。

我們在這裏有一個獨特的情況:我們最初專注於建立我們的業務,而不是數據倉庫,而是相關領域(數據科學和人工智能),這些領域有許多共同的技術問題。最初的成功使我們能夠資助曆史上最積極的SQL團隊建設;在很短的時間內,我們組建了一個具有廣泛數據倉庫背景的團隊,這一壯舉將花費許多其他公司大約十年的時間。他們中有一些最成功的數據係統的首席工程師和設計師,包括亞馬遜Redshift;穀歌的BigQuery、F1(穀歌的內部數據倉庫係統)、Procella (Youtube的內部數據倉庫係統);甲骨文;IBM DB2;和Microsoft SQL Server。

總而言之,構建出色的SQL性能需要多年的時間。我們不僅利用我們獨特的環境加速了這一過程,而且我們在幾年前就開始了,盡管我們沒有使用擴音器來宣傳這個計劃。

真實的客戶工作負載

我們很高興看到這些基準測試結果得到了客戶的驗證。beplay体育app下载地址超過5000個全球組織已經利用Databricks Lakehouse平台解決了一些世界上最棘手的問題。Beplay体育安卓版本例如:

  • 麵包金融是一個技術驅動的支付平台,擁有大數據用例,如財務報告、欺詐檢測、Beplay体育安卓版本信用風險、損失估計和全漏鬥推薦引擎。在Databricks Lakehouse平台上,他們能Beplay体育安卓版本夠從夜間的批處理作業轉移到接近實時的輸入,並將數據處理時間減少了90%。此外,該數據平台可以以1.5倍的成本擴Beplay体育安卓版本展到140倍的數據量。
  • 殼牌正在使用我們的lakehouse平台,使數百名Beplay体育安卓版本數據分析師能夠使用標準BI工具對pb級數據集執行快速查詢,他們認為這是“遊戲規則改變者”。
  • Regeneron正在加速藥物靶點識別,通過將整個數據集的查詢時間從30分鍾縮短到3秒,為計算生物學家提供更快的見解——提高了600倍。

總結

Databricks SQL構建在Lakehouse架構之上,是市場上最快的數據倉庫,並提供最佳的價格/性能。現在,隻要攝入新數據,就可以以較低的延遲在所有數據上獲得出色的性能,而不必將數據導出到不同的係統。

這證明了Lakehouse的願景,即為數據湖帶來世界級的數據倉庫性能。當然,我們構建的不僅僅是一個數據倉庫。Lakehouse架構提供了覆蓋所有數據工作負載的能力,從倉庫到數據科學和機器學習。

但我們還沒有結束。我們已經組建了市場上最好的團隊,他們正在努力實現下一個性能突破。除了性能,我們還致力於在易用性和治理方麵的大量改進。期待來年我們有更多消息。

TPC不審核或驗證從TPC- ds衍生的基準測試結果,也不認為衍生的基準測試結果與公布的TPC- ds結果具有可比性。

免費試用Databricks

相關的帖子

看到所有公司博客上的帖子
Baidu
map