我正在开发一个系统,用于存储和处理来自几家工厂的时间序列数据。每个工厂都有不同数量的原始测量值,每个测量值都表示为一个键值对。
需要对原始数据进行预处理以获取语义。我还需要保存原始数据,因为转换过程应该是可配置的。虽然我是No-Sql数据库和Cassandra的新手,但我在网上搜索资源并找到了weather station example(类似于其他资源也有描述)。
我的要求与此示例类似,但作为扩展,我需要一种方法来存储每个工厂的可变数量的测量值(密钥对)。我也知道,我的表模型高度依赖于我想对它运行的查询。最常见的查询是:
我现在的问题是,表格结构如何最符合这些要求?
我想到了类似的东西,但不知道它是否包含一些缺点:
CREATE TABLE values_per_day (
plant_id text,
date text,
event_time timestamp,
key text,
value text,
PRIMARY KEY ((plant_id, date), event_time, address)
);
答案 0 :(得分:0)
对Cassandra的建议是从您要执行的查询开始。对于每个查询,请考虑查询的输入,这些输入指示您希望它返回的数据。对于每个查询,您应该有一个表,该表将查询的输入作为其主键。如果要查询范围值,则该值应为主键的群集键(而不是分区键),其他输入为分区键。如果要查询非常长的值范围,请考虑将该值切换为存储桶。