為什麼Hbase能實現快速的查詢

2021-09-07 03:50:02 字數 928 閱讀 9066

你的快速是指什麼? 是根據億級的記錄中快速查詢,還是說以實時的方式查詢資料。

a:如果快速查詢(從磁碟讀資料),hbase是根據rowkey查詢的,只要能快速的定位rowkey,  就能實現快速的查詢,主要是以下因素:

1、hbase是可劃分成多個region,你可以簡單的理解為關係型資料庫的多個分割槽。

2、鍵是排好序了的

3、按列儲存的

首先,能快速找到行所在的region(分割槽),假設表有10億條記錄,佔空間1tb,   分列成了500個region,  1個region佔2個g. 最多讀取2g的記錄,就能找到對應記錄; 

其次,是按列儲存的,其實是列族,假設分為3個列族,每個列族就是666m, 如果要查詢的東西在其中1個列族上,1個列族包含1個或者多個 hstorefile,假設乙個hstorefile是128m, 該列族包含5個hstorefile在磁碟上. 剩下的在記憶體中。

再次,是排好序了的,你要的記錄有可能在最前面,也有可能在最後面,假設在中間,我們只需遍歷2.5個hstorefile共300m

最後,每個hstorefile(hfile的封裝),是以鍵值對(key-value)方式儲存,只要遍歷乙個個資料塊中的key的位置,並判斷符合條 件可以了。 一般key是有限的長度,假設跟value是1:19(忽略hfile上其它塊),最終只需要15m就可獲取的對應的記錄,按照磁碟的訪問 100m/s,只需0.15秒。 加上塊快取機制(lru原則),會取得更高的效率。

b:實時查詢

實時查詢,可以認為是從記憶體中查詢,一般響應時間在1秒內。hbase的機制是資料先寫入到記憶體中,當資料量達到一定的量(如128m), 再寫入磁碟中, 在記憶體中,是不進行資料的更新或合併操作的,只增加資料,這使得使用者的寫操作只要進入記憶體中就可以立即返回,保證了hbase i/o的 高效能。

實時查詢,即反應根據當前時間的資料,可以認為這些資料始終是在記憶體的,保證了資料的實時響應。

為什麼Hbase能實現快速的查詢

你的快速是指什麼?是根據億級的記錄中快速查詢,還是說以實時的方式查詢資料。a 如果快速查詢 從磁碟讀資料 hbase是根據rowkey查詢的,只要能快速的定位rowkey,就能實現快速的查詢,主要是以下因素 1 hbase是可劃分成多個region,你可以簡單的理解為關係型資料庫的多個分割槽。2 鍵...

為什麼HBase資料查詢快速

快速查詢可以分作兩方面 一是根據億級的記錄中快速查詢,二是以實時的方式查詢資料。a 如果快速查詢 從磁碟讀資料 hbase是根據rowkey查詢的,只要能快速的定位rowkey,就能實現快速的查詢,主要是以下因素 1 hbase是可劃分成多個region,你可以簡單的理解為關係型資料庫的多個分割槽。...

FPGA為什麼能實現邏輯運算

首先回答題目問題 fpga的邏輯結果不是算出來的,是查出來的。也就是說fpga的邏輯功能實現是基於查詢表的。cpld,複雜可程式設計邏輯器件。邏輯陣列的每乙個交叉點都可以通過程式設計實現導通從而實現與邏輯,乘積項選擇矩陣可實現或邏輯。也就是cpld的組合邏輯都是直接通過內部的與非門實現的。fpga,...