HBase排序順序、列元數(shù)據(jù)以及聯(lián)合查詢

2018-03-13 14:45 更新

HBase排序順序

所有數(shù)據(jù)模型操作 HBase 以排序順序返回數(shù)據(jù)。首先按行,然后按列族(ColumnFamily),然后是列限定符,最后是時間戳(反向排序,因此首先返回最新的記錄)。

HBase列元數(shù)據(jù)

ColumnFamily 的內部 KeyValue 實例之外不存儲列元數(shù)據(jù)。因此,盡管 HBase 不僅可以支持每行大量的列數(shù),而且還能對行之間的一組異構列進行維護,但您有責任跟蹤列名。

獲得 ColumnFamily 存在的一組完整列的唯一方法是處理所有行。

HBase聯(lián)合查詢

HBase 是否支持聯(lián)合是該區(qū)列表中的一個常見問題,并且有一個簡單的答案:它不是,至少在 RDBMS 支持它們的方式中(例如,使用 SQL 中的等連接或外連接)。如本章所述,HBase 中讀取的數(shù)據(jù)模型操作是 Get 和 Scan,你可以參考“HBase數(shù)據(jù)模型操作”部分

但是,這并不意味著您的應用程序不支持等效的聯(lián)合功能,但您必須自己動手。兩個主要策略是在寫入 HBase 時對數(shù)據(jù)進行非規(guī)格化,或者在您的應用程序或MapReduce 代碼中使用查找表并進行HBase表之間的連接(并且正如 RDBMS 演示的那樣,有幾種策略取決于 HBase 的大小表,例如,嵌套循環(huán)與散列連接)。那么最好的方法是什么?這取決于你想要做什么,因此沒有一個適用于每個用例的答案。

ACID

ACID,指數(shù)據(jù)庫事務正確執(zhí)行的四個基本要素的縮寫,即:原子性(Atomicity),一致性(Consistency),隔離性(Isolation),持久性(Durability)。

HBase 支持特定場景下的 ACID,即對同一行的 Put 操作保證完全的 ACID(HBASE-3584增加了多操作事務,HBASE-5229增加了多行事務,但原理是一樣的)

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號