В настоящее время я работаю над poc для моделирования данных временных рядов.Моделирование временных рядов данных с помощью тегов
исходной структуры DataPoint: - название датчика: 192.168.1.1:readCount - метка времени - значение
Я использую имя датчика, как ROWID, метка времени, как идентификатор столбца. Этот подход работает очень хорошо.
Однако я хочу добавить теги, чтобы добавить дополнительные данные.
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");
Я хочу, чтобы использовать его, чтобы сказать: - агрегировать все показатели для всех различных машин с одинаковыми идентификаторами. Например. если машина 1 имеет 10 записей для mapx, а machine2 сделал 20 записей для mapx, я хочу знать, что 30. - совокупные показатели для всех карт: если машина 1 сделала 20 записей на mapx и 30 пишет на mapy, я хочу знаю в общей сложности 50.
Вопрос в том, как я должен моделировать это.
Я знаю, что композит может использоваться для идентификатора столбца. Поэтому теоретически я могу добавить каждый тег в качестве элемента в этом композите. Но можно ли эффективно искать столбец, когда он имеет переменное количество элементов в составном?
Я знаю, что мой вопрос немного туманный, но я думаю, что это отражает мое понимание Кассандры, так как я только начал с него.
Я готов отказаться от гибкой теги кстати. Наличие кучи фиксированных тегов, таких как член, кластер, компания и идентификатор, будет достаточно хорошим (я надеюсь). – pveentjer