2012-04-27 3 views
1

私のデータモデルは、今私はstartDate_mobileNo、CALL_TYPEとendDateにをフィルタリングし、検索結果を作りたい、このようスーパー列の家族の中で二次索引の任意の代替カサンドラ

 #keyspace_name{ 
      #columnfamily1 
       {startDate_mobileNo: // row key 
         { Call_TYpe: // super column 
           { xyz: value 
           endDate : value; 
           } 
         } 
       } 

のように見えます。 これは、endDateをセカンダリインデックスとして作成することで実行できます。しかし、スーパーカラムの二次索引付けは不可能です。だから私はどのように進めるのか分からない。はい、私は、単純なJavaコーディングを使用して結果データをフィルタリングすることによって、二次インデックスフィルタリングの部分を行うことができます。しかし、私は、これは正しい考えではないと思います。大規模なデータの場合は、メモリが不足する可能性があります。だから私にいくつかのアイディアを提案してください。私はあなたがカサンドラ1.1で新たに第一級のCQLをサポートしている複合キーを使用して、欲しいものを得ることができると信じてアドバンス

答えて

3

感謝。詳細については、this blog post about modeling with compositesを参照してください。

スーパーカラムは間違いなく常に問題を抱えていますが、廃止予定です。代わりにコンポジットを使用して、必要なものすべてを手に入れることができます。あなたが望んだ場合にもendDateに上のセカンダリインデックスを作ることができ

CREATE TABLE columnfamily1 (
    startDate timestamp, 
    mobileNo text, 
    Call_TYpe int, 
    endDate timestamp, 
    xyz text, 
    PRIMARY KEY (startDate, mobileNo, Call_TYpe) 
); 

:私はあなたのモデルの権利を解釈していた場合

、あなたのような何かをするかもしれません。あなたが望むかどうかは私には分かりません。

サポートする必要がある並べ替えクエリのより具体的な例をお伝えしたい場合は、より多くのサポートを受けることができます。

+0

はい私のデータモデルを正しく解釈しました。そして、私はまた、セカンダリインデックスとしてendDateを設定したい。実際に私はいくつかの結果を私のcolumnfamilyからそれらの4つのフィールドをフィルタリングを取得したい。しかしスーパーカラムファミリーを使用すると効率を上げることができません。私の側からのもう1つのリクエストは、私があなたから何かを学ぶことができるように、私はあなたの電子メールIDを持っていますか? – abhi

+0

私は可能な限りここで質問に答えたいと思うし、少なくとも(Datastax support forums)(http://www.datastax.com/support-forums/)で私が一度に人々。限られた時間、あなたは知っています。 –

+0

ポールさん、あなたの側から別の助けが必要です。このリンクをご覧くださいhttp://stackoverflow.com/questions/10482493/astyanax-composite-column – abhi

関連する問題