中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

比Spark快100倍的GPU加速SQL引擎:BlazingSQL開(kāi)源了

2019-08-08    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

BlazingSQL 是基于英偉達(dá) RAPIDS 生態(tài)系統(tǒng)構(gòu)建的 GPU 加速 SQL 引擎,可以為各種 ETL 大數(shù)據(jù)集提供 SQL 接口,并且完全運(yùn)行在 GPU 之上。近日,其研發(fā)團(tuán)隊(duì)宣布,BlazingSQL 基于 Apache 2.0 許可完全開(kāi)源!

開(kāi)源項(xiàng)目地址: https://github.com/blazingdb/pyBlazing/

關(guān)于 BlazingSQL

 

 

BlazingSQL 是一個(gè)基于英偉達(dá) RAPIDS 生態(tài)系統(tǒng)構(gòu)建的 GPU 加速 SQL 引擎。RAPIDS 包含一組軟件庫(kù)(BlazingSQL、cuDF、cuML、cuGraph),用來(lái)在 GPU 上執(zhí)行端到端的數(shù)據(jù)科學(xué)計(jì)算和分析管道。RAPIDS 基于 Apache Arrow 列式存儲(chǔ)格式,其中 cuDF 是一個(gè) GPU DataFrame 庫(kù),用于加載、連接、聚合、過(guò)濾和操作數(shù)據(jù)。BlazingSQL 是面向 cuDF 的 SQL 接口,具備支持大規(guī)模數(shù)據(jù)科學(xué)工作流和企業(yè)數(shù)據(jù)集的各種功能。

官方稱,BlazingSQL(幾乎)可以處理任何你想要的數(shù)據(jù)。它的前身是 BlazingDB,但因?yàn)樗⒉皇且粋(gè)數(shù)據(jù)庫(kù),所以研發(fā)團(tuán)隊(duì)將 BlazingDB 改名為 BlazingSQL。

BlazingSQL 主要特性:

查詢外部存儲(chǔ)數(shù)據(jù) :僅需一行代碼就可以注冊(cè)遠(yuǎn)程存儲(chǔ)解決方案,例如 Amazon S3。

簡(jiǎn)單的 SQL:非常容易使用,運(yùn)行 SQL 查詢就能得到 GPU DataFrames(GDF)的查詢結(jié)果。

互操作性:任意一個(gè) RAPIDS 庫(kù)都可以訪問(wèn)查詢到的 GDF,并用于任意的數(shù)據(jù)科學(xué)工作負(fù)載。

BlazingSQL 解決的痛點(diǎn)

價(jià)格昂貴:進(jìn)行大規(guī)模數(shù)據(jù)科學(xué)研究通常需要包含數(shù)千臺(tái)服務(wù)器的集群,而 BlazingSQL + RAPIDS 運(yùn)行相同規(guī)模的工作負(fù)載只需要其中一小部分基礎(chǔ)設(shè)施。

速度慢:在大型數(shù)據(jù)集上運(yùn)行工作負(fù)載和查詢可能需要數(shù)小時(shí)或數(shù)天,而 BlazingSQL + RAPIDS 借助 GPU 加速可以在幾秒內(nèi)得到結(jié)果,幫助數(shù)據(jù)科學(xué)家快速迭代新模型。

復(fù)雜型:數(shù)據(jù)科學(xué)工作負(fù)載通;谛(shù)據(jù)集開(kāi)發(fā)出原型,然后針對(duì)分布式系統(tǒng)進(jìn)行重建。BlazingSQL + RAPIDS 讓用戶能夠只編寫(xiě)一次代碼,并且只需要一行代碼就能動(dòng)態(tài)地改變分布式集群規(guī)模。

在開(kāi)發(fā)團(tuán)隊(duì)看來(lái),迄今為止,SQL 是每一個(gè)主流分析生態(tài)系統(tǒng)的支柱之一,RAPIDS 是下一代分析生態(tài)系統(tǒng),而 BlazingSQL 是 RAPIDS 的 SQL 標(biāo)準(zhǔn)。

BlazingSQL 完全基于 cuDF 和 cuIO 構(gòu)建,這些項(xiàng)目的新功能會(huì)直接影響 BlazingSQL 的功能和性能。同時(shí),由于 BlazingSQL 運(yùn)行在 GDF 上,它與 RAPIDS 的所有庫(kù)都是 100%可互操作的。

如果你正在使用 RAPIDS,或者正在考慮使用 RAPIDS,BlazingSQL 將為你提供更多便利,包括但不限于:

降低代碼復(fù)雜性:SQL 語(yǔ)句非常簡(jiǎn)單,你可以用單個(gè)語(yǔ)句替換數(shù)十到數(shù)百個(gè) cuDF 函數(shù)調(diào)用。

連接到數(shù)據(jù)湖:你不再需要同步其他數(shù)據(jù)庫(kù),BlazingSQL 可以查詢?cè)贫嘶蚓W(wǎng)絡(luò)文件系統(tǒng)中的任意原始文件。

讓 RAPIDS 變得更快:更先進(jìn)的 SQL 優(yōu)化器讓 RAPIDS 技術(shù)棧更智能地運(yùn)行。

BlazingSQL 性能表現(xiàn)

目前,BlazingSQL+RAPIDS 已經(jīng)上線 Google Colab,研發(fā)團(tuán)隊(duì)在 GCP 上搭建了兩個(gè)價(jià)格相當(dāng)?shù)募,一個(gè)用于 Spark,另一個(gè)用于 BlazingSQL。他們?cè)诩荷线\(yùn)行端到端的數(shù)據(jù)分析工作負(fù)載:從數(shù)據(jù)湖到 ETL/ 特征工程,再到 XGBoost 訓(xùn)練,并對(duì) Spark 和 BlazingSQL 的性能進(jìn)行了對(duì)比測(cè)試。

研發(fā)人員在超過(guò)兩千萬(wàn)行 Netflow 數(shù)據(jù)上運(yùn)行兩次相同的特定工作負(fù)載(具體實(shí)驗(yàn)參見(jiàn) Colab 鏈接)。首先運(yùn)行 BlazingSQL + RAPIDS,然后使用 PySpark(Spark 2.4.1)再次運(yùn)行,得到如下結(jié)果:

如果把從 Google Drive 中加載 CSV 到各自 DataFrame 所需的時(shí)間考慮在內(nèi),BlazingSQL 比 Spark 快 71 倍。

 

 

如果只看 ETL 時(shí)間,則BlazingSQL 和 RAPIDS 的速度比 Spark 快 100 倍!

 

 

運(yùn)行以下 Colab 演示,用戶可以使用免費(fèi)英偉達(dá) T4 GPU 資源進(jìn)行同樣的測(cè)試,對(duì) BlazingSQL 的實(shí)際效果進(jìn)行驗(yàn)證。

https://colab.research.google.com/drive/1EbPE9FwFur7fE2054BH9s23Kd0FiUgGo

據(jù)介紹,BlazingSQL 大部分性能提升來(lái)自團(tuán)隊(duì)的內(nèi)部引擎項(xiàng)目,BlazingSQL 團(tuán)隊(duì)的工程師們希望開(kāi)發(fā)一種專為 GPU DataFrames(GDF)構(gòu)建的 GPU 執(zhí)行內(nèi)核,稱之為“SIMD 表達(dá)式解釋器”(SIMD Expression Interpreter)。研發(fā)團(tuán)隊(duì)分享了一些關(guān)于 SIMD 表達(dá)式解釋器的細(xì)節(jié),SIMD 表達(dá)式解釋器通過(guò)幾個(gè)關(guān)鍵步驟帶來(lái)提升性能:

接收多個(gè)輸入,包括 GDF 列、字面量,在不久的將來(lái)也會(huì)支持函數(shù)。

在加載這些輸入時(shí),SIMD 表達(dá)式解釋器將對(duì) GPU 寄存器的分配進(jìn)行優(yōu)化,這可以優(yōu)化 GPU 線程占用率,并提高性能。

然后,虛擬機(jī)處理這些輸入,并生成多個(gè)輸出。假設(shè)有以下 SQL 查詢:

SELECT colA + colB * 10,sin(colA) - cos(colD)FROM tableA

在以前,BlazingSQL 會(huì)將這條查詢語(yǔ)句轉(zhuǎn)換為 5 個(gè)操作(+,*,sin,cos, - ),每個(gè)操作都需要單獨(dú)執(zhí)行。在使用 SIMD 表達(dá)式解釋器后,它會(huì)同時(shí)接收(colA、colB、colD)作為輸入,并在單次內(nèi)核執(zhí)行中執(zhí)行所有 5 個(gè)操作,最終生成兩個(gè)輸出。這意味著 colA 只需要加載一次,而不是兩次。

目前,SIMD 表達(dá)式解釋器支持 BlazingSQL 的過(guò)濾和投影,因此它對(duì)許多主流的 SQL 查詢都有影響。

如何使用 BlazingSQL

使用 BlazingSQL 在 Amazon S3 中查詢 CSV 文件的示例代碼:

更多 BlazingSQL 的操作方法參見(jiàn) GitHub 項(xiàng)目和官方網(wǎng)站。

標(biāo)簽: Spark  數(shù)據(jù)處理

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:數(shù)據(jù)共享的核心在定價(jià),數(shù)據(jù)開(kāi)放與隱私保護(hù)探討

下一篇:華為發(fā)布面向2025十大趨勢(shì)