2014-06-25 11 views
5

Tôi có một bảng HBase (một phần) sử dụng các byte thập lục phân để xây dựng các rowkey của nó. Tôi có thể truy vấn từ HBase Shell tốt như sauTruy vấn HBase Stargate cho một rowkey thập lục phân thông qua Ruby

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

Tuy nhiên, tôi muốn sử dụng API Stargate (hoặc một trong nhiều đá quý ruby ​​phục vụ như là một wrapper) để truy vấn HBase từ xa.

Nếu tôi chạy cùng một truy vấn chính xác ở trên, tôi không tìm thấy 404. Lưu ý rằng các ký tự :\ được mã hóa URL.

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

Tôi biết định dạng này là chính xác vì nó trả về danh sách bảng khi tôi chỉ cần gọi điểm cuối /. Nó cũng không ném một lỗi kết nối. Bất kỳ suy nghĩ về việc liệu các nhân vật này có được thoát đúng cách không?

Cảm ơn!

Trả lời

1

\x không cần phải được mã hóa, đây chỉ là quy ước được HBase sử dụng để biểu thị giá trị byte không phải ASCII. \x7F phải được chuyển đổi thành %7F trong URL

Các vấn đề liên quan