CLI Cassandra: RowKey с RandomPartitioner = Показать ключ в открытом тексте? - PullRequest
2 голосов
/ 02 августа 2011

с использованием Cassandra CLI дает мне следующий вывод:

RowKey: 31307c32333239
=> (super_column=3f18d800-fed5-17cf-b91a-0016e6df0376,
     (column=date, value=1312289229287, timestamp=1312289229647000)

Я использую RandomPartitioner.Можно ли как-нибудь получить RowKey (из CLI) в открытом тексте?В идеале в CLI, но если есть класс-помощник для преобразования его обратно в строку, это тоже будет хорошо.

Я знаю, что ключ как-то хешируется.Если ключ не может быть «извлечен» (что я должен предположить), есть ли в Кассандре класс помощника, который я могу использовать для генерации ключа на основе моей исходной строки для сравнения?Проблема: Я сохранил Записи в Кассандре, но используя Ключ как "user1|order1", я не могу получить записи.Кассандра не находит никаких записей.Я предполагаю, что мои ключи как-то не так, и мне нужно сравнить их и выяснить, в чем проблема ...

Спасибо большое !!Jens

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Этот вопрос очень актуален: Cassandra cli: преобразовать шестнадцатеричные значения в читабельный формат

Единственное отличие состоит в том, что в Cassandra 0.8 теперь есть атрибут "key_validation_class" для каждого семейства столбцов, и по умолчанию он равен BytesType. Когда CLI видит, что это BytesType, он представляет ключ в шестнадцатеричном виде.

0 голосов
/ 19 августа 2011

Кассандра рассматривает ваш RowKey как шестнадцатеричные байты: 31 30 7c 32 33 32 39 в шестнадцатеричном - это 10|2329 в ASCII, который, я полагаю, является вашим ключом.

Если вы хотите видеть свои ключи открытого текста в CLI, тогдавам нужно дать команду assume MyColumnFamily keys as ascii;, которая заставит CLI автоматически преобразовывать между ASCII и hex для вас в ключах строки.

Или, когда вы создаете семейство столбцов, используйте create column family MyColumnFamily with key_validation_class = AsciiType;, который установитпредпочтение навсегда.

Хеширование происходит на более низком уровне и не влияет на вашу проблему.

...