2016-11-29 20 views
1

こんにちは私は、定期的にアラートを送信する特定のデバイスのデータをクエリしたいと思っています。だから私は時系列を持っていたい。 私はこのような表を作成しました:カサンドラ時系列クエリ

CREATE TABLE alerts_by_day (
    day_of_year int, 
    year int, 
    alert_timestamp timestamp, 
    serial_number text, 
    alert_id uuid, 
    alert_type text, 
    PRIMARY KEY((day_of_year, year), serial_number, alert_timestamp, alert_type,alert_id) 
) WITH CLUSTERING ORDER BY (serial_number DESC, alert_timestamp DESC, alert_type DESC); 

今私は、時間帯(例:2015年11月29日から2016年1月20日まで)で照会することができるようにするために、クエリまたはマテリアライズド・ビューを作成したいとによってアラートタイプ。だから私はちょうど特定のタイプと時間範囲のアラートを表示したい。私は、特定の時間範囲を照会することができます

Select * from alerts_by_day 
where day_of_year IN (312,313) 
and year IN (2016,2015) 
and alert_timestamp < '2016-11-08 03:09:14-0800' 
and alert_timestamp > '2016-11-07 23:13:28-0800' 

しかし、私はこれを行うことはできません。

Select * from alerts_by_day 
where day_of_year IN (312,313) 
and year IN (2016,2015) 
and alert_timestamp < '2016-11-08 03:09:14-0800' 
and alert_timestamp > '2016-11-07 23:13:28-0800' 
and alert_type IN ('type1', 'type2') 

私はalert_timestampのEQされていない制限を使用しているため。

私はタイプ1とタイプ2のアラートしか見ることができません。ここ

は誤りです: CQLスクリプトを実行するができません:クラスタリング列alert_typeを制限することはできません(precedign列alert_timestampが非EQ-関係によって制限されている)

+0

とtimeseriesの集計はどのcassandraバージョンを使用していますか? – root545

+0

私は自分の答えを削除しました。しかし、あなたはこの答えを確認することができますhttp://stackoverflow.com/questions/34422515/cassandra-error-clustering-column-cannot-be-restricted-preceding-column-is-re私は何をしていますか短いことはできません – root545

答えて

0

あなたはフィルタリングを得ることができるようになりますし、 Spark