2014-06-25 9 views
5

Ho una tabella HBase che (in parte) utilizza byte esadecimali per costruire i suoi tasti di riga. Sono in grado di interrogare dal HBase Shell bene come segueInterrogazione di HBase Stargate per una riga chiave esadecimale tramite Ruby

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

Tuttavia, voglio utilizzare l'API Stargate (o una delle tante gemme del rubino che servono come involucro) per interrogare HBase remoto.

Se eseguo esattamente la stessa query sopra, ottengo un 404 non trovato. Si noti che i caratteri : e \ sono codificati URL.

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

So che questo formato è corretto in quanto restituisce un elenco tavolo quando ho semplicemente chiamo il / endpoint. Inoltre, non genera un errore di connettività. Qualche idea sulla fuga di questi personaggi?

Grazie!

risposta

1

\x non devono essere codificati, questa è solo una convenzione utilizzata da HBase per rappresentare un valore di byte non ASCII. \x7F deve essere convertito in %7F nell'URL

Problemi correlati