0

私は現在、時系列データをモデル化するための poc に取り組んでいます。

初期データポイント構造: - センサーの名前: 192.168.1.1:readCount - タイムスタンプ - 値

センサー名を行 ID として使用し、タイムスタンプを列 ID として使用します。このアプローチは非常にうまく機能します。

ただし、追加のデータを追加するためにタグを追加したいと考えています。

public class Datapoint {
   public String metricName;
   public long timestampMs;
   public long value;
   public Map<String, String> tags = new HashMap<String, String>();
}

Datapoint datapoint = new Datapoint();
datapoint.metricName = "IMap.readCount";
datapoint.value = 10;
datapoint.timestampMs = System.currentTimeMillis();
datapoint.tags.put("cluster", "dev");
datapoint.tags.put("member", "192.168.1.1:5701");
datapoint.tags.put("id", "map1");
datapoint.tags.put("company", "Foobar");

私はそれを次のように使用したいと思います: - 同じ ID を持つすべての異なるマシンのすべてのメトリックを集計します。たとえば、マシン 1 が mapx に対して 10 回の書き込みを行い、マシン 2 が mapx に対して 20 回の書き込みを行った場合、その 30 を知りたいです。 50の合計を知っています。

問題は、これをどのようにモデル化するかです。

列IDにコンポジットを使用できることを知っています。したがって、理論的には、各タグをそのコンポジットの要素として追加できます。しかし、コンポジット内に可変数の要素がある場合、列を効率的に検索できるでしょうか?

私の質問が少し漠然としていることは承知していますが、これは、Cassandra を使い始めたばかりなので、Cassandra についての私の理解を反映していると思います。

4

1 に答える 1