我知道对于NoSQL宽列数据库,如Cassandra,您可以使用UserID作为一行的键,并将与该用户相关的所有信息保存在一行中。例如,您可以有一个名为"个人信息"的列族。并保存地址/电话/姓名等。你可以有另一个列族叫做"工作信息"把他的头衔、职位、历史等都保存在那里。我想要另一个专栏家族叫做project;并将大量与项目相关的数据保存到该列族中。我的问题是我能保存多少项目数据。2G可以吗?200G可以吗?
长答:在Cassandra中,对表的大小没有真正的限制。大小仅受节点数量及其容量的限制。吞吐量需求可能决定了单个节点可以有效处理多少数据,但除此之外,每个节点应该能够轻松存储数十GB的数据。我记得在Datastax课程中提到过1-4TB范围内的值是每个节点通常的最大范围。然而,这可能只有在特定的使用模式下才有可能,并且需要经过深思熟虑的模式建模和有经验的dba能够对一切进行微调。
短答:每节点数十gb当每个节点使用几个tb时,应该很容易实现。在有利的情况下是有希望的。只要可以负担得起节点,理论上大小应该是无限的.
信息:
- 在计算大小时需要考虑复制因素。使用推荐的rf 3意味着对于1GB的数据,集群将存储3GB;
- 虽然节点可以存储大量信息,但写入的数量,特别是读取的频率,期望的延迟和一致性级别将是每个节点大小的主要限制;拥有很少读取的数据将允许节点只保存它,而不太担心它。如果你读了很多,考虑到读比写要昂贵得多,你的节点将开始越来越慢地响应,所以同样的数据将需要更多的节点;
- 您应该将分区限制为10MB(大多数)和100MB(所有);
- 您应该将分区内的行数限制在100k以下;
总的来说,大小可能是最小的问题。存储是便宜的,让你倒退的是计算需求,这将由访问模式、吞吐量、数据模型和节点调优决定。
希望这有帮助,干杯!