2

Cassandra で小さな POC を作成する必要があり、次のタイプの列ファミリーを作成する必要があります。

一意の文字列 ID (「1234」など) を持つユーザーは、すべての受信メッセージをタイムスタンプ順に保存する必要があります。

   "1234"=> 
    [
      1348008041376000 : {  target_uid : 4321, msg : "Hello, how are you?" },
      1348008041377000 : {  target_uid : 3213, msg : "And how Are you?" }
    ] ,
    "4321"=> 
    [
      1348008041376000 : {  target_uid : 1234, msg : "Thank you I'm fine." },
      1348008041377000 : {  target_uid : 2345, msg : "And how Are you?" }
    ] 

私は長い間グーグルで検索し、多くの例を見てきましたが、どのタイプの COLUMN FAMILY をすべきかまだわかりませんか?

私は Cassandra がまったく初めてで、宿題のように聞こえることを知っています :) が、助けてください。

アップデート:

次の cli Create Family 列を作成しようとしていますが、うまくいかないようです。

 CREATE COLUMN FAMILY messages with comparator = DateType and key_validation_class=UTF8Type AND column_metadata=[ {column_name: msg, validation_class: UTF8Type}];
java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: unable to coerce 'msg' to a  formatted date (long)

cli 構文について教えてください。

4

1 に答える 1

2

これにより、1.1より前のバージョンでうまくいくはずです。JSON値を広い行に格納していることを前提としています(独自のシリアル化を管理します)。

CREATE COLUMNFAMILY Example 
  ( user_id text PRIMARY KEY ) 
  WITH comparator=timestamp;

バージョン1.1以降については、次のドキュメントを参照して詳細なガイダンスを確認してください: http ://www.datastax.com/dev/blog/schema-in-cassandra-1-1

于 2012-09-19T02:02:02.840 に答える