2015-04-01 2 views
1

Когда я пытаюсь прочитать столбец типа uuid4 из кассандры, я получаю мусор. Есть ли способ, чтобы прочитать его в удобочитаемом формате (формат шестигранной строки, представляющей объекты uuid4)Как читать объекты uuid4 в удобочитаемом формате в cqlsh - cassandra

Вот что я получаю -

cqlsh:upgradetest> select * from "AccessControlLinks" where key = 'a471b42b-cb20-4ae2-b924-c79a5eec1bed-Filters'; 

key           |  column1           | value 

a471b42b-cb20-4ae2-b924-c79a5eec1bed-Filters | G\xff\xbc\x01\xaadNp\xb6\xd9\xe2\xd9\x0e\xd1\[email protected] |  

Есть ли какая-либо функция cqlsh/некоторый флаг мне нужно установить значение столбца1 в читаемом для человека формате?

Заранее спасибо

Manish

+0

Ну я нашел питон-иш способа сделать это, как Энди абсолютно право в своем ответе. human_readble_id = UUID (bytes = six.b (uuid_obj)) Вам нужно импортировать пакеты «шесть» и «UUID из uuid». Я уверен, что другие языки программирования должны иметь сходные обходы. –

ответ

2

Проблема у Вас есть то, что вы используете компактное хранение (бережливость таблицы), так что вы теряете на преимуществах CQL и ваши значениях столбцов собирается просто быть капли.

Есть ли причина, по которой вы используете компактное хранилище? Вы по-прежнему используете бережливость для транспортировки данных или выбрали компактное хранилище по другой причине?

Я не верю, что вам будет легко прочитать данные в не двоичном формате cqlsh.

0

Нет простого способа прочитать строку uuid через cqlsh, когда данные в cassandra находятся в сжатом формате. Но в python есть работа. Просто упомянуть, если люди столкнулись с одной проблемой.

Вот как это можно сделать. Перейти к питону ПРОМТОМ

import uuid 
uuid.UUID(bytes='\xec\x84\x9e\xfd\x83\x83N6\x9b\xcd\xa4<{\x8a\xda\xd9') 

т.е. проход строки из cqlsh в uuid.UUID

Смежные вопросы