2

Cassandra CLI を使用すると、次の出力が得られます。

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

を使用してRandomPartitionerいます。Cleartext で (CLI から) RowKey を取得することは何とか可能ですか? 理想的には CLI ですが、文字列に変換するヘルパー クラスがあれば、これも問題ありません。

キーが何らかの形でハッシュされていることは知っています。キーを「取得」できない場合 (私が想定しなければならないこと)、元の文字列に基づいてキーを生成して比較するために使用できる、Cassandra で公開されているヘルパー クラスはありますか?

私の問題: Cassandra にレコードを保存しましたが、キーを使用し"user1|order1"てレコードを取得できません。Cassandra はレコードを見つけません。どういうわけか私のキーが間違っていると思います。それらを比較して、問題の原因を突き止める必要があります...

どうもありがとう !!イェンス

4

2 に答える 2

1

この質問は非常に関連性があります:Cassandra cli:16進値を人間が読める形式に変換します

唯一の違いは、Cassandra 0.8では、列ファミリーごとに「key_validation_class」属性があり、デフォルトでBytesTypeになっていることです。CLIがBytesTypeであることを確認すると、16進数でキーを表します。

于 2011-08-03T01:27:01.787 に答える
0

Cassandra はあなたの RowKey を 16 進バイトとして扱ってい31 30 7c 32 33 32 39ます 10|2329

assume MyColumnFamily keys as ascii;CLI でプレーンテキスト キーを表示する場合は、行キーで CLI が ASCII と 16 進数の間で自動的に変換するようにするコマンドを指定する必要があります。

または、列ファミリーを作成するときにcreate column family MyColumnFamily with key_validation_class = AsciiType;、設定を永続的に設定する which を使用します。

ハッシュは下位レベルで発生し、問題には影響しません。

于 2011-08-19T12:49:34.350 に答える