提高Apache Hbase中的扫描性能

时间:2015-12-01 10:56:16

标签: hadoop hbase

我正在研究用例并帮助我提高扫描性能。

Customers visiting our website are generated as logs and we will be processing it which is usually done by Apache Pig and inserts the output from pig into hbase table(test) directly using HbaseStorage。这将每天早上完成。数据由以下列组成

Customerid |名称| visiturl |时间戳|位置|公司名称

我只有一个列系列(test_family)

截至目前,我已为每一行生成随机数,并将其作为该表的行键插入。例如,我有以下数据插入表

1725|xxx|www.something.com|127987834 | india |zzzz
1726|yyy|www.some.com|128389478 | UK | yyyy

如果是这样,我将第一行添加1作为第一行,第二行添加2,依此类推。

Note : Same id will be repeated for different days so I chose random no to be row-key

在查询我使用scan 'test', {FILTER=>"SingleColumnValueFilter('test_family','Customerid',=,'binary:1002')"}的表格中的数据时,返回结果需要2分钟以上。

建议我这样一种方式,因为我在实时分析中使用它时,我必须将此过程降低1至2秒

由于

1 个答案:

答案 0 :(得分:0)

根据您提到的查询,我假设您需要基于客户ID的记录。如果正确,那么,为了提高性能,您应该使用客户ID作为行密钥。

但是,单个客户ID可以有多个条目。因此,更好地设计Row键作为CustomerID |唯一编号。这个唯一的数字也可以是时间戳。这取决于您的要求。

要在这种情况下扫描数据,您需要在行键上使用PrefixFilter。这将为您提供更好的性能。

希望这有帮助..