Cassandraでの時系列データの格納とクエリ方法は何ですか。
Cassandraの場合、時間系列データは、タイムスタンプを持つ列を使用して保存することができます。一般的な方法は、タイムスタンプを行キーの一部として使用し、時間系列データを列ファミリに保存することです。これらの時間系列データに対してCQL(Cassandra Query Language)を使用してクエリを実行することができます。
以下は、時間系列データを保存するためのサンプルテーブル構造です。
CREATE TABLE time_series_data (
sensor_id UUID,
timestamp TIMESTAMP,
value DOUBLE,
PRIMARY KEY (sensor_id, timestamp)
);
この例では、time_series_dataテーブルにはsensor_id、timestamp、valueの列が含まれています。sensor_idはパーティションキーとして使用され、timestampはソートキーとして使用されます。これにより、データがsensor_idでパーティション分けされ、timestampでソートされることが保証されます。
時間系列データを検索するには、次のようなCQL文を使用できます。
SELECT * FROM time_series_data
WHERE sensor_id = ? AND timestamp >= ? AND timestamp <= ?;
指定されたsensor_idのタイムシリーズデータを返します。開始時間スタンプと終了時間スタンプの間の時間範囲内で。
Cassandraのアグリゲーション機能を使用して、時間系列データを照会する別の方法は、特定のsensor_idの平均値を計算するために以下のCQL文を使用することができます。
SELECT AVG(value) FROM time_series_data
WHERE sensor_id = ? AND timestamp >= ? AND timestamp <= ?;
指定された時間範囲内に与えられたsensor_idのvalue列の平均値を返します。
Cassandraについての時系列データの保存と検索は、適切なテーブル構造の選択(タイムスタンプを列の一部として使用する)、データを取得するための適切なクエリの使用、および必要に応じて集計機能を使用して集計情報を計算することが含まれます。