开发者

Cassandra CLI: RowKey with RandomPartitioner = Show Key in Cleartext?

using Cassandra CLI gives me the following output:

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

I am using RandomPartitioner. Is it somehow possible to get the RowKey (from CLI) in Cleartext? Ideally in the CLI but if there is a Helper Class to convert it back into a String, this would also be ok.

I know the key is somehow hashed. If the key can not be "retrieved" (what I have to assume), Is there are helper Class exposed in Cassandra, that I can use to generate the Key based on my original String to compare them?

My Problem: I have stored Records in Cassandra, but using the Key like "user1|order1" I am not able to retrieve the 开发者_Python百科records. Cassandra does not find any records. I assume that somehow my keys are wrong and I need to compare them and find out whtere the problem is...

Thanks very much !! Jens


This question is highly relevant: Cassandra cli: Convert hex values into a human-readable format

The only difference is that in Cassandra 0.8, there is now a "key_validation_class" attribute per column family, and it defaults to BytesType. When the CLI sees that it's BytesType, it represents the key in hex.


Cassandra is treating your RowKey as hex bytes: 31 30 7c 32 33 32 39 in hex is 10|2329 in ASCII, which I guess is your key.

If you want to see your plaintext keys in the CLI, then you need to give the command assume MyColumnFamily keys as ascii; which will make the CLI automatically translate between ASCII and hex for you in the row keys.

Or, when you create the column family, use create column family MyColumnFamily with key_validation_class = AsciiType; which will set the preference permanently.

The hashing occurs at a lower level and doesn't affect your problem.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜