HBase模式案例:“高/寬/中”架構(gòu)設(shè)計(jì)Smackdown

2018-03-26 16:33 更新

HBase模式案例:“高/寬/中” 架構(gòu)設(shè)計(jì) Smackdown

本節(jié)將介紹出現(xiàn)在遠(yuǎn)程列表中的其他模式設(shè)計(jì)問題,特別是關(guān)于高和寬表。這些是一般準(zhǔn)則而不是法律 - 每個(gè)應(yīng)用程序都必須考慮到自己的需求。

HBase行與版本

一個(gè)常見的問題是應(yīng)該更喜歡行還是 HBase 的內(nèi)置版本。上下文通常是保留行的“多個(gè)”版本的地方(例如,它明顯高于1個(gè)最大版本的HBase默認(rèn)值)。rows-approach 需要在 rowkey 的某些部分存儲(chǔ)一個(gè)時(shí)間戳,以便在每次連續(xù)更新時(shí)不會(huì)覆蓋它們。

首選項(xiàng):行(一般來說)。

HBase行與列

另一個(gè)常見問題是,是否應(yīng)該更喜歡行還是列。上下文通常在寬表格的極端情況下,例如具有1行100萬個(gè)屬性,或每100萬行1列。

首選項(xiàng):行(一般來說)。需要說明的是,本指南在上下文中是非常寬泛的情況,而不是標(biāo)準(zhǔn)的用例,其中需要存儲(chǔ)幾十或者一百列。但是這兩個(gè)選項(xiàng)之間也有一條中間路徑,那就是“行作為列”。

HBase行作為列

HBase行與列之間的中間路徑將打包數(shù)據(jù),對(duì)于某些行,這些數(shù)據(jù)將成為單獨(dú)的行。在這種情況下,OpenTSDB就是最好的例子,其中一行表示一個(gè)定義的時(shí)間范圍,然后將離散事件視為列。這種方法通常更加復(fù)雜,并且可能需要重寫數(shù)據(jù)的額外復(fù)雜性,但具有 I/O高效的優(yōu)點(diǎn)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)