【问题标题】:Improve hbase query performance提高 hbase 查询性能
【发布时间】:2015-07-23 19:55:05
【问题描述】:

我有一个包含客户联系信息的 hbase 表。该表包含大约 700k 行。我有一个脚本,它必须查询客户表以查找 2000-3000 条记录的匹配项。每次扫描大约需要 1 秒才能完成。因此,对于 2000 条记录,需要 33 分钟才能完成。我想看看我是否可以提高这种性能。我试过设置缓存,但没有帮助。这是详细信息。 我在客户表上只有一个列族,客户 ID 是行键。我的查询看起来像这样。

SingleColumnValueFilter('internal', 'country', =, 'binary:GB') AND SingleColumnValueFilter('internal', 'postcode', =, 'binary:W24RT') AND SingleColumnValueFilter('internal', 'street', =, '二进制:bayswaterroad')

如何提高性能?

【问题讨论】:

  • 您是否考虑过使用关系数据库(例如 MySQL)来存储您的数据?对于此任务和您的数据大小,它将更加高效。

标签: performance hbase


【解决方案1】:

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

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

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

【讨论】:

  • 您能告诉我这些选项是什么吗?
  • 为了防止在一行中找不到该列时发出整行,请使用 setFilterIfMissing(boolean)。否则,如果找到该列,则仅当值通过时才会发出整行。如果值失败,该行将被过滤掉。
猜你喜欢
  • 2014-04-04
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 2021-08-03
  • 2013-02-17
  • 2021-12-15
  • 2014-04-09
相关资源
最近更新 更多