呂家琦
摘要:隨著時(shí)代的發(fā)展與信息技術(shù)的廣泛應(yīng)用?,F(xiàn)如今,數(shù)據(jù)的爆炸式增長已經(jīng)成為熱點(diǎn)問題。尤其是在交通領(lǐng)域內(nèi),研究的深入必然產(chǎn)生海量的數(shù)據(jù)信息,同時(shí)也帶來了數(shù)據(jù)存儲(chǔ)了數(shù)據(jù)查詢方面的難題。云平臺(tái)的產(chǎn)生和應(yīng)用為海量數(shù)據(jù)的存儲(chǔ)和查詢提供了一種新的有效方法。本文以交通大數(shù)據(jù)為研究對(duì)象,主要探討了基于分布式數(shù)據(jù)庫HBase的大數(shù)據(jù)查詢策略。本文的研究為交通大數(shù)據(jù)的高效查詢研究提供了一種新的思路。
關(guān)鍵詞:云環(huán)境;分布式計(jì)算;大數(shù)據(jù)查詢;HBase
一、綜述
隨著大數(shù)據(jù)時(shí)代的到來,給對(duì)應(yīng)的應(yīng)用領(lǐng)域帶來了一系列的挑戰(zhàn)。如數(shù)據(jù)的存儲(chǔ)方式和數(shù)據(jù)的實(shí)時(shí)訪問等。大數(shù)據(jù)的存儲(chǔ)和高效查詢成為了研究熱點(diǎn)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫難以滿足海量數(shù)據(jù)的存儲(chǔ)和實(shí)時(shí)查詢的要求。Hadoop云平臺(tái)具有并行性,高可靠性和可擴(kuò)展性的優(yōu)勢(shì)因而得到研究人員的廣泛關(guān)注。HBase作為一種分布式數(shù)據(jù)庫使海量數(shù)據(jù)的存儲(chǔ)和高效訪問提供了可能。
二、關(guān)鍵技術(shù)介紹
(一)Hadoop
在Hadoop平臺(tái)上,HDFS作為數(shù)據(jù)存儲(chǔ)的文件系統(tǒng),MapReduce負(fù)責(zé)數(shù)據(jù)的并行計(jì)算。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫相比,Hadoop具有擴(kuò)展性更強(qiáng),數(shù)據(jù)處理方式更加泛化,處理類型更加廣泛的特點(diǎn)。對(duì)于海量數(shù)據(jù)來說,分布式計(jì)算平臺(tái)Hadoop是代替?zhèn)鹘y(tǒng)的數(shù)據(jù)倉庫的必然選擇。
(二)HBase
HBase基于分布式平臺(tái)的分布式數(shù)據(jù)庫,與傳統(tǒng)數(shù)據(jù)庫相比,HBase是基于列存儲(chǔ),適合于結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫,這一點(diǎn)與大數(shù)據(jù)具有的特點(diǎn)不謀而合,所以說,HBase適合存儲(chǔ)數(shù)據(jù)的存儲(chǔ)于處理。HBase將數(shù)據(jù)按照表、行和列進(jìn)行存儲(chǔ)。
三、數(shù)據(jù)遷移與查詢策略的研究
(一)數(shù)據(jù)遷移
通常,交通行業(yè)的相關(guān)數(shù)據(jù)收到業(yè)務(wù)的影響,目前都存儲(chǔ)與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,如ORACLE等中。為了對(duì)海量的交通數(shù)據(jù)進(jìn)行分析研究,就涉及到要將數(shù)據(jù)從傳統(tǒng)數(shù)據(jù)庫中導(dǎo)入到分布式數(shù)據(jù)庫中,也就是所謂的數(shù)據(jù)遷移。目前可通過相應(yīng)的工具,如Sqoop或importTsv等完成數(shù)據(jù)的遷移過程。數(shù)據(jù)遷移中,首先要在HBase中設(shè)計(jì)好對(duì)應(yīng)的表結(jié)構(gòu),因?yàn)镠Base中,RowKey是表中每條記錄的“主鍵”,能夠?qū)崿F(xiàn)對(duì)某條數(shù)據(jù)的快速定位,Rowkey的設(shè)計(jì)非常重要。Colunm Familv代表列族,包含一個(gè)或者多個(gè)相關(guān)列。所以在進(jìn)行數(shù)據(jù)遷移前,要完成RowKey和Column Family的設(shè)計(jì)。
(二)索引的建立
HBase無可置疑擁有其優(yōu)勢(shì),但其本身只對(duì)rowkey支持毫秒級(jí)的快速檢索,對(duì)于多字段的組合查詢卻無能為力。針對(duì)HBase的多條件查詢也有多種方案,基于Sok的HBase多條件查詢?cè)硎菍Base表中涉及條件過濾的字段和rowkey在Sok中建立索引,通過Sok的多條件查詢快速獲得符合過濾條件的rowkey值,拿到這些rowkey之后在HBase中通過指定rowkey進(jìn)行查詢。
(三)實(shí)驗(yàn)與分析
本集群選擇8臺(tái)物理機(jī)搭建,硬件配置為4G內(nèi)存,80G硬盤容量,集群內(nèi)部通過SSH連通。軟件配置為LinuxCentOS操作系統(tǒng),Hadoop2.6.0,Hbase2.7.3,hivel.2.1,對(duì)應(yīng)的還有sqoop負(fù)責(zé)數(shù)據(jù)遷移,Sok負(fù)責(zé)索引的建立。實(shí)驗(yàn)數(shù)據(jù)來自高速公路收費(fèi)系統(tǒng)中近三個(gè)月的綠色通道數(shù)據(jù)。數(shù)據(jù)總量約100萬條,500G。
實(shí)驗(yàn)步驟:
1設(shè)計(jì)HBASE表結(jié)構(gòu),確定RowKey和ColunmFamily中包含的元組。
2利用Sqoop將數(shù)據(jù)從ORACLE中遷移到HBASE中。
3利用Sok為所要查詢的數(shù)據(jù)屬性建立相應(yīng)索引。
4按照數(shù)據(jù)量由小到大的順序,分四次進(jìn)行查詢效率對(duì)比實(shí)驗(yàn)。
圖1展示了未建立索引和建立索引的數(shù)據(jù)查詢時(shí)間對(duì)比。
通過上圖的展示表明,若未對(duì)存儲(chǔ)的HBase中的數(shù)據(jù)設(shè)計(jì)索引,則進(jìn)行數(shù)據(jù)查詢時(shí),查詢的時(shí)間與數(shù)據(jù)量大小無關(guān),耗時(shí)在5000秒左右。當(dāng)利用Sok對(duì)存儲(chǔ)在HBase中的數(shù)據(jù)設(shè)計(jì)索引后,能夠大幅度的降低數(shù)據(jù)的查詢時(shí)間。當(dāng)數(shù)據(jù)量在100萬條時(shí),花費(fèi)的查詢時(shí)間耗時(shí)為8分鐘左右。通過對(duì)比可以看出,建立索引能夠減少數(shù)據(jù)查詢時(shí)間,提高查詢效率,滿足對(duì)交通大數(shù)據(jù)實(shí)時(shí)查詢的要求。
四、總結(jié)
本文是云平臺(tái)Hadoop框架上,基于分布式數(shù)據(jù)庫Hbase的海量數(shù)據(jù)的存儲(chǔ)和查詢。主要從數(shù)據(jù)遷移,索引的建立和通過相關(guān)的實(shí)驗(yàn)對(duì)比來展示云環(huán)境下,分布式數(shù)據(jù)庫對(duì)海量數(shù)據(jù)存儲(chǔ)和查詢的優(yōu)勢(shì)。本文根據(jù)實(shí)際研究內(nèi)容,對(duì)高速公路特色車輛進(jìn)行查詢,通過對(duì)實(shí)驗(yàn)展示了建立索引對(duì)非主鍵數(shù)據(jù)的查詢效率的提升。放眼大數(shù)據(jù)行業(yè),在未來的研究中,針對(duì)Hadoop和HBase的優(yōu)化研究將會(huì)繼續(xù)進(jìn)行,這樣才能進(jìn)一步提高數(shù)據(jù)的查詢效率,使云技術(shù)更好的服務(wù)于大數(shù)據(jù)行業(yè)。