おそらく他の場所で説明されていることを私に許してもらえますが、私はカサンドラでデータモデルを設計するのに問題があります。カサンドラデータモデルのアプローチ
取引を保存しています。これらのトランザクションには、それぞれソース(ユーザー)、タイムスタンプ、および関連するキーワードがあります。ソースと日付範囲と(オプションの)キーワードを指定してトランザクションを見つけることができる必要があります。私は何十億というトランザクションを保存する必要があるため、カサンドラは魅力的です。
このようなことを行う方法を説明するリソースが見つかりませんでした。私の最初の考えは、トランザクションCF、keyword_transaction CF、source_transaction CF、および可能なday_transaction CF(または同様のもの)のようないくつかのCFを持つことです。これにより、上記の項目のいずれかに基づいてトランザクションを見つけるのは非常に簡単ですが、上記の項目すべてを検索できるようには見えません。
どのような考えですか?
私は同様の質問をするためにここに来ました。私はこの解決策にも達しましたが、「ホットスポット」への言及が不十分なため、私はそれに満足していません。パーティションキーであるため、すべてのデータは単一のノードに移動します。私はこれが避けられるかどうか、 "source = 'foo'やtime> t0、time
この質問はOPによって尋ねられました。かなり前に起こったことです。上記のカサンドラ - クリ氏さえもこの瞬間には好意的ではありません。 preferメソッドはvia cqlshを使用します。つまり、データを別のサーバーに保存する場合は、ホットスポットの印象をどのように取得するのか分かりません。 key1 || foo、key1 || barこれをハッシングすると、異なるサーバーにストアされますか?しかし、我々は約300~400GBの安定した各ノード負荷の生産データを持っています。ホットスポット?あなたが今言及するまで気づかず、気にもしません。 – Jasonw
私は今cqlshについて言及しています。だから、この時点でcql spec 3.0以降をチェックしてください.casandraバージョン1.2と2.0以降では、cqlサポートの傾向が改善されています。 http://cassandra.apache.org/doc/cql3/CQL.htmlとhttp://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0をお読みください。あなたの正確な質問はわかりませんが、私のコメントに基づいてアイデアを得ることを願っています。 – Jasonw