ruby - 通过 Ruby 查询 HBase Stargate 的十六进制行键

标签 ruby url hbase stargate

我有一个 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

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

谢谢!

最佳答案

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

关于ruby - 通过 Ruby 查询 HBase Stargate 的十六进制行键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24420200/

相关文章:

ruby - 递归删除具有空值的哈希

带有查询字符串的 URL 的正则表达式

iOS 如何处理传递给 AFHTTPSessionManager GET 方法的空格或特殊字符?

java - 如何在网址中隐藏端口号

sql - 使用Impala查询加盐的Hbase行键

java - apache tomcat 启动失败,项目 lib 文件夹中出现 phoenix-5.0.0-HBase-2.0-client.jar

java - 修复 "Configuration cannot be resolved to a type"

Ruby 将字符串转换为关键字参数

ruby-on-rails - 相关模型的每个实例的事件管理范围

ruby-on-rails - 如何在 Rails 中的服务器中保存生成的 pdf