更新時間:2021年03月04日15時33分 來源:傳智教育 瀏覽次數(shù):
數(shù)據(jù)庫最常見的操作就是讀寫數(shù)據(jù),接下來,針對HBase讀寫數(shù)據(jù)的流程進行詳細介紹。
讀數(shù)據(jù)流程
從HBase中讀數(shù)據(jù)的流程其實就是尋址的流程,具體流程如下:
(1) Client通過ZooKeeper、“-ROOT-”表以及“.META.”表來找到目標數(shù)據(jù)所在的RegionServer地址(即目標數(shù)據(jù)所在Region的服務(wù)器地址);
(2) Client通過請求RegionServer地址來查詢目標數(shù)據(jù);
(3) RegionServer定位到目標數(shù)據(jù)所在的Region,然后發(fā)出查詢目標數(shù)據(jù)的請求;
(4) Region先在MemStore中查找目標數(shù)據(jù),若查找到,則返回;若查找不到,則繼續(xù)在StoreFile中查找。
寫數(shù)據(jù)流程
即存儲數(shù)據(jù),從客戶端把目標數(shù)據(jù)存儲到服務(wù)器上。具體流程如下:
(1) Client根據(jù)行鍵RowKey找到對應(yīng)的Region所在的RegionServer;
(2) Client向RegionServer發(fā)送提交寫入數(shù)據(jù)的請求;
(3) RegionServer找到目標Region;
(4) Region檢查數(shù)據(jù)是否與Schema一致;
(5) 若Client沒有指定版本,則獲取當(dāng)前系統(tǒng)的時間作為數(shù)據(jù)版本;
(6) 將更新的記錄寫入預(yù)寫日志HLog和MemStore中;
(7) 判斷 MemStore是否已滿,若滿則進行flush操作,將數(shù)據(jù)寫入StoreFile文件,反之,則直接將數(shù)據(jù)存入MemStore。
猜你喜歡:
HBase分布式數(shù)據(jù)庫有哪些特點?HBase簡介
HBase數(shù)據(jù)庫是怎樣存儲數(shù)據(jù)的??