Ключ разделения Cassandra для данных временных рядов
Я тестирую Кассандру как базу данных временных рядов.
Я создаю модель данных, как показано ниже:
CREATE KEYSPACE sm WITH replication = {
'class': 'SimpleStrategy',
'replication_factor': 1
};
USE sm;
CREATE TABLE newdata (timestamp timestamp,
deviceid int, tagid int,
decvalue decimal,
alphavalue text,
PRIMARY KEY (deviceid,tagid,timestamp));
В Первичном ключе я устанавливаю deviceid в качестве ключа раздела, что означает, что все данные с одинаковым идентификатором устройства будут записываться в один узел (означает ли это один компьютер или один раздел. Каждый раздел может иметь до 2 миллиардов строк), даже если я запрашиваю данные в пределах тот же узел, поиск будет быстрым, я прав? Я новичок в Cassandra и немного запутался по поводу ключа раздела и ключа кластеризации.
Большая часть моего запроса будет выглядеть так:
выберите последнюю метку времени для идентификатора устройства и тегаВыберите десятичное значение известного deviceid, tagid и метку времени.Выберите буквенное значение известного deviceid, tagid и метку временивыберите * из известного deviceid и tagid с диапазоном временивыберите * известного устройства с временным диапазономУ меня будет около 2000 deviceid, у каждого deviceid будет 60 пар tagid / value. Я не уверен, будут ли это широкие строки deviceid, timestamp, tagid / value, tagid / value ....