通过Ruby查询HBase Stargate的十六进制rowkey

use*_*003 5 ruby url hbase stargate

我有一个HBase表(部分)利用十六进制字节来构造其rowkeys.我可以从Hbase Shell查询,如下所示

get 'my_table', "XYZ:\x7F\xFF\xFF\xFF\xFF\xFF\xFF\x82"
Run Code Online (Sandbox Code Playgroud)

但是,我想使用stargate API(或作为包装器的众多ruby gem之一)远程查询hbase.

如果我运行上面完全相同的查询,我找不到404.请注意,:\字符是URL编码的.

curl "http://myHbaseServer.domain:8080/my_table/XYZ%3A%5Cx7F%5CxFF%5CxFF%5CxFF%5CxFF%5CxFF%5CxFF%5Cx82/content:raw"
=> 404 Not Found
Run Code Online (Sandbox Code Playgroud)

我知道这种格式是正确的,因为它只是在调用/端点时返回一个表列表.它也没有引发连接错误.有关这些角色是否被正确转义的任何想法?

谢谢!

kos*_*tya 1

\x不需要编码,这只是 HBase 用于表示非 ASCII 字节值的约定。\x7F应转换为%7FURL 中的内容