首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储数以百万计的数据段的内存

存储数以百万计的数据段的内存
EN

Stack Overflow用户
提问于 2016-10-13 21:03:54
回答 2查看 46关注 0票数 0

我正在工作的一个系统需要存储设备24/7发送的字符串流。例如,一个具有id 'ID‘的设备每10秒发送一个不同的字符串。因此,我需要存储以下数据项:

代码语言:javascript
复制
('ID', t, t+10, somestring)

我们谈论的是成千上万的设备,也就是说,数亿的数据集。

最重要的查询是:

代码语言:javascript
复制
Query(id, start, end) ==> list of strings

您建议如何存储数据?你会推荐哪个数据库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-14 16:08:00

对卡桑德拉来说,这是非常直接的。

代码语言:javascript
复制
CREATE TABLE device_strings (
  id text,
  year_month_day text,
  start timestamp,
  end timestamp,
  value text,
  PRIMARY KEY ((id, year_month_day), start, end)
);

这意味着每个ID/日都有一个分区(不能让它们无限增长)。这意味着在查询中,如果开始/结束跨越一天,则可能需要多次阅读。

票数 2
EN

Stack Overflow用户

发布于 2016-10-13 22:21:33

这是timeSeries数据,而卡桑德拉可能是适合TimeSeries类型数据的。在Cassandra中以id、start(降序)、end (降序)作为主键存储数据。您的写入和读取将是快速的,可以线性缩放性能。注意: Cassandra将分区值的数量限制为20亿,如果不想为旧数据设置TTL,则应该考虑向分区添加另一个键来限制值。这还将使您能够在只有很少ID的情况下将数据分散到集群中,这些ID不断地发送数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40030959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档