如何在Cassandra中存储使用活动数据

时间:2019-04-02 11:14:43

标签: database cassandra data-modeling cql

我需要将此数据结构存储在我的数据库中:

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,它也会将整个数据加载到内存中。

  1. 是真的吗?
  2. 如果是这样,考虑到我只想执行一个查询(根据我所知道的复合分区键将要求我进行多个查询),我将如何保存数据
  3. 如果我还需要过滤“ activity_data”字段中的值,该如何存储数据?地图字段上的索引足够吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

是的,它合并了磁盘中的数据并响应给客户端。如果启用了缓存,还更新了缓存。请说明另外两个问题。