codecamp

HBase模式案例:“高/宽/中”架构设计Smackdown

HBase模式案例:“高/宽/中” 架构设计 Smackdown

本节将介绍出现在远程列表中的其他模式设计问题,特别是关于高和宽表。这些是一般准则而不是法律 - 每个应用程序都必须考虑到自己的需求。

HBase行与版本

一个常见的问题是应该更喜欢行还是 HBase 的内置版本。上下文通常是保留行的“多个”版本的地方(例如,它明显高于1个最大版本的HBase默认值)。rows-approach 需要在 rowkey 的某些部分存储一个时间戳,以便在每次连续更新时不会覆盖它们。

首选项:行(一般来说)。

HBase行与列

另一个常见问题是,是否应该更喜欢行还是列。上下文通常在宽表格的极端情况下,例如具有1行100万个属性,或每100万行1列。

首选项:行(一般来说)。需要说明的是,本指南在上下文中是非常宽泛的情况,而不是标准的用例,其中需要存储几十或者一百列。但是这两个选项之间也有一条中间路径,那就是“行作为列”。

HBase行作为列

HBase行与列之间的中间路径将打包数据,对于某些行,这些数据将成为单独的行。在这种情况下,OpenTSDB就是最好的例子,其中一行表示一个定义的时间范围,然后将离散事件视为列。这种方法通常更加复杂,并且可能需要重写数据的额外复杂性,但具有 I/O高效的优点。

HBase模式案例:客户/订单
HBase模式案例研究:列表数据
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

HBase快速入门

HBase批量加载

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }