Performance 提高hbase查询性能

Performance 提高hbase查询性能,performance,hbase,Performance,Hbase,我有一个hbase表,其中包含客户的联系信息。此表包含大约700k行。我有一个脚本,它必须查询customers表以查找2000-3000条记录的匹配项。每次扫描大约需要1秒才能完成。因此,对于2000条记录,需要33分钟才能完成。我想看看我是否能提高这个性能。我试过设置缓存,但没有用。详情如下。 我在customers表上只有一个列族,customer id是行键。我的问题是这样的 SingleColumnValueFilter('internal','country',=,'binary:G

我有一个hbase表,其中包含客户的联系信息。此表包含大约700k行。我有一个脚本,它必须查询customers表以查找2000-3000条记录的匹配项。每次扫描大约需要1秒才能完成。因此,对于2000条记录,需要33分钟才能完成。我想看看我是否能提高这个性能。我试过设置缓存,但没有用。详情如下。 我在customers表上只有一个列族,customer id是行键。我的问题是这样的

SingleColumnValueFilter('internal','country',=,'binary:GB')和 SingleColumnValueFilter('internal','postcode',=,'binary:W24RT')和 SingleColumnValueFilter('内部','街道',=, '二进制:bayswaterroad')


如何提高性能?

当您根据查询要求设计行键时,Hbase的最佳性能就会出现。当您根据该行键进行搜索时,您将得到最短的时间。因此,一个选择是优化行键

此外,还包括3个列值过滤器,因此对于每个扫描,它有3次查找


您可以添加更多与排除不匹配行相关的选项。

您是否考虑过使用关系数据库(如MySQL)来存储数据?对于此任务和您的数据大小来说,这将更加有效。您能告诉我这些选项是什么吗?要防止在一行中找不到该列时发出整行,请使用setFilterIfMissing(布尔值)。否则,如果找到该列,则仅当该值通过时才会发出整行。如果该值失败,则该行将被过滤掉。