W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本節(jié)為你介紹了 HBase 模式案例之一:日志數(shù)據(jù)和時(shí)間序列數(shù)據(jù)
假設(shè)正在收集以下數(shù)據(jù)元素。
我們可以將它們存儲(chǔ)在名為 LOG_DATA 的 HBase 表中,但 rowkey 會(huì)是什么呢?從這些屬性中,rowkey 將是主機(jī)名,時(shí)間戳和日志事件的一些組合,但具體是什么?
rowkey [timestamp][hostname][log-event] 受單調(diào)遞增的行鍵/時(shí)間戳數(shù)據(jù)(Monotonically Increasing Row Keys/Timeseries Data)中描述的單調(diào)增長(zhǎng) rowkey 問(wèn)題的影響。
通過(guò)在時(shí)間戳上執(zhí)行 mod 操作,在關(guān)于 "bucketing" 時(shí)間戳的 dist-lists 中經(jīng)常提到另一種模式。如果時(shí)間掃描很重要,這可能是一個(gè)有用的方法。必須注意 bucket 的數(shù)量,因?yàn)檫@需要相同數(shù)量的掃描來(lái)返回結(jié)果。
long bucket = timestamp % numBuckets;
構(gòu)造:
[bucket][timestamp][hostname][log-event]
如上所述,要選擇特定時(shí)間范圍(timerange)的數(shù)據(jù),需要為每個(gè)存儲(chǔ) bucket 執(zhí)行 Scan。例如,100個(gè)存儲(chǔ) bucket 將在密鑰空間中提供廣泛的分布,但它需要 100 次 Scan 才能獲得單個(gè)時(shí)間戳的數(shù)據(jù),因此存在權(quán)衡。
如果有大量的主機(jī)在整個(gè)密鑰空間中進(jìn)行寫入和讀取操作,則 rowkey [hostname][log-event][timestamp] 是一個(gè)候選項(xiàng)。如果按主機(jī)名掃描是優(yōu)先事項(xiàng),則此方法非常有用。
如果最重要的訪問(wèn)路徑是拉取最近的事件,則將時(shí)間戳存儲(chǔ)為反向時(shí)間戳(例如,timestamp = Long.MAX_VALUE – timestamp)將創(chuàng)建能夠?qū)?[hostname][log-event] 執(zhí)行 Scan 以獲取最近捕獲的事件的屬性。
這兩種方法都不是錯(cuò)的,它只取決于什么是最適合的情況。
反向掃描 API
HBASE-4811 實(shí)現(xiàn)了一個(gè) API,它以反向掃描表格或范圍內(nèi)的表格,從而減少了對(duì)正向或反向掃描進(jìn)行模式優(yōu)化的需求。此功能在 HBase 0.98 和更高版本中可用。
記住,在 HBase 的每一列上加蓋行密碼是非常重要的。如果主機(jī)名為 a,并且事件類型是 e1,那么結(jié)果 rowkey 會(huì)很小。但是,如果攝入的主機(jī)名是myserver1.mycompany.com 和事件類型是 com.package1.subpackage2.subsubpackage3.ImportantService,會(huì)怎么樣?
在 rowkey 中使用一些替換可能是有意義的。至少有兩種方法:哈希和數(shù)字。在 Rowkey Lead Position 示例中的主機(jī)名中,它可能如下所示:
帶有哈希的復(fù)合 Rowkey:
具有數(shù)值替換的復(fù)合 Rowkey:
對(duì)于這種方法,除了 LOG_DATA(稱為L(zhǎng)OG_TYPES)之外,還需要另一個(gè)查找表。LOG_TYPES 的 rowkey 是:
此 rowkey 的列可能是一個(gè)具有指定編號(hào)的長(zhǎng)整數(shù),可通過(guò)使用 HBase 計(jì)數(shù)器獲得。
所以得到的復(fù)合 rowkey 將是:
在 Hash 或 Numeric 替換方法中,主機(jī)名和事件類型的原始值可以存儲(chǔ)為列。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: