亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        HBase數(shù)據(jù)庫行鍵設(shè)計及驗證

        2019-12-04 01:47:08李興菊趙建軍聶紅梅王迎
        軟件導(dǎo)刊 2019年10期
        關(guān)鍵詞:智慧水務(wù)數(shù)據(jù)模型數(shù)據(jù)庫

        李興菊 趙建軍 聶紅梅 王迎

        摘要:HBase列式非關(guān)系型數(shù)據(jù)庫行鍵設(shè)計決定了海量數(shù)據(jù)存儲與查詢效率。針對目前存在的數(shù)據(jù)存儲問題及檢索效率問題,對現(xiàn)有5種主流方法進(jìn)行數(shù)據(jù)測試后,選擇了相對較優(yōu)的哈希前綴法,井在原有基礎(chǔ)上根據(jù)智慧水務(wù)系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)特性,使用重要字段提升法結(jié)合逆序行鍵方法進(jìn)行設(shè)計.驗證結(jié)果顯示,該行鍵組合法針對智慧水務(wù)中的時序性數(shù)據(jù),在存儲方面解決了寫入熱點與存儲分散相矛盾的問題,檢索效率在原有哈希前綴法基礎(chǔ)上也有了一定提升。

        關(guān)鍵詞:HBase;數(shù)據(jù)庫;行鍵;數(shù)據(jù)模型;智慧水務(wù)

        DOI:10.11907/ejdk.191271開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

        中圖分類號:TP391文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2019)010-0178-04

        0引言

        非關(guān)系型數(shù)據(jù)庫系統(tǒng)(Not only SQL,NoSQL)的誕生解決了互聯(lián)網(wǎng)Web2.0時代帶來的數(shù)據(jù)存儲處理瓶頸問題,非關(guān)系型數(shù)據(jù)庫由于具有高并發(fā)性以及強(qiáng)大的擴(kuò)展性等優(yōu)點,彌補(bǔ)了關(guān)系型數(shù)據(jù)庫的不足。非關(guān)系型數(shù)據(jù)庫中的列式存儲系統(tǒng)HBase的出現(xiàn)更是在很大程度上解決了數(shù)據(jù)存儲問題,并一度使HBase成為當(dāng)前的熱門存儲技術(shù)之一。雖然目前已有很多針對HBase存儲與查詢的相關(guān)研究,但由于應(yīng)用場景及存儲數(shù)據(jù)結(jié)構(gòu)的不同,使設(shè)計的HBase存儲模式無法解決數(shù)據(jù)在存儲與查詢過程中面臨的效率問題。根據(jù)大量針對HBase的相關(guān)研究,選擇對HBase數(shù)據(jù)存儲與查詢影響相對較大的部分——行鍵設(shè)計進(jìn)行討論。例如在文獻(xiàn)中對HBase數(shù)據(jù)庫模式設(shè)計進(jìn)行討論,并采用組合方法設(shè)計了行鍵,但其僅注重模式選擇,而對行鍵具體設(shè)計并未作過多討論及驗證;圣文順、徐愛萍在數(shù)據(jù)檢索方面分別使用基于行鍵前綴匹配及關(guān)鍵字匹配的方式提高數(shù)據(jù)檢索效率,但該實現(xiàn)方式需要犧牲數(shù)據(jù)寫入能力。通過總結(jié)以上行鍵設(shè)計方法,針對居民用水?dāng)?shù)據(jù)設(shè)計了一種相對合理的行鍵,最后對設(shè)計結(jié)果進(jìn)行實驗驗證。結(jié)果證明該行鍵方法在處理此類數(shù)據(jù)時,相比其它行鍵方法在解決存儲與檢索熱點問題方面具有一定優(yōu)勢。

        1HBase數(shù)據(jù)庫

        HBase(Hadoop Database)數(shù)據(jù)庫是非關(guān)系型數(shù)據(jù)庫(NoSQL)的一種,其參考了Google的Bigtable開源分布式系統(tǒng),使用Hadoop中的分布式文件系統(tǒng)HDFS作為數(shù)據(jù)底層存儲系統(tǒng),具有高可靠性、面向列與可伸縮等特性,因其自身的獨(dú)特特性,常被用來存儲海量非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。HBase主要具有以下特點:①海量性:可存儲百萬億數(shù)量級的數(shù)據(jù);②列式存儲特性:不存在數(shù)據(jù)稀疏性問題,大大節(jié)省了存儲開銷;③可擴(kuò)展性:以HDFS作為底層文件存儲方式,繼承了其可擴(kuò)展性;④高可靠性:HDFS的冗余備份機(jī)制減少了數(shù)據(jù)丟失情況;⑤高性能:檢索效率可達(dá)到毫秒級別。

        以上特點一方面體現(xiàn)出其與傳統(tǒng)關(guān)系型數(shù)據(jù)庫的不同,另一方面也體現(xiàn)了HBase在數(shù)據(jù)管理性能方面的優(yōu)越性。圖1為HBase系統(tǒng)框架,其不僅展示了HBase的核心組件,還展示了與Hadoop在數(shù)據(jù)存儲工作中的關(guān)系。圖1中HBase的4個核心組件分別是客戶端(Client)、主服務(wù)器(Master)、Region服務(wù)器以及協(xié)調(diào)服務(wù)器(Zookeeper)??蛻舳耸侨藗兣cHBase通話的人口,Zookeeper用來從眾多Master中選出一個集群總管,以保證在任何時刻都有唯一一個Master節(jié)點在工作,避免出現(xiàn)“單點失效”問題;Mas-ter服務(wù)器負(fù)責(zé)對每個Region服務(wù)器進(jìn)行協(xié)調(diào),將集中在某個Region服務(wù)器的操作均衡分配到負(fù)載較輕的服務(wù)器中,準(zhǔn)確地說是對整個集群進(jìn)行管理;Region服務(wù)器負(fù)責(zé)對其下面的Region提供讀寫操作,當(dāng)Region超過分配值大小時對其進(jìn)行拆分,并對單個小文件進(jìn)行合并。

        2HBase數(shù)據(jù)模型

        HBase是一個稀疏、多維度、排序的映射表,該表的索引是行鍵、列族、列限定符與時間戳。圖2為HBase數(shù)據(jù)模型。

        HBase與普通數(shù)據(jù)庫都采用表組織數(shù)據(jù),整張表由行和列組成,可以有若干行,其使用行鍵進(jìn)行標(biāo)識,是HBase中的唯一索引。由多個列構(gòu)成的列族也是表的組成部分之一,每個單元格通過行、列族與列限定符確定,單元格中的數(shù)據(jù)還未定義數(shù)據(jù)類型,通常情況下默認(rèn)為字節(jié)數(shù)組。單元格中使用時間戳區(qū)分不同時刻的數(shù)據(jù)版本,時間戳通常也參與單元格定位,故行鍵、列族、列限定符與時間戳用來確定一個唯一單元格。

        3行鍵設(shè)計

        HBase中不管是表列族存儲還是Region劃分都是基于行鍵進(jìn)行的,因此HBase的存儲結(jié)構(gòu)很大一部分都與行鍵設(shè)計有關(guān),對HBase數(shù)據(jù)庫以及數(shù)據(jù)模型的基本認(rèn)識有利于針對不同數(shù)據(jù)管理進(jìn)行行鍵設(shè)計。由于HBase在存儲時使用列族而非列進(jìn)行數(shù)據(jù)分割,底層存儲使用列族將數(shù)據(jù)線性存人單元格中,每個列族則按照行鍵使用其字典順序進(jìn)行數(shù)據(jù)存儲。行鍵設(shè)計決定了每個Region中數(shù)據(jù)將如何存儲,由于行鍵一旦被創(chuàng)建則無法更改,所以行鍵設(shè)計中不僅要考慮在同一時間段讀寫操作都集中在某一個Region上而出現(xiàn)的負(fù)載不均衡問題,還要考慮針對特定應(yīng)用場景如何提高數(shù)據(jù)檢索效率,達(dá)到對海量異構(gòu)數(shù)據(jù)的高效讀寫。針對負(fù)載均衡及查詢效率問題,對行鍵設(shè)計進(jìn)行討論是至關(guān)重要的,而其設(shè)計必須以預(yù)期的訪問模式進(jìn)行。

        3.1以檢索為主的行鍵方法設(shè)計

        行鍵作為HBase中的唯一索引,只能在行鍵上建立索引,在對數(shù)據(jù)庫進(jìn)行訪問時最主要的方法是通過行鍵進(jìn)行訪問,也即是說HBase在數(shù)據(jù)讀取時是按照RowKey進(jìn)行快速檢索的,如果設(shè)置的行鍵無法滿足檢索條件,或用戶使用的檢索條件不匹配時,則只能采用全表掃描方法,在數(shù)據(jù)量相對較少的情況下,該方式對HBase的性能不會產(chǎn)生太大影響,但一旦存儲的數(shù)據(jù)規(guī)模增大后,這種全表掃描方法則會使得查詢效率大大降低。

        在HBase數(shù)據(jù)模型中,整張表包括了行、列族、列限定符與時間戳等幾個重要部分,考慮是否可以將其中每一部分作為行鍵進(jìn)行設(shè)計,然后對每一部分作為行鍵結(jié)果進(jìn)行討論。

        方法一:將時間戳單獨(dú)作為行鍵。時間戳代表同一份數(shù)據(jù)的多個版本,其作為用戶數(shù)據(jù)檢索時的一個重要部分,當(dāng)前很多傳感器、監(jiān)控儀器等智能設(shè)備產(chǎn)生的數(shù)據(jù)都以時間作為存儲標(biāo)志,或用戶在不同時刻對表中數(shù)據(jù)進(jìn)行修改更新時,相應(yīng)單元格會對該時間戳進(jìn)行保存。目前也有很多行鍵設(shè)計方法使用時間戳對查詢方法進(jìn)行優(yōu)化。在文獻(xiàn)中將時間戳作為行鍵的一部分,使用Long.MAX_value對產(chǎn)生的數(shù)據(jù)時間戳進(jìn)行逆序存儲,以保證用戶始終能最先查詢到更新后的數(shù)據(jù)。該方法針對時序性強(qiáng)的數(shù)據(jù)范圍查詢具有一定優(yōu)勢,具體實現(xiàn)方法為:Long.MAX value-timestamp。

        方法二:使用列限定符作為行鍵。用戶在查詢數(shù)據(jù)時可以將列限定符作為行鍵,以檢索或排除用戶需要查詢的數(shù)據(jù),也能在特定條件下實現(xiàn)查詢優(yōu)化。但當(dāng)一個表中包含很多列時,如果將列直接作為行鍵進(jìn)行數(shù)據(jù)檢索依然會出現(xiàn)查詢條件不匹配的問題,因而必須進(jìn)行全表掃描操作。對行、列族、列限定符與時間戳作為行鍵時的查詢性能進(jìn)行測試,測試結(jié)果如圖3所示。

        使用單獨(dú)時間戳或列限定符等很難達(dá)到提高檢索效率的目的,當(dāng)用戶無法使用行鍵中的字段或使用其它數(shù)據(jù)進(jìn)行查詢時,即對不匹配的數(shù)據(jù)查詢起不到作用或作用很小,考慮將其進(jìn)行組合進(jìn)行行鍵設(shè)計以提高檢索效率。

        方法三:組合方法。采用組合方法是可行的,但為了提高數(shù)據(jù)查詢性能,將行鍵索引放在內(nèi)存中進(jìn)行緩存,如果使用組合方法將表中全部數(shù)據(jù)放人行鍵中會使其長度過長,將不得不占用更大內(nèi)存,從而導(dǎo)致內(nèi)存利用率降低。所以在進(jìn)行組合時一方面要考慮行鍵長度,盡可能使行鍵長度較短,另一方面,針對處理的數(shù)據(jù)特點及用戶檢索習(xí)慣,將常用字段作為行鍵的一部分進(jìn)行組合。結(jié)合以上兩個原則設(shè)計行鍵則能在一定程度上提高數(shù)據(jù)查詢效率。

        通過以上分析發(fā)現(xiàn):行鍵設(shè)計無法達(dá)到盡善盡美,只能根據(jù)具體情況,在設(shè)計時根據(jù)權(quán)重進(jìn)行取舍,從表中找出針對該場景最關(guān)鍵的查詢條件進(jìn)行設(shè)計,使檢索效率相對較高。

        3.2以寫為主的行鍵設(shè)計方法

        行鍵是一串二進(jìn)制碼流,使用字典順序由低到高地存儲在表中。在進(jìn)行Region劃分吋必須基于行鍵進(jìn)行,通常情況下行鍵生成是采用ID自增的方式,或默認(rèn)采用時間戳作為行鍵起始值。目前針對時間序列數(shù)據(jù)的行鍵設(shè)計方法有很多,隨著各種傳感器、監(jiān)控系統(tǒng)等智能設(shè)備的逐漸普及,由它們產(chǎn)生數(shù)據(jù)最為突出的特點是時間序列性很明確,針對這類數(shù)據(jù)最棘手的問題則是如何避免系統(tǒng)在寫入過程中因操作過分集中于某個Region而產(chǎn)生讀寫熱點,從而使系統(tǒng)整體性能下降。思考如何將這類數(shù)據(jù)分散存儲到每個Region服務(wù)器上是解決問題的出發(fā)點。有很多方法都能達(dá)到目的,當(dāng)前最主要的幾種行鍵設(shè)計方法有:

        (1)隨機(jī)生成行鍵法。通過散列函數(shù)(如:MD5)在原來生成的相鄰鍵前加上隨機(jī)生成的一個前綴,通過該方法生成的行鍵可以解決原本行鍵造成的負(fù)載不均衡問題,將寫負(fù)載相對均勻地分布到Region上,但缺點是:每次只能檢索一行數(shù)據(jù),無法再按時間范圍掃描數(shù)據(jù)。如:

        Byte[]row key=MD5(timestamp)

        (2)哈希前綴法。使用哈希函數(shù)將原本行鍵中選定的一部分進(jìn)行哈希運(yùn)算后作為行鍵前綴,從而避免將時間序列作為行鍵造成的寫入熱點問題,同樣也能達(dá)到負(fù)載均衡。如:

        但該方法的缺點是:行鍵離散化使得之前連續(xù)的數(shù)據(jù)被離散到不同Region中,雖然解決了寫入熱點問題,卻導(dǎo)致檢索一個連續(xù)范圍內(nèi)的數(shù)據(jù)時系統(tǒng)性能下降,這是以犧牲查詢性能為代價實現(xiàn)的。

        (3)提升字段法。行鍵以時間戳為前綴,提升字段法是指改變生成時間戳的位置,使用其它字段作為前綴,或添加其它字段作為前綴,讓連續(xù)遞增的時間戳在行鍵中的權(quán)重降低,這種組合行鍵方法也可以解決寫入熱點問題。

        (4)反轉(zhuǎn)行鍵法。將原本相鄰的行鍵按字節(jié)順序進(jìn)行反轉(zhuǎn),使新生產(chǎn)的行鍵順序離散化,從而實現(xiàn)熱點均衡。

        4案列設(shè)計

        4.1數(shù)據(jù)源分析

        智慧水務(wù)系統(tǒng)通過數(shù)據(jù)采集儀、無線網(wǎng)絡(luò)、水質(zhì)水壓表等多種在線監(jiān)測設(shè)備實時感知城鎮(zhèn)供排水系統(tǒng)運(yùn)行狀態(tài),并在該循環(huán)過程中建立水務(wù)互聯(lián)網(wǎng)。通過在此基礎(chǔ)上對一些數(shù)據(jù)進(jìn)行分析處理,不僅可以減少人力支出,而且可以從各種智能設(shè)備上獲取有價值的數(shù)據(jù),并結(jié)合一定分析手段對數(shù)據(jù)加以利用。智能水務(wù)系統(tǒng)的不斷完善使供水過程監(jiān)控更加智能化和協(xié)調(diào)化,隨著經(jīng)濟(jì)的發(fā)展與城市規(guī)模的逐漸擴(kuò)張,各城市水司供水半徑擴(kuò)大,管網(wǎng)復(fù)雜程度提高,人力成本與運(yùn)營難度也不斷提高。由于人們對安全、優(yōu)質(zhì)、高效供水服務(wù)的需求越來越迫切,以及階梯水價振幅政策的實施,對水務(wù)運(yùn)營也提出了更高要求。通過物聯(lián)網(wǎng)、信息化手段改變傳統(tǒng)自來水公司的運(yùn)營模式與經(jīng)營模式,構(gòu)建基于物聯(lián)網(wǎng)、云計算的智慧水務(wù)管控一體化平臺,已成為水務(wù)公司提高運(yùn)營效率的必然選擇。另外,考慮到掌上辦公的便捷性,各種結(jié)合移動端的APP也相繼出現(xiàn),為打造安全、優(yōu)質(zhì)、高效、低碳、環(huán)保的供水新模式、建設(shè)現(xiàn)代水務(wù)企業(yè)提供了有效途徑,也使現(xiàn)有數(shù)據(jù)存儲方法面臨巨大挑戰(zhàn)。為使智慧水務(wù)系統(tǒng)中從各種傳感器與監(jiān)控儀器等智能設(shè)備收集而來的以時間序列為主的數(shù)據(jù)能為整個決策過程提供更大的價值支持,在分析HBase數(shù)據(jù)模型、行鍵設(shè)計原則基礎(chǔ)上,針對這類數(shù)據(jù)進(jìn)行行鍵設(shè)計相關(guān)討論。

        4.2綜合方案設(shè)計

        使用以上幾種方法并結(jié)合城鎮(zhèn)居民用水?dāng)?shù)據(jù)信息,對HBase數(shù)據(jù)庫的讀寫性能進(jìn)行測試。測試數(shù)據(jù)約有150萬行,得到如表1所示結(jié)果。

        根據(jù)表中的測試結(jié)果發(fā)現(xiàn),在4種方法中,字段提升法與哈希前綴法相比其它兩種方法的綜合性能更好。理想情況下行鍵設(shè)計是在存儲時讓關(guān)聯(lián)性強(qiáng)的數(shù)據(jù)存儲在同一個Region或相鄰Region上,同時在進(jìn)行大量數(shù)據(jù)寫入操作時能使數(shù)據(jù)均衡分布在每個Region上,不會造成寫入熱點問題。智慧水務(wù)系統(tǒng)中存儲的數(shù)據(jù)主要包括:社區(qū)ID、用水時間、用水量情況等數(shù)據(jù)。結(jié)合以上測試結(jié)果與智慧水務(wù)系統(tǒng)中要存儲的時間序列數(shù)據(jù),雖然針對以寫為主的智慧水務(wù)系統(tǒng)而言,哈希前綴法與提升字段法綜合性能相近,但在數(shù)據(jù)檢索時哈希前綴法的查詢效率并不高,所以本文采用提升字段法對行鍵進(jìn)行設(shè)計。

        5設(shè)計

        其中,CuID為居民社區(qū)號,使用社區(qū)號作為行鍵起始值,一方面可以讓同一社區(qū)的居民情況存儲在同一個Re-gion上,還可以避免將時間戳作為行鍵起始值造成的熱點問題。Timestamp為用戶用水產(chǎn)生的時間,將時間戳放在中間位置是根據(jù)用戶日常查詢習(xí)慣,該設(shè)計方法解決了用戶在查詢用水情況時因行鍵不匹配而導(dǎo)致的檢索效率降低問題。將HomeID(住戶號)作為行鍵最后一部分,將3部分按該方式進(jìn)行組合,從而設(shè)計出初步的行鍵模型。在初步行鍵設(shè)計中利用提升字段法,對最初的時間戳降低權(quán)重,從最左邊移到了中間。

        建表后對該行鍵方法進(jìn)行測試后發(fā)現(xiàn),用戶在查詢數(shù)據(jù)時通常會查詢最近用水情況,所以希望數(shù)據(jù)存儲時能將最新的數(shù)據(jù)存放在最前面,實現(xiàn)時間降序排列。根據(jù)該需求分析,在原行鍵上進(jìn)行修改,行鍵設(shè)計方法如下:

        row

        key=>

        最后,本文對兩種行鍵設(shè)計方法進(jìn)行實驗測試,測試發(fā)現(xiàn)改進(jìn)后的行鍵設(shè)計方法提高了數(shù)據(jù)讀寫性能,也由此說明行鍵設(shè)計既要結(jié)合具體應(yīng)用場景,還要根據(jù)數(shù)據(jù)處理需求,才能最終實現(xiàn)行鍵設(shè)計的相對合理化。

        6結(jié)語

        行鍵設(shè)計一直是HBase數(shù)據(jù)存儲中的研究重點,本文研究發(fā)現(xiàn)行鍵設(shè)計依賴于具體應(yīng)用場景,針對不同的存儲管理需求,行鍵設(shè)計方法也有所區(qū)別。本文從以檢索為主和以寫人為主兩方面對行鍵設(shè)計進(jìn)行研究,并對隨機(jī)生成行鍵法、哈希前綴法、提升字段法和反轉(zhuǎn)行鍵法4種方法進(jìn)行測試,之后根據(jù)智慧水務(wù)系統(tǒng)數(shù)據(jù)存儲需求選擇其中的提升字段法進(jìn)行行鍵設(shè)計,通過再次測試對初始方法進(jìn)行改進(jìn),最終得到相對合理的行鍵設(shè)計方法,證明了該行鍵設(shè)計方法在時間序列數(shù)據(jù)處理上的有效性。接下來將對該方法作進(jìn)一步研究,根據(jù)行鍵設(shè)計原則精簡行鍵長度,實現(xiàn)優(yōu)化目的。

        猜你喜歡
        智慧水務(wù)數(shù)據(jù)模型數(shù)據(jù)庫
        面板數(shù)據(jù)模型截面相關(guān)檢驗方法綜述
        加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
        電子測試(2017年12期)2017-12-18 06:35:36
        探究市級水管理單位建設(shè)“智慧水務(wù)”的思考
        商情(2017年4期)2017-03-22 11:39:10
        柯橋區(qū)智慧水務(wù)建設(shè)思考及構(gòu)想
        價值工程(2017年7期)2017-03-17 15:14:09
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        一種城鎮(zhèn)智慧水務(wù)體系結(jié)構(gòu)
        大唐電信智慧水務(wù)助力武漢城市防汛
        亚洲激情一区二区三区不卡| 亚洲国产一区二区三区,| 国产免费久久精品国产传媒| 亚洲自拍另类欧美综合| 91在线区啪国自产网页| 久久一二三四区中文字幕| 久久精品视频日本免费| 成人偷拍自拍视频在线观看 | 开心婷婷五月激情综合社区| 国产三级欧美| 亚洲色欲色欲www成人网| 免费人妻精品区一区二区三 | 日本少妇一区二区三区四区| аⅴ天堂中文在线网| 一本色道久久88综合日韩精品| 欧美老妇与zozoz0交| 亚洲午夜成人片| 极品美女销魂一区二区三| 白白色视频这里只有精品| 少妇被猛烈进入到喷白浆| 日日碰狠狠添天天爽五月婷| 国产精品麻豆成人av电影艾秋 | 久久97精品久久久久久久不卡| 亚洲AV无码一区二区三区性色学| 亚洲双色视频在线观看| 中文字幕乱码一区在线观看| 精品天堂色吊丝一区二区| 一区二区三区在线 | 欧| 日韩A∨精品久久久久| 国产福利小视频91| 久久国产精品免费一区二区三区| 强d乱码中文字幕熟女免费| 成年女人色毛片| 国内精品久久久久影院优| 久久综合一本中文字幕| 一区二区三区在线观看人妖| 五月丁香六月综合缴清无码| 日日猛噜噜狠狠扒开双腿小说| 99久久综合狠狠综合久久一区| 中文字幕本久久精品一区| 欧美成人免费全部|