如何使用Cassandra选择分区中的最大时间戳

Sok*_*owy 1 cassandra nosql

我在使用Cassandra建模数据时遇到问题.我想将它用作活动商店.我的事件有创建时间戳.这些事件属于由id标识的分区.

现在,我想查看每个id的最新事件,然后根据时间戳过滤此ID.

所以我有这样的事情:

ID | CREATION_TIMESTAMP              | CONTENT
---+---------------------------------+----------------
1  | 2018-11-09 12:15:45.841000+0000 | {SOME_CONTENT} 
1  | 2018-11-09 12:15:55.654656+0000 | {SOME_CONTENT}
2  | 2018-11-09 12:15:35.982354+0000 | {SOME_CONTENT}
2  | 2018-11-09 12:35:25.321655+0000 | {SOME_CONTENT}
2  | 2018-11-09 13:15:15.068498+0000 | {SOME_CONTENT}
Run Code Online (Sandbox Code Playgroud)

我尝试按分区ID分组并查询最大值,creation_timestamp但这是不允许的,我应该使用EQ或IN指定分区ID.额外的阅读让我相信这是解决这个问题的完全错误的方法,但我不知道NoSQL是不适合这项工作的工具还是我只是从错误的角度处理这个问题?

Hor*_*ria 5

您可以通过将CREATION_TIMESTAMP作为聚类列并订购DESC来轻松实现此目的.然后,您将通过您的id查询并使用限制1(由于数据是该分区键中的订单DESC,因此将返回最近的事件).