【发布时间】:2015-08-18 15:27:57
【问题描述】:
我在 MYSQL 中有一个名为 Price 的表,如下所示:
+---------+-------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+-------------------+-----------------------------+
| Current | float(20,3) | YES | | NULL | |
| Time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------+-------------+------+-----+-------------------+-----------------------------+
我的应用程序要求我汇总并检索从现在开始到最后一周的最后 1 小时、2 小时的结果。我正在尝试迁移到 Cassandra,并希望为我的数据制作一个合适的模型。目前我已经在 Cassandra 中建了一张桌子,看起来像这样:
CREATE TABLE IF NOT EXISTS HAS.Price (
ID INT,
Current float,
Time timestamp,
Time_uuid timeuuid,
PRIMARY KEY (ID, Time_uuid)
);
这不合逻辑,因为它只是创建了一个大表,我认为这不会将数据分发到其他节点。我在这里使用 1 的固定 ID。我相信在我的情况下,要选择的逻辑分区键是“小时”,所以例如我可以总结上一小时、过去 2 小时等的所有当前值。在这种情况下,我指的是post。例如,如果我将小时创建为分区键,则可以说一天中的第 15 个小时将进入这一行
2015-08-06 15:00:00
下一小时的数据将转到2015-08-06 16:00:00。但是,可以说当前时间是 2015-08-06 16:12:43,我想从最后一小时中选择记录,因为部分数据在 2015-08-06 15:00:00 中,我的查询会是什么样子会有不同的主键
【问题讨论】:
-
我们在谈论多少价值观? 100/小时? 10k? 100m?
标签: cassandra