大数据功能调优之HBase的RowKey规划ITeye - 凯发娱乐

大数据功能调优之HBase的RowKey规划ITeye

2019-01-11 00:26:33 | 作者: 曼凡 | 标签: 功能,记载,咱们 | 浏览: 370

这儿UserID应该对应另一张User表,暂不列出。咱们只需知道UserID的意义:

1代表 浙江卫视; 2代表 好声响剧组; 3代表 XX微博; 4代表赞助商。调用查询接口的时分将上述5个条件一起输入find(20120901,20121001,”我国好声响”,”综艺”,”浙江卫视”)。此刻咱们应该得到记载应该有第1、2、3、4、5、7条。第6条因为不属于“浙江卫视”应该不被选中。咱们在规划RowKey时能够这样做:选用 UserID + CreateTime + FileID组成RowKey,这样既能满意多条件查询,又能有很快的查询速度。

需求留意以下几点:

(1)每条记载的RowKey,每个字段都需求填充到相同长度。假设预期咱们最多有10万量级的用户,则userID应该一致填充至6位,如000001,000002…

(2)结束增加大局仅有的FileID的意图也是使每个文件对应的记载大局仅有。防止当UserID与CreateTime相一起的两个不同文件记载彼此掩盖。

依照这种RowKey存储上述文件记载,在HBase表中是下面的结构:

rowKey(userID 6 + time 8 + fileID 6) name category ….

00000120120902000001

00000120120904000002

00000120120906000003

00000120120908000004

00000120120910000005

00000120120914000007

00000220120912000006

00000220120916000008

00000320120918000009

00000420120920000010

怎样用这张表?

在树立一个scan目标后,咱们setStartRow(00000120120901),setEndRow(00000120120914)。

这样,scan时只扫描userID=1的数据,且时刻规模约束在这个指定的时刻段内,满意了按用户以及按时刻规模对成果的挑选。而且因为记载会集存储,功能很好。

然后运用 SingleColumnValueFilter(org.apache.hadoop.hbase.filter.SingleColumnValueFilter),共4个,别离束缚name的上下限,与category的上下限。满意按一起按文件名以及分类名的前缀匹配。

(留意:运用SingleColumnValueFilter会影响查询功能,在真实处理海量数据时会耗费很大的资源,且需求较长的时刻)

假如需求分页还能够再加一个PageFilter约束回来记载的个数。

以上,咱们完成了高功能的支撑多条件查询的HBase表结构规划。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章