我有我的HBase数据,行密钥为siteid_timestamp。根据部分行密钥过滤HBase中的行
ROW COLUMN + CELL
001_1454578003995柱= HD:ABC,时间戳= 1454578173766,值= 2
001_1454578003996柱= HD:DEF,时间戳= 1454578173766,值= 2
002_1454578003997柱= HD :IJK,时间戳= 1454578173766,值= 2
002_1454578003998柱= HD:LMN,时间戳= 1454578173766,值= 2
的SITEID可以是不同的。 我的要求是获取时间戳范围内的行。此时间戳将是没有siteid和下划线的行键。我不想使用hbase时间戳。
所以,如果我问一个时间戳范围为> = 1454578003995 & & < = 1454578003996,我应该得到第一个两行。
你能帮我解决吗?
感谢您的回答。正如我们所看到的,RegexStringcomparator只能用于相同的操作,但我的要求是具有大于和小于操作的一系列值。我知道二进制比较可以做到这一点,但我不能给正则表达式比较只有时间戳和忽略siteid。任何解决方案在这里? 非常感谢您的帮助。 –
你可以用正则表达式来做范围,但是很麻烦。我认为'FuzzyRowFilter'还不支持范围。我们可以通过几种方式解决这个问题*过滤器的组合。我们可以在'FilterList'的帮助下添加多个过滤器。 *然后我们可以选择创建自己的“比较器”或“过滤器”。 (https://开头github上。COM/larsgeorge/HBase的书/ BLOB /主/ CH04/src目录/主/ JAVA /过滤器/ CustomFilterExample.java) – Shyam