gpt4 book ai didi

cassandra - Cassandra 中的宽行与集合

转载 作者:行者123 更新时间:2023-12-02 23:30:48 24 4
gpt4 key购买 nike

我正在尝试在 Cassandra 中建模多对多关系,例如项目-用户关系。用户可以喜欢许多商品,并且商品可以被许多用户购买。我们还假设“喜欢”事件发生的顺序并不重要,并且最常用的查询只是根据项目和用户返回“喜欢”。

有几篇文章讨论数据建模 http://www.ebaytechblog.com/2012/07/16/cassandra-data-modeling-best-practices-part-1/

另一种方法是在 User 表中存储 ItemID 集合,以表示该用户喜欢的项目,并在 CQL3 的 Items 表中执行类似的操作。

问题

  1. 使用该集合对性能有影响吗?我认为它们会转化为复合柱?那么读取模式、缓存和其他因素应该是相似的?

  2. 对于写入量大的应用程序来说,集合的性能是否较低?频繁更新集合是否会降低性能?

最佳答案

我能想到使用宽行比集合有几个优点:

  1. 集合中允许的元素数量为 65535(无符号短整型)。如果集合中的记录数量可能超过那么多,那么使用宽行可能会更好,因为该限制要高得多(每个分区 20 亿个单元格(行 * 列))。
  2. 读取集合列时,每次都会读取整个集合。将此与宽行进行比较,您可以在宽行中限制查询中读取的行数,或根据集群键(即日期 > 2015-07-01)限制查询条件。

对于您的特定用例,我认为建模“items_by_user”表比 list<item> 更理想。 “用户”表上的列。

关于cassandra - Cassandra 中的宽行与集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31700292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com