2016-09-04 15 views
1

これは私のシナリオです。次の列、コード、名前、説明、日時を持つテーブルビジネスを持っています。今では、現在のシステム日付時刻よりも日時の長いビジネスレコードのコードと名前を表示する必要があります。 上記のシナリオでは、cassandraが最高のパフォーマンスを発揮できるように、どのような戦略をとるべきですか。カサンドラは、日付範囲に基づいて行を選択します。

おかげ アニ

+0

戦略とはどういう意味ですか? – bkowalczyyk

答えて

0

私はあなたのデータのサイズを知らないが、あなたは日時によって、問合せをしたいとあなたは範囲をしたいので、この特定の列には、あなたの最後のクラスタリングの列でなければなりません。これにより、あなたがそれを使って照会できるようになり、範囲検索もできるようになります。ある列で範囲検索を行うと、クエリがすぐに終了することを覚えておいてください。

例:

有効なクエリ は今>テーブルカラム1 = something1とCOLUMN2 = something2と日時から選択します*;

無効なクエリ 選択*テーブルからどこCOLUMN1 = something1とCOLUMN2 < something2と日時>今;

詳細が必要な場合や、データサイズとユースケースに関する詳細情報をご提供いただける場合は、こちらをご覧ください。 いずれにしても、このcourse from datastaxは私にモデリングプロセスを助けてくれました。私は100%それをお勧めします。これは無料。あなたはサインアップする必要があります。

+0

あなたの返事に感謝Reveka。私の要求では、あなたが提案した他の列(column1、column2)を使用することはできません。なぜなら、datetime列だけがデータをフィルタリングできるからです。 プライマリ列を指定せずに範囲クエリを実行できる「SSTable Attached Secondary Index(SASI)」を使用しましたか? – Ani

+0

はい、私はそれをお勧めしません。それはかなり予期しない動作をしています(少なくとも私の使用例では)。だから、物事を真っ直ぐにするために、唯一の検索オプションは日時ですか? – Reveka

+0

こんにちはReveka、 はい、私の検索オプションはdatetimeのみです(ユースケースによると、Webページのドロップダウン時には、datetimeが現在のdatetimeより大きいビジネスコードのみを表示する必要があります(過去datetimeを持つ他のビジネスコード有効期限が切れているビジネスコード) – Ani

関連する問題