【发布时间】:2019-08-23 16:47:09
【问题描述】:
我需要将此数据结构存储在我的数据库中:
Activity:
user_id: UUID ( Partition Key )
created_at: timestamp ( Clustering Key )
activity_id: UUID ( Clustering Key )
activity_data: map<string, string>
我获取数据的查询将是这样的
SELECT * FROM activities WHERE user_id=SOME-UUID LIMIT 500;
据我了解,当 cassandra 在其文件中搜索一行时,即使使用 LIMIT,它也会将整个数据加载到内存中。
- 是真的吗?
- 如果是这样,我将如何保存数据,否则当考虑到我只想执行单个查询时(据我所知,复合分区键需要我进行多个查询)
- 如果我还需要过滤“activity_data”字段中的值,我将如何存储数据?地图字段上的索引是否足够?
谢谢。
【问题讨论】:
标签: database cassandra data-modeling cql