分享

Hbase集群scan命令rowkey检索问题

zhaoyang 发表于 2016-7-1 10:25:14 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 18316

如下,我有张在hbase集群中的表,其中六条记录的rowkey如下,如果仅仅按照单个rowkey用 get语法,是可以get的出来的,但是我现在用scan语法:
scan 'mytable',{STARTROW=>'664-WZ006646-20160622-5775-',ENDROW=>'664-WZ006646-20160622-5775.',COLUMN=>'f:c'}   
却只能查询出一条记录( 664-WZ006646-20160622-5775-40020955),请问是什么原因造成的,如何修复?
rowkey                                                               
664-WZ006646-20160622-5775-10000434                                                                        
664-WZ006646-20160622-5775-10000435                                                                        
664-WZ006646-20160622-5775-10000436                                                                        
664-WZ006646-20160622-5775-10000437                                                                        
664-WZ006646-20160622-5775-1807701                                                                        
664-WZ006646-20160622-5775-40020955

另外,我重新建一张表,或者你们也建一张测试表,把这6个rowkey插入进去,用我如上的scan语法,是可以查出6条记录,也就是说语法是对的



已有(9)人评论

跳转到指定楼层
easthome001 发表于 2016-7-1 14:15:06
横岗改成井号,ENDROW改成冒号
scan 'mytable',{STARTROW=>'664-WZ006646-20160622-5775#',ENDROW=>'664-WZ006646-20160622-5775:',COLUMN=>'f:c'}   

回复

使用道具 举报

zhaoyang 发表于 2016-7-1 14:51:28
easthome001 发表于 2016-7-1 14:15
横岗改成井号,ENDROW改成冒号
scan 'mytable',{STARTROW=>'664-WZ006646-20160622-5775#',ENDROW=>'664-W ...

like I said,我的那个语法是ok的,我新建了一张表(newtable),插入了相同的rowkey的数据,然后执行那个scan命令,可以得出6条
回复

使用道具 举报

langke93 发表于 2016-7-1 15:04:58
zhaoyang 发表于 2016-7-1 14:51
like I said,我的那个语法是ok的,我新建了一张表(newtable),插入了相同的rowkey的数据,然后执行那个 ...

可能是数据问题了,比如空格或则跳格等类似的问题。
楼主可以尝试在出问题的表中再次清空,然后插入测试下

回复

使用道具 举报

zhaoyang 发表于 2016-7-1 15:17:02
langke93 发表于 2016-7-1 15:04
可能是数据问题了,比如空格或则跳格等类似的问题。
楼主可以尝试在出问题的表中再次清空,然后插入测试 ...

是的,数据层面的问题,重建表必定可以的,但是由于是业务表,我们不能去动的,所以想咨询各位大神,有没有修复的手段,比如是不是rowkey索引坏,前缀树,布隆过滤器之类的?
回复

使用道具 举报

starrycheng 发表于 2016-7-1 17:40:55
zhaoyang 发表于 2016-7-1 15:17
是的,数据层面的问题,重建表必定可以的,但是由于是业务表,我们不能去动的,所以想咨询各位大神,有没 ...

如果数据本身的问题,这个很难修改了
回复

使用道具 举报

ideeper 发表于 2016-8-24 09:51:08
楼主你好,你QQ多少?我加你。我也是搞Hbase的。
回复

使用道具 举报

ideeper 发表于 2016-8-24 09:54:16
其实解决这个问题,很好解决的。
可以这样子:
StratRow:664-WZ006646-20160622-5775#
EndRow:664-WZ006646-20160622-5775:
因为ASSIC码排序是:#<0<:
或者你也可以这样查:
StratRow:664-WZ006646-20160622-5775
EndRow:664-WZ006646-20160622-5776 请注意这是:最后一位是6,不是5
回复

使用道具 举报

ledasion 发表于 2017-2-6 21:46:38
应该是ASSIC码排序问题。可以这样写 scan 'mytable',STARTROW=>'664-WZ006646-20160622-5775-',STOPROW=>'664-WZ006646-20160622-5775-~',COLUMN=>'f:c'  

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条