整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

13.5.1模式

hadoop 花牛 12℃ 0评论

在我们的示例中,有两个表。

1. stations 

这个表包含观测站数据。行的键是stationid。这个表还有一个列族info,它能作为键/值字典来支持对观测站信息的査找。字典的键就是列名 info:nameinfo:location以及 info:description。这个表是静态的,在这里,列族h/o的设计类似于RDBMS中表的设计。

2. observations 


这个表存放气温观测数据。行的键是stationid和逆序时间戳构成的组合键。这个表有一个列族data,它包含一列airtemp,其值为观测到的气温值。

我们对模式的选择取决于我们知道最高效的读取HBase的方式。行和列以 字典序升序保存。虽然有二级索引和正则表达式匹配工具,但它们会损失 其他性能。清楚地理解查询数据最高效的方式对于选择最有效的存储和访 问数据的设置非常关键。

stations表中,显然选择stationid作妁键,因为我们总是根据特定站点的ID来访问观测站的信息。但observations表使用的是一个组合键 (把观测的时间戳加在键之后)。这样,同一个观测站的观测数据就会被分组 放到一起,使用逆序时间戳(Long.MAX_VALUE – epoch)的二进制存储,系统把每个观测站观测数据中最新的数据存储在最前面。

在外壳环境中,可以用以下方法来定义表:

hbase(main):036:0> create 'stations', {NAME => 'info', VERSIONS => 1}
0 row(s) in 0.1304 seconds
hbase(main):037:0> create 'observations' , {NAME => 'data', VERSIONS => 1}
0 row(s) in 0.1332 seconds

在两个表中,我们都只对表单元格的最新版本感兴趣,所以VERSIONS设为1(默认值是3)。

转载请注明:全栈大数据 » 13.5.1模式

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址