大數(shù)據(jù)查詢性能比較
大?。?/span>0.9 MB 人氣: 2017-09-30 需要積分:1
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
標(biāo)簽:hive(3769)presto(3035)
? 一、實(shí)時(shí)數(shù)據(jù)查詢:我們看看小P在實(shí)時(shí)數(shù)據(jù)計(jì)算方面又有哪些卓越表現(xiàn)呢?
由于 Presto 卓越的性能表現(xiàn),使得 Presto 可以彌補(bǔ) Hive 無法滿足的實(shí)時(shí)計(jì)算空白,因此可以將 Presto 與 Hive 配合使用:對(duì)于海量數(shù)據(jù)的批處理和計(jì)算由 Hive 來完成;對(duì)于大量數(shù)據(jù)(單次計(jì)算掃描數(shù)據(jù)量級(jí)在 GB 到 TB)的計(jì)算由 Presto 完成。 Presto 能夠完成的實(shí)時(shí)計(jì)算實(shí)際上分為以下兩種情況。
1. 快照數(shù)據(jù)實(shí)時(shí)計(jì)算
在這種情況下,可以基于某個(gè)時(shí)間點(diǎn)的快照數(shù)據(jù)進(jìn)行計(jì)算,但是要求計(jì)算過程快速完成( 200ms~20min)。
2. 完全實(shí)時(shí)計(jì)算
要完成完全實(shí)時(shí)計(jì)算,需要滿足以下兩個(gè)條件。
?。?1)使用的基準(zhǔn)數(shù)據(jù)要實(shí)時(shí)更新,時(shí)刻保持與線上實(shí)際數(shù)據(jù)庫中的數(shù)據(jù)完全一致。
?。?2)計(jì)算過程要能夠快速完成。
在某公司的實(shí)際使用場(chǎng)景中, Presto 被用于下述兩種業(yè)務(wù)場(chǎng)景中。
基于 T+1 數(shù)據(jù)的實(shí)時(shí)計(jì)算
在這種業(yè)務(wù)場(chǎng)景中,用戶并不要求基準(zhǔn)數(shù)據(jù)的實(shí)時(shí)更新,但是要求每次查詢數(shù)據(jù)都能夠快速響應(yīng)。需要 Presto 和 Hive 配合使用來滿足實(shí)際的業(yè)務(wù)需求。每天凌晨通過azkaban 調(diào)度 Hive 腳本,根據(jù)前一天的數(shù)據(jù)計(jì)算生成中間結(jié)果表,生成完畢之后使用 Presto 查詢中間結(jié)果表,得出用戶最終所需要的數(shù)據(jù)。滿足該業(yè)務(wù)場(chǎng)景的解決方案如圖
基于 RDBMS 的實(shí)時(shí)計(jì)算
在這種業(yè)務(wù)場(chǎng)景中,用戶要求查詢的數(shù)據(jù)完全實(shí)時(shí),即只要業(yè)務(wù)庫中的數(shù)據(jù)發(fā)生改變,通過 Presto 查詢的時(shí)候,就可以查詢到剛剛改變之后的數(shù)據(jù)。要達(dá)到這個(gè)效果,我們需要使用合理的機(jī)制保證數(shù)據(jù)實(shí)時(shí)同步,因此我們使用數(shù)據(jù)庫復(fù)制技術(shù),為線上的業(yè)務(wù)數(shù)據(jù)庫建立實(shí)時(shí)同步的從庫,然后用 Presto 查詢數(shù)據(jù)庫中的數(shù)據(jù),進(jìn)而進(jìn)行計(jì)算(請(qǐng)注意:使用官方的 Presto 直接讀取數(shù)據(jù)庫的性能還太低,因此建議使用JD-Presto 中的 PDBO 從數(shù)據(jù)庫中讀取數(shù)據(jù)并進(jìn)行計(jì)算)。滿足該業(yè)務(wù)場(chǎng)景的解決方案如圖
二、Ad-Hoc 查詢
Ad-hoc 查詢就是即席查詢,即席查詢?cè)试S用戶根據(jù)自己的需求隨時(shí)調(diào)整和選擇查詢條件,計(jì)算平臺(tái)或者系統(tǒng)能夠根據(jù)用戶的查詢條件返回查詢結(jié)果或者生成相應(yīng)的報(bào)表。由此可見,即席查詢和普通應(yīng)用查詢的最大不同是:普通的應(yīng)用查詢是定制開發(fā)的,其查詢語句是固定或者限制在一定的變動(dòng)范圍之內(nèi)的;而即席查詢?cè)试S用戶隨意指定或者改變查詢語句或者查詢條件。由于普通的應(yīng)用查詢都是定制開發(fā)的,其查詢語句幾乎是固定的,因此,在系統(tǒng)實(shí)施時(shí)就可以通過建立索引或者分區(qū)等技術(shù)來優(yōu)化這些查詢,從而提高查詢效率。但是即席查詢是用戶在使用時(shí)臨時(shí)產(chǎn)生的、系統(tǒng)無法預(yù)知的,因此也無法對(duì)這些查詢進(jìn)行有針對(duì)性的優(yōu)化和改進(jìn)。
某公司使用 Presto 完成 Ad-Hoc 查詢,實(shí)際的 Ad-Hoc 使用場(chǎng)景包括以下兩種。
( 1)使用 BI 工具進(jìn)行報(bào)表展現(xiàn)
BI 工具通過 ODBC 驅(qū)動(dòng)連接至 Presto 集群, BI 工程師使用 BI 工具進(jìn)行不同維度的報(bào)表設(shè)計(jì)和展現(xiàn)。由于目前 Facebook 提供的 ODBC 驅(qū)動(dòng)是使用 D 語言開發(fā)的,而且功能尚不完善,因此采用 Treasure Data 提供的基于 Presto-gres 中的 ODBC 驅(qū)動(dòng)改造之后的 ODBC 驅(qū)動(dòng)連接到 Presto 集群。
?。?2)使用 Cli 客戶端進(jìn)行數(shù)據(jù)分析
Presto 使用 Hive 作為數(shù)據(jù)源,對(duì) Hive 中的數(shù)據(jù)進(jìn)行查詢和分析。眾所周知, Hive使用 Map-Reduce 框架進(jìn)行計(jì)算,由于 Map-Reduce 的優(yōu)勢(shì)在于進(jìn)行大數(shù)據(jù)量的批運(yùn)算和提供強(qiáng)大的集群計(jì)算吞吐量,但是對(duì)稍小數(shù)據(jù)量的計(jì)算和分析會(huì)花費(fèi)相當(dāng)長(zhǎng)的時(shí)間,因此在進(jìn)行 GB~TB 級(jí)別數(shù)據(jù)量的計(jì)算和分析時(shí), Hive 并不能滿足實(shí)時(shí)性要求。
Presto 是專門針對(duì)基于 Ad-Hoc 的實(shí)時(shí)查詢和計(jì)算進(jìn)行設(shè)計(jì)的, 其平均性能Hive的 10 倍,因此 Presto 更適合于稍小數(shù)據(jù)量的計(jì)算和差異性分析等 Ad-Hoc 查詢。
三、實(shí)時(shí)數(shù)據(jù)流分析
實(shí)時(shí)數(shù)據(jù)流分析主要是指通過 presto-kafka 使用 SQL 語句對(duì) Kafka 中的數(shù)據(jù)流進(jìn)行清洗、分析和計(jì)算。其在實(shí)際使用過程中有以下兩種使用場(chǎng)景。
?。?1)保留歷史數(shù)據(jù)
在這種使用場(chǎng)景下, 由于 Presto 每次對(duì) Kafka 中的數(shù)據(jù)進(jìn)行分析時(shí)都需要從 Kafka 集群中將所有的數(shù)據(jù)都讀取出來, 然后在 Presto 集群的內(nèi)存中進(jìn)行過濾、分析等操作, 若在 Kafka中保留了大量的歷史數(shù)據(jù), 那么通過 presto-kafka 使用 SQL 語句對(duì) Kafka 中的數(shù)據(jù)進(jìn)行分析就會(huì)在數(shù)據(jù)傳輸上花費(fèi)大量的時(shí)間,從而導(dǎo)致查詢效率的降低。因此我們應(yīng)該避免在 Kafka中存儲(chǔ)大量的數(shù)據(jù),從而提高查詢性能。
非常好我支持^.^
(180) 97.3%
不好我反對(duì)
(5) 2.7%
下載地址
大數(shù)據(jù)查詢性能比較下載
相關(guān)電子資料下載
- R課堂 | 600V耐壓Super Junction MOSFET PrestoMOS?產(chǎn)品陣容又增新品 214
- 虹科方案 | 虹科HiveMQ與MQTT:構(gòu)建互聯(lián)汽車的新架構(gòu) 190
- 虹科案例 | 虹科HiveMQ支持平板電腦實(shí)現(xiàn)高效遠(yuǎn)程管理 160
- 虹科案例 | 虹科HiveMQ助力采埃孚推進(jìn)零愿景戰(zhàn)略 180
- 虹科案例 | 虹科HiveMQ助力實(shí)現(xiàn)百萬輛汽車智能互聯(lián) 182
- 虹科案例 | 虹科HiveMQ解決方案在奔馳汽車制造中的應(yīng)用 244
- 虹科案例 | IAV 應(yīng)用 HiveMQ 與汽車數(shù)據(jù)搭建城市山洪預(yù)警系統(tǒng) 248
- 虹科案例 | HiveMQ助力AGV小車與控制系統(tǒng)之間實(shí)現(xiàn)通信 180
- HiveMQ助力AGV小車與控制系統(tǒng)之間實(shí)現(xiàn)通信 316
- 虹科案例 | 寶馬汽車共享應(yīng)用程序依賴強(qiáng)大的HiveMQ實(shí)現(xiàn)可靠連接 119