我是Cassandra的新手,正在尝试创建用于存储和查询混合/异构数据的时间序列的架构。我对如何建模时间戳和混合数据有疑问。
我的问题可以这样抽象:
double
或string
读数。对于每个传感器盒,我想将其传感器的读数存储一天。所以我打算存储这样的数据:
问题1 :存储日期的最佳方法是什么?我在网上搜索,发现了多种方法。
first way is use a timestamp as the clustering key:
CREATE TABLE time_series (
podID text,
dt timestamp,
num_data map<text, double>,
str_data map<text, double>,
PRIMARY KEY (podID, dt)
);
second way I've found is to store the date as individual integers for year, month, and day。
CREATE TABLE time_series (
podID text,
year int,
month int,
day int,
num_data map<text, double>,
str_data map<text, double>,
PRIMARY KEY (podID, (year, month, day))
);
一个third way puts a part of the timestamp into the partition key。
PRIMARY KEY ((podID, month), dt))
我该如何选择走哪条路?
问题2 :使用map<>
数据结构是存储混合/变化/异构类型数据的最佳方法吗?