码迷,mamicode.com
首页 > 其他好文 > 详细

HBase学习笔记(一)

时间:2015-07-28 06:34:50      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

HBase版本:0.97

1.Get

Gets实在Scan的基础上实现的。

2.联合查询(Join)

HBase是否支持联合是一个网上常问问题。简单来说 : 不支持。至少不像传统RDBMS那样支持。

但并不表示等价联合不能在应用程序中支持,只是必须自己做。 两种方法,要么指示要写到HBase的数据,要么查询表并在应用或MapReduce代码中做联合。

3.列族

一个表存在多列族,注意基数(如, 行数). 如果列族A有100万行,列族B有10亿行,列族A可能被分散到很多很多区(及区服务器)。这导致扫描列族A低效。

无论是列族,属性和行键都会在数据中重复上亿次。所以尽量使列族名小,最好一个字符。

TTL

列族可以设置TTL秒数,HBase 在超时后将自动删除数据。影响 全部 行的全部版本 - 甚至当前版本。HBase里面TTL 时间时区是 UTC.

4.行键(RowKey)设计

OpenTSDB的Key的格式是[metric_type][event_timestamp],乍一看,似乎违背了不将timestamp做key的建议,但是他并没有将timestamp作为key的一个关键位置,有成百上千的metric_type就足够将压力分散到各个region了。

5.倒序时间戳

一个数据库处理的通常问题是找到最近版本的值。采用倒序时间戳作为键的一部分可以对此特定情况有很大帮助。追加(Long.MAX_VALUE - timestamp) 到key的后面,如 [key][reverse_timestamp].

表内[key]的最近的值可以用[key]进行 Scan 找到并获取第一个记录。由于 HBase 行键是排序的,该键排在任何比它老的行键的前面,所以必然是第一个。

6.行健

行键不能改变。唯一可以“改变”的方式是删除然后再插入。

 

HBase学习笔记(一)

标签:

原文地址:http://www.cnblogs.com/warmingsun/p/HBase.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!