5

我有一个 HBase 表,它(部分)使用十六进制字节来构造它的行键。我可以从 Hbase Shell 查询如下

get 'my_table', "XYZ:\x7F\xFF\xFF\xFF\xFF\xFF\xFF\x82"

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

如果我运行上面完全相同的查询,我会得到 404 not found。请注意,:\字符是 URL 编码的。

curl "http://myHbaseServer.domain:8080/my_table/XYZ%3A%5Cx7F%5CxFF%5CxFF%5CxFF%5CxFF%5CxFF%5CxFF%5Cx82/content:raw"
=> 404 Not Found

我知道这种格式是正确的,因为当我简单地调用/端点时它会返回一个表格列表。它也不会引发连接错误。关于这些角色是否被正确转义的任何想法?

谢谢!

4

1 回答 1

1

\x不需要编码,这只是 HBase 用来表示非 ASCII 字节值的约定。\x7F应转换为%7F在 URL

于 2015-05-25T13:02:35.040 回答