真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Kudu如何使用布隆過(guò)濾器優(yōu)化聯(lián)接和過(guò)濾

今天就跟大家聊聊有關(guān)Kudu如何使用布隆過(guò)濾器優(yōu)化聯(lián)接和過(guò)濾,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)咨詢熱線:18982081108,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)頁(yè)制作領(lǐng)域十年,包括LED顯示屏等多個(gè)行業(yè)擁有豐富的營(yíng)銷推廣經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián),為網(wǎng)站保駕護(hù)航!

介紹

在數(shù)據(jù)庫(kù)系統(tǒng)中,提高性能的最有效方法之一是避免執(zhí)行不必要的工作,例如網(wǎng)絡(luò)傳輸和從磁盤(pán)讀取數(shù)據(jù)。Apache Kudu實(shí)現(xiàn)此目的的方法之一是通過(guò)使用掃描器支持列謂詞。將列謂詞過(guò)濾器下推到Kudu可以通過(guò)跳過(guò)讀取已過(guò)濾行的列值并減少客戶端(例如分布式查詢引擎Apache Impala和Kudu)之間的網(wǎng)絡(luò)IO來(lái)優(yōu)化執(zhí)行。有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn)Impala中有關(guān)運(yùn)行時(shí)篩選的文檔。

CDP Runtime 7.1.5和CDP公共云在Kudu中增加了對(duì)布隆過(guò)濾器列謂詞下推的支持,在Impala中增加了相關(guān)的集成。 

 

布隆過(guò)濾器(Bloom Filter)

布隆過(guò)濾器是一種節(jié)省空間的概率數(shù)據(jù)結(jié)構(gòu),用于測(cè)試可能存在假陽(yáng)性匹配的集合成員資格。在數(shù)據(jù)庫(kù)系統(tǒng)中,這些僅用于確定僅需要記錄的子集時(shí)是否可以忽略一組數(shù)據(jù)。有關(guān)更多詳細(xì)信息,請(qǐng)參見(jiàn)Wikipedia頁(yè)面。

Kudu中使用的實(shí)現(xiàn)是Putze等人的“高速,散列和空間高效的布隆過(guò)濾器”中的一種基于空間,哈希和高速緩存的基于塊的布隆過(guò)濾器。此布隆過(guò)濾器來(lái)自Impala的實(shí)現(xiàn),并得到了進(jìn)一步增強(qiáng)?;趬K的布隆過(guò)濾器設(shè)計(jì)為適合CPU緩存,并且允許使用AVX2(如果可用)進(jìn)行SIMD操作,以進(jìn)行有效的查找和插入。

考慮在謂詞下推不可用的小表和大表之間進(jìn)行廣播哈希聯(lián)接的情況。這通常涉及以下步驟:

  1. 讀取整個(gè)小表并從中構(gòu)造一個(gè)哈希表。

  2. 將生成的哈希表廣播到所有工作節(jié)點(diǎn)。

  3. 在工作節(jié)點(diǎn)上,開(kāi)始對(duì)大表的切片進(jìn)行獲取和迭代,檢查哈希表中是否存在大表中的鍵,并僅返回匹配的行。

步驟3任務(wù)最重,因?yàn)樗婕白x取整個(gè)大表,并且如果工作程序和承載大表的節(jié)點(diǎn)不在同一服務(wù)器上,則可能涉及繁重的網(wǎng)絡(luò)IO。

在7.1.5之前,Impala支持僅將“最小/最大(MIN_MAX)”運(yùn)行時(shí)過(guò)濾器下推至Kudu,從而過(guò)濾掉不在指定范圍內(nèi)的值。除了MIN_MAX運(yùn)行時(shí)過(guò)濾器之外,CDP 7.1.5+中的Impala現(xiàn)在還支持將運(yùn)行時(shí)布隆過(guò)濾器下推到Kudu。借助Kudu中新引入的布隆過(guò)濾謂詞支持,Impala可以使用此功能對(duì)存儲(chǔ)在Kudu中的數(shù)據(jù)執(zhí)行更加高效的聯(lián)接。

 

性能

與上述情況一樣,我們運(yùn)行了一個(gè)Impala查詢,該查詢將存儲(chǔ)在Kudu上的一個(gè)大表和存儲(chǔ)在HDFS上Parquet格式的一個(gè)小表連接在一起。該小表是使用HDFS上的Parquet創(chuàng)建的,以隔離新功能,但也可以將其存儲(chǔ)在Kudu中。我們首先僅使用MIN_MAX過(guò)濾器,然后使用MIN_MAX和布隆過(guò)濾器(所有運(yùn)行時(shí)過(guò)濾器)運(yùn)行查詢。為了進(jìn)行比較,我們?cè)贖DFS的Parquet中創(chuàng)建了相同的大表。在HDFS上使用Parquet是比較的不錯(cuò)的基準(zhǔn),因?yàn)镮mpala已經(jīng)支持HDFS上Parquet的MIN_MAX和布隆過(guò)濾器。

 

設(shè)置 

在具有CDP運(yùn)行時(shí)7.1.5的6節(jié)點(diǎn)集群上執(zhí)行了以下測(cè)試。

硬件配置:

Dell PowerEdge R430、2.2chz @ 20c / 40t Xeon e5-2630 v4、128GB Ram,4塊2TB的硬盤(pán)用于WAL,3個(gè)磁盤(pán)用于數(shù)據(jù)目錄。

Schema:

  • 大表由2.6億行組成,其中隨機(jī)生成的數(shù)據(jù)哈希由主鍵跨Kudu上的20個(gè)分區(qū)進(jìn)行分區(qū)。Kudu表已明確進(jìn)行了重新平衡,以確保加載后保持平衡的布局。

  • 小表由存儲(chǔ)在HDFS上的Parquet的大表中的前1000個(gè)鍵和后1000個(gè)鍵的2000行組成。這將阻止MIN_MAX過(guò)濾器對(duì)大表進(jìn)行任何過(guò)濾,因?yàn)樗行卸紝⒙湓贛IN_MAX過(guò)濾器的范圍內(nèi)。

  • 在所有表上都運(yùn)行了COMPUTE STATS,以幫助收集有關(guān)表元數(shù)據(jù)的信息并幫助Impala優(yōu)化查詢計(jì)劃。

  • 所有查詢都運(yùn)行了10次,平均查詢運(yùn)行時(shí)間如下所示。

 

連接查詢

對(duì)于聯(lián)接查詢,通過(guò)使用布隆過(guò)濾器謂詞下推,我們發(fā)現(xiàn)Kudu的性能提高了3倍至5倍。我們期望通過(guò)更大的數(shù)據(jù)大小和更多的選擇性查詢,看到更好的性能倍數(shù)。

與HDFS上的Parquet相比,Kudu的性能現(xiàn)在提高了約17-33%。

Kudu如何使用布隆過(guò)濾器優(yōu)化聯(lián)接和過(guò)濾

 

更新查詢

對(duì)于基本上將整個(gè)小表插入現(xiàn)有大表的更新查詢,我們看到了15倍的改進(jìn)。這主要是由于在選擇要更新的行時(shí)提高了查詢性能。

Kudu如何使用布隆過(guò)濾器優(yōu)化聯(lián)接和過(guò)濾

有關(guān)表的模式、加載過(guò)程和運(yùn)行的查詢的詳細(xì)信息,請(qǐng)參見(jiàn)下面的參考部分。

 

TPC-H

我們還在具有比例因子為30的單節(jié)點(diǎn)集群上運(yùn)行了TPC-H基準(zhǔn)測(cè)試,并且在不同的塊緩存容量設(shè)置下,性能提高了19%到31%。

Kudu會(huì)自動(dòng)禁用無(wú)法有效過(guò)濾數(shù)據(jù)的布隆過(guò)濾謂詞,以避免新功能對(duì)性能造成的損失。在功能開(kāi)發(fā)過(guò)程中,TPCH基準(zhǔn)(TPCH-Q9)中的查詢9表現(xiàn)出50-96%的回歸。在進(jìn)一步調(diào)查中,掃描來(lái)自Kudu的行所需的時(shí)間最多增加了2倍。在調(diào)查此回歸時(shí),我們發(fā)現(xiàn)被下推的布隆過(guò)濾器謂詞篩選出的行數(shù)不到10%,從而導(dǎo)致Kudu中CPU使用率的增加,其價(jià)值超過(guò)了過(guò)濾器的優(yōu)勢(shì)。為了解決回歸問(wèn)題,我們?cè)贙udu中添加了一種啟發(fā)式方法,其中,如果布隆過(guò)濾器謂詞未篩選出足夠百分比的行,則在其余掃描期間將自動(dòng)禁用它。

 

功能可用性

使用Impala查詢Kudu的用戶將默認(rèn)從CDP 7.1.5起和CDP公共云啟用此功能。我們強(qiáng)烈建議用戶升級(jí)以在版本中獲得此性能增強(qiáng)和許多其他性能增強(qiáng)。對(duì)于直接使用Kudu客戶端API的自定義應(yīng)用程序,Kudu C ++客戶端還具有從CDP 7.1.5開(kāi)始可用的布隆過(guò)濾器謂詞。Kudu Java客戶端尚未提供布隆過(guò)濾器謂詞KUDU-3221。

    

看完上述內(nèi)容,你們對(duì)Kudu如何使用布隆過(guò)濾器優(yōu)化聯(lián)接和過(guò)濾有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


名稱欄目:Kudu如何使用布隆過(guò)濾器優(yōu)化聯(lián)接和過(guò)濾
標(biāo)題來(lái)源:http://weahome.cn/article/pciips.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部