使用 Hbase 过滤器搜索有空格但没有空格的行键

Posted

技术标签:

【中文标题】使用 Hbase 过滤器搜索有空格但没有空格的行键【英文标题】:Search for row keys with spaces without space using Hbase filters 【发布时间】:2019-06-20 13:03:51 【问题描述】:

我正在尝试使用 RowFilter 从 Hbase 表中获取行。

我有一个包含如下数据的 hbase 表

RowKey
krm south tower
krm north tower                 

如果我将“krm”或“krm south”作为 RowFilter 的输入,我会得到相应的记录。

RowFilter(=,'binaryprefix:krm') or RowFilter(=,'binaryprefix:krm south')

当我将“krmsouth”(不带空格)传递给过滤器时,它会返回空记录。

RowFilter(=,'binaryprefix:krmsouth')

如果将“krmsouth”传递给过滤器,我需要获取krm南塔的相应值。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

最简单的答案是您的行键确实不应该有空格。如果您绝对需要带空格的行键,则必须编写自己的代码来运行带有和不带空格的查询。或者,您可以编写协处理器。

【讨论】:

感谢您的回复。如果我需要搜索类似场景的列值怎么办? 同样适用(当然,带有空格的值是完全可以接受的)。

以上是关于使用 Hbase 过滤器搜索有空格但没有空格的行键的主要内容,如果未能解决你的问题,请参考以下文章

HBase里的优秀行键设计

hbase如何用过滤器实现项目某个求总数量的统计

HBase过滤器(转载)

HBase - Filter - 过滤器的介绍以及使用

hbase 的最佳行键设计

Sqoop2 Hbase 导入:无法为行键列插入具有空值的行