首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cassandra中的时态数据建模

cassandra中的时态数据建模
EN

Stack Overflow用户
提问于 2016-05-04 10:19:50
回答 2查看 158关注 0票数 0

我试图以以下方式在cassandra中存储和检索数据:

存储数据:I以下列方式创建了表:

代码语言:javascript
复制
CREATE TABLE mydata (
    myKey TEXT,
    datetime TIMESTAMP,
    value TEXT,
    PRIMARY KEY (myKey,datetime)
);

在过去的五年里,我每分钟都要保存一个价值。因此,它存储1440 * 365 *5=每行2628000条记录/列(myKey作为行键)。

代码语言:javascript
复制
INSERT INTO mydata(myKey, datetime, value) VALUES ('1234ABCD','2013-04-03 07:01:00','72F');
INSERT INTO mydata(myKey, datetime, value) VALUES ('1234ABCD','2013-04-03 07:02:00','72F');
INSERT INTO mydata(myKey, datetime, value) VALUES ('1234ABCD','2013-04-03 07:03:00','72F');

.

我能存储数据,一切都很好。但是,我想知道,这是否是水平执行(存储)数据的有效方法(100万个这样的键的每个键的值为2628000)?

检索数据:

在以上述格式存储数据之后,我可以使用简单的select查询来选择数据。例如:

代码语言:javascript
复制
SELECT * 
FROM mydata 
WHERE myKey='1234ABCD' AND datetime > '2013-04-03 07:01:00' AND datetime < '2013-04-03 07:04:00';

查询工作正常,我得到了预期的结果。

不过,我的问题是:

  1. 如何在特定时间间隔内只选择这些值。例如,如果我查询一天的数据,我将得到1440个值(每分钟1次)。我希望每隔10分钟得到数值(每10分钟一次),以限制no。的值为144。
  2. 如果我们使用上述存储策略,是否有一种查询表的方法?
  3. 如果没有,有什么可能的选择来满足我的要求,在一个特定的间隔查询数据,如1分钟,10分钟,1小时,1天等?

感谢你的其他建议。

EN

Stack Overflow用户

发布于 2016-05-05 07:08:26

您肯定需要使用时间戳的模块化版本绑定分区。但是粒度实际上取决于您的读取。

如果你主要是每天阅读,那么使用类似PK的东西((myKey,yyyymmdd),时间)

如果主要按周PK((mykey,yyyyww),时间)或月份.

问题是,如果您想要读取一整年的值,那么最好每周或每个月都有一个分区,甚至是年份,我认为如果您不做任何删除,您的分区大小需要小于100 be。

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

https://stackoverflow.com/questions/37024875

复制
相关文章

相似问题

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