欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng)及其查詢方法

文檔序號(hào):9547251閱讀:396來(lái)源:國(guó)知局
一種HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng)及其查詢方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng)及 其查詢方法。
【背景技術(shù)】
[0002] 隨著大數(shù)據(jù)技術(shù)的發(fā)展和應(yīng)用,HBase逐漸成為業(yè)界廣泛使用的NoSQL分布式存 儲(chǔ)系統(tǒng),它具有高可靠、面向列、開(kāi)源等特點(diǎn),已被Facebook、阿里巴巴等公司成功用于生產(chǎn) 系統(tǒng)。如何對(duì)HBase進(jìn)行高效的二級(jí)索引存儲(chǔ)、查詢是業(yè)界研究的熱點(diǎn),目前被廣泛使用的 方案架構(gòu)如圖3所示,該方案主要包含三個(gè)模塊=HBase存儲(chǔ)模塊、查詢處理模塊、查詢執(zhí)行 引擎三部分。HBase存儲(chǔ)模塊負(fù)責(zé)原始數(shù)據(jù)和索引數(shù)據(jù)的存儲(chǔ),具有分布式、大容量、快速響 應(yīng)的特點(diǎn),類(lèi)似的海量存儲(chǔ)系統(tǒng)也都可以用于作為存儲(chǔ)模塊,例如HyperTable ( -種以C語(yǔ) 言開(kāi)發(fā)的分布式列存儲(chǔ)結(jié)構(gòu)的大容量數(shù)據(jù)存儲(chǔ)系統(tǒng)),從存儲(chǔ)的角度看,現(xiàn)有方案是將數(shù)據(jù) 表存儲(chǔ)于低速存儲(chǔ)介質(zhì)(如SATA盤(pán))用于存儲(chǔ)完整數(shù)據(jù);對(duì)數(shù)據(jù)表的不同索引分別形成索 引表,存儲(chǔ)于SATA硬盤(pán),并且索引表按照業(yè)務(wù)需求冗余過(guò)濾列。查詢處理模塊收到客戶端 下發(fā)的查詢請(qǐng)求,從查詢請(qǐng)求中獲取查詢條件,檢查查詢條件是否含有非法條件、錯(cuò)誤條件 等。如果查詢條件合法,則將該查詢條件發(fā)給查詢執(zhí)行引擎;如果查詢條件非法,則將錯(cuò)誤 信息返回給客戶端。查詢執(zhí)行引擎收到合法的查詢條件時(shí),根據(jù)合法的查詢條件找出可查 的數(shù)據(jù)表或索引表,然后將合法的查詢條件轉(zhuǎn)換為HBase可處理的查詢請(qǐng)求,執(zhí)行查詢。
[0003] 現(xiàn)有的二級(jí)索引存儲(chǔ)、查詢方案需要在數(shù)據(jù)表的每個(gè)索引表中冗余過(guò)濾列,數(shù)據(jù) 冗余較大;進(jìn)行查詢時(shí),如果索引表未包含查詢條件中所有的過(guò)濾條件,則該索引表不可 查,如果所有的索引表都不可查,則需要使用查詢條件構(gòu)造過(guò)濾器,對(duì)數(shù)據(jù)表進(jìn)行全表掃 描,效率極低。并且每張索引表中都存儲(chǔ)一張過(guò)濾列表,數(shù)據(jù)存儲(chǔ)冗余大,現(xiàn)有方案中,查詢 不同的索引表時(shí),需要對(duì)不同的索引表的過(guò)濾列進(jìn)行過(guò)濾,查詢效率低。

【發(fā)明內(nèi)容】

[0004] 本發(fā)明的目的是克服現(xiàn)有技術(shù)存在的缺陷,提供一種提高查詢效率的HBase二級(jí) 索引查詢和存儲(chǔ)系統(tǒng)及其查詢方法。
[0005] 實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是:一種HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng),包括客戶 端、查詢處理模塊、查詢執(zhí)行引擎模塊和HBase存儲(chǔ)模塊,查詢處理模塊收到客戶端下發(fā)的 查詢請(qǐng)求,查詢處理模塊從查詢請(qǐng)求中獲取查詢條件,查詢處理模塊將合法的查詢條件發(fā) 送給查詢執(zhí)行引擎模塊,查詢執(zhí)行引擎模塊匹配查詢條件,從HBase存儲(chǔ)模塊中找出滿足 要求的數(shù)據(jù),HBase存儲(chǔ)模塊包括索引表和數(shù)據(jù)表,一個(gè)數(shù)據(jù)表對(duì)應(yīng)若干索引表,HBase存 儲(chǔ)模塊還包括由每個(gè)索引表的過(guò)濾列組成的主過(guò)濾列表,主過(guò)濾列表存儲(chǔ)在SSD固態(tài)硬盤(pán) 上。
[0006] 作為本發(fā)明的優(yōu)化方案,查詢執(zhí)行引擎模塊包括匹配模塊、查詢模塊和混合過(guò)濾 器,匹配模塊用于找出合法的查詢條件需要查詢的索引表、數(shù)據(jù)表或主過(guò)濾列表,查詢模塊 用于在匹配模塊匹配成功后,將合法的查詢條件轉(zhuǎn)換為HBase存儲(chǔ)模塊可以處理的查詢條 件并執(zhí)行查詢過(guò)程,混合過(guò)濾器使對(duì)所有索引表的查詢都整合為對(duì)同一個(gè)主過(guò)濾列表的查 詢。
[0007] -種利用HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng)進(jìn)行查詢的方法,包括如下步驟:
[0008] 1)查詢處理模塊接收客戶端下發(fā)的查詢請(qǐng)求;
[0009] 2)查詢處理模塊從查詢請(qǐng)求中獲取查詢條件,查詢處理模塊將合法的查詢條件發(fā) 送給查詢執(zhí)行引擎模塊進(jìn)行處理;
[0010] 3)查詢執(zhí)行引擎模塊將合法的查詢條件與索引表的rowkey匹配,判斷索引表中 是否包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件;
[0011] 4)索引表中未包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件,判斷主過(guò)濾列表中 是否包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件;
[0012] 5)主過(guò)濾列表中包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件,使用索引表包含 的過(guò)濾列構(gòu)造過(guò)濾器,對(duì)索引表進(jìn)行scan,得到主過(guò)濾列表的rowkey ;
[0013] 6)使用合法的查詢條件構(gòu)造過(guò)濾器,通過(guò)主過(guò)濾列表的rowkey對(duì)主過(guò)濾列表進(jìn) 行精確get ;
[0014] 7)查詢請(qǐng)求要求的返回列全部包含在主過(guò)濾列表中,返回對(duì)主過(guò)濾列表精確get 的結(jié)果給客戶端。
[0015] 作為本發(fā)明的優(yōu)化方案,查詢請(qǐng)求要求的返回列未全部包含在主過(guò)濾列表中,使 用主過(guò)濾列表進(jìn)行精確get的結(jié)果獲取數(shù)據(jù)表的rowkey,使用數(shù)據(jù)表的rowkey對(duì)數(shù)據(jù)表進(jìn) 行精確get。
[0016] 本發(fā)明具有積極的效果:(1)本發(fā)明將原本存儲(chǔ)在每張索引表中的過(guò)濾列合并到 一張主過(guò)濾列表中,使得需要冗余的過(guò)濾列數(shù)據(jù)大幅減少,降低了數(shù)據(jù)的存儲(chǔ)冗余;
[0017] (2)現(xiàn)有方案中,查詢不同的索引表時(shí),需要對(duì)該索引表的過(guò)濾列進(jìn)行過(guò)濾;本發(fā) 明中,對(duì)所有索引表的查詢最終都會(huì)通過(guò)混合過(guò)濾器整合為對(duì)同一張主過(guò)濾列表的查詢, 同時(shí)該主過(guò)濾列表存于快速存儲(chǔ)介質(zhì),查詢效率較高。
[0018] (3)本發(fā)明綜合使用SSD固態(tài)硬盤(pán)和SATA硬盤(pán),利用SSD固態(tài)硬盤(pán)的快速隨機(jī)讀 與性能,大大的提尚了查詢效率。
【附圖說(shuō)明】
[0019] 為了使本發(fā)明的內(nèi)容更容易被清楚地理解,下面根據(jù)具體實(shí)施例并結(jié)合附圖,對(duì) 本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明,其中:
[0020] 圖1是本發(fā)明的原理框圖;
[0021] 圖2是本發(fā)明查詢方法的流程圖;
[0022] 圖3是本發(fā)明現(xiàn)有技術(shù)的原理框圖。
[0023] 其中,1、客戶端,2、查詢處理模塊,3、查詢執(zhí)行引擎模塊,4、HBase存儲(chǔ)模塊,41、索 引表,42、數(shù)據(jù)表,43、主過(guò)濾列表,31、匹配模塊,32、查詢模塊,33、混合過(guò)濾器。
【具體實(shí)施方式】
[0024] 如圖1所示,一種HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng),包括客戶端1、查詢處理模塊 2、查詢執(zhí)行引擎模塊3和HBase存儲(chǔ)模塊4,查詢處理模塊2收到客戶端1下發(fā)的查詢請(qǐng) 求,查詢處理模塊2從查詢請(qǐng)求中獲取查詢條件,查詢處理模塊2將合法的查詢條件發(fā)送給 查詢執(zhí)行引擎模塊3,查詢執(zhí)行引擎模塊3匹配查詢條件,從HBase存儲(chǔ)模塊4中找出滿足 要求的數(shù)據(jù),HBase存儲(chǔ)模塊4包括索引表41和數(shù)據(jù)表42, 一個(gè)數(shù)據(jù)表42對(duì)應(yīng)若干索引表 41,HBase存儲(chǔ)模塊4還包括由每個(gè)索引表41的過(guò)濾列組成的主過(guò)濾列表43,主過(guò)濾列表 43存儲(chǔ)在SSD固態(tài)硬盤(pán)上。
[0025] 其中,查詢執(zhí)行引擎模塊3包括匹配模塊31、查詢模塊32和混合過(guò)濾器33,匹配 模塊31用于找出合法的查詢條件需要查詢的索引表41、數(shù)據(jù)表42或主過(guò)濾列表43,查詢 模塊32用于在匹配模塊31匹配成功后,將合法的查詢條件轉(zhuǎn)換為HBase存儲(chǔ)模塊4可以 處理的查詢條件并執(zhí)行查詢過(guò)程,混合過(guò)濾器33使對(duì)所有索引表41的查詢都整合為對(duì)同 一個(gè)主過(guò)濾列表43的查詢。
[0026] 如圖2所示是使用HBase二級(jí)索引查詢和存儲(chǔ)系統(tǒng)進(jìn)行查詢的方法流程圖,該方 法包括如下步驟:
[0027] 1)查詢處理模塊2接收客戶端1下發(fā)的查詢請(qǐng)求;
[0028] 2)查詢處理模塊2從查詢請(qǐng)求中獲取查詢條件,查詢處理模塊2將合法的查詢條 件發(fā)送給查詢執(zhí)行引擎模塊3進(jìn)行處理;
[0029] 3)查詢執(zhí)行引擎模塊3將合法的查詢條件與索引表41的rowkey匹配,判斷索引 表41中是否包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件;
[0030] 4)索引表41中未包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件,判斷主過(guò)濾列 表43中是否包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件;
[0031] 5)主過(guò)濾列表43中包含與合法的查詢條件對(duì)應(yīng)的所有的過(guò)濾條件,使用索引表 41包含的過(guò)濾列構(gòu)造過(guò)濾器,對(duì)索引表41進(jìn)行scan,得到主過(guò)濾列表43的rowkey ;
[0032] 6)使用合法的查詢條件構(gòu)造過(guò)濾器,通過(guò)主過(guò)濾列表43的rowkey對(duì)主過(guò)濾列表 43進(jìn)行精確get ;
[0033] 7)查詢請(qǐng)求要求的返回列全部包含在主過(guò)濾列表43中,返回對(duì)主過(guò)濾列表43精 確get的結(jié)果給客戶端1。
[0034] 在上述步驟3)
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
商城县| 昭通市| 清苑县| 德安县| 溧阳市| 司法| 柏乡县| 肥乡县| 宜春市| 阳山县| 永和县| 潞城市| 沧源| 潜江市| 烟台市| 罗源县| 黄山市| 新巴尔虎右旗| 泸西县| 临邑县| 余姚市| 鄂伦春自治旗| 巴林左旗| 仁寿县| 武安市| 邛崃市| 政和县| 盱眙县| 牡丹江市| 和平区| 昂仁县| 青河县| 城固县| 招远市| 库伦旗| 天水市| 湘阴县| 会东县| 天峻县| 梁平县| 滦平县|