溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

為正確的工作該如何選擇正確的SQL引擎

發(fā)布時(shí)間:2021-12-27 17:23:34 來源:億速云 閱讀:122 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)為正確的工作該如何選擇正確的SQL引擎,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

我們都渴望獲得數(shù)據(jù)。不僅是更多的數(shù)據(jù)……還有新的數(shù)據(jù)類型,以便我們能夠最好地了解我們的產(chǎn)品、客戶和市場(chǎng)。我們正在尋找有關(guān)各種形狀和大?。ńY(jié)構(gòu)化和非結(jié)構(gòu)化)的最新可用數(shù)據(jù)的實(shí)時(shí)洞察力。我們希望擁抱新一代的業(yè)務(wù)和技術(shù)專業(yè)人員,這些人員是對(duì)數(shù)據(jù)和能夠改變數(shù)據(jù)與我們生活息息相關(guān)的新一代技術(shù)有真正熱情。
我可以舉例說明我的意思。大約兩年前,數(shù)據(jù)挽救了我朋友女兒的性命。出生時(shí),她被診斷出患有七個(gè)心臟缺陷。由于采用了3D交互式、虛擬建模和更智能的EKG分析,現(xiàn)代化的病床監(jiān)控解決方案以及其他以數(shù)據(jù)為依據(jù)的改進(jìn)的醫(yī)療程序等新技術(shù),她在兩次心臟直視手術(shù)中幸存下來,如今過著健康的生活。數(shù)據(jù)挽救了她的生命。這就是讓我每天都有動(dòng)力去尋找新的創(chuàng)新和方法,以便盡快向最需要的人提供數(shù)據(jù)。
CDP從頭開始構(gòu)建為企業(yè)數(shù)據(jù)云(EDC)。EDC具有多種功能,能夠在一個(gè)平臺(tái)上實(shí)現(xiàn)許多用例。通過使用混合和多云部署,CDP可以存在于從裸機(jī)到公共云和私有云的任何地方。隨著我們?cè)谥醒隝T計(jì)劃中采用更多云解決方案,我們看到混合云和多云是新常態(tài)。但是,大多數(shù)混合匹配環(huán)境都會(huì)在管理方面造成差距,從而在安全性、可追溯性和合規(guī)性方面帶來新的風(fēng)險(xiǎn)。為解決此問題,CDP具有先進(jìn)的安全性和控制功能,可以使數(shù)據(jù)民主化,而不會(huì)冒未能遵守法規(guī)遵從性和安全性政策的風(fēng)險(xiǎn)。 
CDP上的CDW是一項(xiàng)新服務(wù),使您能夠?yàn)樯虡I(yè)智能(BI)分析師團(tuán)隊(duì)創(chuàng)建自助數(shù)據(jù)倉庫。您可以快速配置新的數(shù)據(jù)倉庫,并與特定團(tuán)隊(duì)或部門共享任何數(shù)據(jù)集。您還記得何時(shí)可以自行設(shè)置數(shù)據(jù)倉庫嗎?沒有基礎(chǔ)架構(gòu)和平臺(tái)團(tuán)隊(duì)的參與?這是  永遠(yuǎn)不可能的。CDW完成了這一任務(wù)。  
但是,CDW使幾個(gè)SQL引擎可用,帶來了更多的選擇同時(shí)帶來了更多的混亂。讓我們探索CDP上CDW中可用的SQL引擎,并討論哪種是針對(duì)正確用例的正確SQL選項(xiàng)。
如此多的選擇!Impala?Hive LLAP?Spark?什么時(shí)候使用?讓我們來探索。
     
Impala SQL引擎
Impala是Cloudera Distribution Hadoop(CDH)和CDP中流行的開源、可大規(guī)模擴(kuò)展的MPP引擎。Impala在低延遲、高度交互的SQL查詢上贏得了市場(chǎng)信任。Impala具有非常好的可擴(kuò)展性,不僅支持Parquet的Hadoop分布式文件系統(tǒng)(HDFS)、優(yōu)化行列(ORC)、JavaScript對(duì)象表示法(JSON)、Avro和文本格式,還提供對(duì)Kudu、Microsoft Azure Data Lake Storage的本地支持(ADLS)和Amazon Simple Storage Service(S3)。Impala對(duì)Sentry或Ranger都具有強(qiáng)大的安全性,并且已知能夠在1000 PB大小的數(shù)據(jù)集上支持1000多個(gè)用戶的群集。讓我們簡要看一下整個(gè)Impala架構(gòu)。
為正確的工作該如何選擇正確的SQL引擎
Impala使用StateStore檢查集群的運(yùn)行狀況。如果Impala節(jié)點(diǎn)由于任何原因脫機(jī),則StateStore會(huì)通知所有其他節(jié)點(diǎn),并且避免了無法訪問的節(jié)點(diǎn)。Impala目錄服務(wù)管理到群集中所有節(jié)點(diǎn)的所有SQL語句的元數(shù)據(jù)。StateStore和目錄服務(wù)與Hive MetaStore進(jìn)行通信以獲取塊和文件的位置,然后將元數(shù)據(jù)與工作節(jié)點(diǎn)進(jìn)行通信。當(dāng)查詢請(qǐng)求進(jìn)入時(shí),它轉(zhuǎn)到許多查詢協(xié)調(diào)器之一,在該查詢協(xié)調(diào)器中編譯請(qǐng)求并開始計(jì)劃。返回計(jì)劃片段,協(xié)調(diào)員安排執(zhí)行。中間結(jié)果在Impala服務(wù)之間進(jìn)行流傳輸并返回。
該體系結(jié)構(gòu)非常適合當(dāng)我們需要商業(yè)智能數(shù)據(jù)集市具有低延遲查詢響應(yīng)時(shí)(通常在探索性臨時(shí),自助服務(wù)和發(fā)現(xiàn)用例類型中發(fā)現(xiàn))。在這種情況下,我們讓客戶報(bào)告了對(duì)復(fù)雜查詢的亞秒級(jí)到五秒級(jí)的響應(yīng)時(shí)間。  
對(duì)于物聯(lián)網(wǎng)(IoT)數(shù)據(jù)和相關(guān)用例,Impala與流解決方案(如NiFi,Kafka或Spark Streaming)以及適當(dāng)?shù)臄?shù)據(jù)存儲(chǔ)(如Kudu)一起可以提供不到十秒的端到端管道延遲。Impala具有對(duì)S3,ADLS,HDFS,Hive,HBase等的原生的讀/寫功能,是運(yùn)行低于1000個(gè)節(jié)點(diǎn)的集群(有100萬億行或更多的表,或者50PBB大小或者更大的數(shù)據(jù)集)時(shí)使用的出色SQL引擎。
     
Hive LLAP
“實(shí)時(shí)長期處理”或“長期延遲分析處理”(也稱為LLAP)是Hive下的執(zhí)行引擎,它通過利用相同的資源進(jìn)行緩存和處理來支持長期運(yùn)行的流程。該執(zhí)行引擎為我們提供了非常低的延遲SQL響應(yīng),因?yàn)槲覀儧]有資源的加速時(shí)間。
為正確的工作該如何選擇正確的SQL引擎
最重要的是,LLAP遵守并執(zhí)行了安全策略,因此對(duì)于用戶而言,它是完全透明的,從而幫助Hive工作負(fù)載的性能甚至可以與當(dāng)今最流行的傳統(tǒng)數(shù)據(jù)倉庫環(huán)境匹敵。  
Hive LLAP提供了大數(shù)據(jù)生態(tài)系統(tǒng)中最成熟的SQL引擎。Hive LLAP專為大數(shù)據(jù)而構(gòu)建,為用戶提供了高度可擴(kuò)展的企業(yè)數(shù)據(jù)倉庫(EDW),該數(shù)據(jù)庫支持繁重的轉(zhuǎn)換,長期運(yùn)行的查詢或蠻力風(fēng)格的SQL(具有數(shù)百個(gè)聯(lián)接)。Hive支持物化視圖、代理鍵和約束,以提供類似于傳統(tǒng)關(guān)系系統(tǒng)的SQL體驗(yàn),包括對(duì)查詢結(jié)果和查詢數(shù)據(jù)的內(nèi)置緩存。Hive LLAP可以減少重復(fù)查詢的負(fù)載,以提供亞秒級(jí)的響應(yīng)時(shí)間。通過與Kafka和Druid的合作,Hive LLAP可以支持對(duì)HDFS和對(duì)象存儲(chǔ)以及流和實(shí)時(shí)的聯(lián)合查詢。   
因此,Hive LLAP非常適合作為企業(yè)數(shù)據(jù)倉庫(EDW)解決方案,在該解決方案中,我們將遇到許多需要長時(shí)間進(jìn)行的長時(shí)間運(yùn)行的查詢,這些查詢需要進(jìn)行大量轉(zhuǎn)換,或者在海量數(shù)據(jù)集的表之間進(jìn)行多次聯(lián)接。借助Hive LLAP中包含的緩存技術(shù),我們的客戶能夠?qū)?,300億條記錄與920億條記錄(無論是否具有分區(qū)鍵)連接在一起,并在數(shù)秒內(nèi)返回結(jié)果。 
     
Spark SQL
Spark是一種通用的高性能數(shù)據(jù)引擎,旨在支持分布式數(shù)據(jù)處理,并且適用于各種用例。有許多用于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的Spark庫,它們支持更高級(jí)別的編程模型以加快開發(fā)速度。在Spark之上是Spark SQL,MLlib,Spark Streaming和GraphX。  
為正確的工作該如何選擇正確的SQL引擎
Spark SQL是用于結(jié)構(gòu)化數(shù)據(jù)處理的模塊,與Hive,Avro,Parquet,ORC,JSON和JDBC固有的各種數(shù)據(jù)源兼容。Spark SQL在半結(jié)構(gòu)化數(shù)據(jù)集上非常有效,并與Hive MetaStore和NoSQL存儲(chǔ)(例如HBase)原生集成。Spark通常與我們喜歡的語言(例如Java,Python,R和Scala)中的編程API很好地結(jié)合在一起使用。 
當(dāng)您需要將SQL查詢和Spark程序一起嵌入數(shù)據(jù)工程工作負(fù)載中時(shí),Spark非常有用。我們?cè)谶\(yùn)行Spark的全球100強(qiáng)企業(yè)中擁有許多用戶,以減少對(duì)流數(shù)據(jù)工作負(fù)載的整體處理。將其與MLlib結(jié)合使用,我們看到許多客戶都喜歡Spark來進(jìn)行數(shù)據(jù)倉庫應(yīng)用程序的機(jī)器學(xué)習(xí)。憑借高性能、低延遲和出色的第三方工具集成,Spark SQL為在編程和SQL之間切換提供了最佳環(huán)境。
那么,什么是正確使用的SQL引擎?
由于您可以在CDP的CDW中混合和匹配相同的數(shù)據(jù),因此您可以根據(jù)工作負(fù)載類型為每個(gè)工作負(fù)載選擇合適的引擎,例如數(shù)據(jù)工程,傳統(tǒng)EDW,臨時(shí)分析,BI儀表板,在線分析處理(OLAP)或在線交易處理(OLTP)。下面的圖表提供了一些指導(dǎo)原則,說明哪些引擎和技術(shù)適合每種目的。
為正確的工作該如何選擇正確的SQL引擎

如果您正在運(yùn)行支持BI儀表板的EDW,則Hive LLAP將為您帶來最佳效果。當(dāng)您需要臨時(shí)的、自助式和探索性數(shù)據(jù)集市時(shí),請(qǐng)查看Impala的優(yōu)勢(shì)。如果您正在使用長時(shí)間運(yùn)行的查詢而沒有高并發(fā)性的數(shù)據(jù)工程,Spark SQL是一個(gè)不錯(cuò)的選擇。如果需要高并發(fā)支持,可以查看Hive on Tez。為了獲得對(duì)帶有時(shí)間序列數(shù)據(jù)的OLAP的支持,請(qǐng)考慮將Druid添加到混合中,如果您正在尋找需要低延遲和高并發(fā)性的OLTP,請(qǐng)考慮將Phoenix添加到混合中。  
底線– CDP上的CDW中有很多SQL引擎,這是有目的的。提供選擇是在不折衷的情況下針對(duì)海量數(shù)據(jù)進(jìn)行大規(guī)模高并發(fā)性優(yōu)化的最終方法。CDP上的CDW通過單一的安全性、治理、可追溯性和元數(shù)據(jù)層,可提供通用的數(shù)據(jù)上下文和共享的數(shù)據(jù)體驗(yàn),從而可在優(yōu)化的存儲(chǔ)上混合使用SQL引擎。這使您可以自由使用針對(duì)您的工作負(fù)載進(jìn)行了優(yōu)化的最佳SQL引擎。

以上就是為正確的工作該如何選擇正確的SQL引擎,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sql
AI