多少数据可以保存到宽列行
how much data can be saved to wide column rows
我了解到,对于像 Cassandra 这样的 NoSQL 宽列数据库,您可以使用 UserID 作为一行的键,并将与该用户相关的所有信息保存在一行中。例如,您可以有一个名为“个人信息”的列族,并在其中保存 address/phone/name 等。您可以有另一个名为“工作信息”的列族,并在那里保存他的职位、办公室、历史等。我想要另一个名为“项目”的列族,并将大量项目相关数据保存到该列族。我的问题是我可以保存多少项目数据。 2G可以吗? 200G可以吗?
长答案: 在 Cassandra 中,table 的大小没有真正的限制。大小仅受节点数量及其容量的限制。吞吐量要求可能决定单个节点可以有效处理多少,但除此之外,您应该能够轻松地为每个节点存储数十 GB。我记得在 Datastax 课程中提到了 1-4TB 范围内的值作为每个节点的通常最大范围。然而,这可能只有在特定的使用模式下以及经过深思熟虑的模式建模和能够微调一切的经验丰富的 DBA 才有可能实现。
简短回答:每个节点数十 GB 应该很容易实现,而每个节点几个 TB 在有利的情况下有望获得。只要你买得起节点,理论上大小应该是无限制.
补充信息:
- 计算大小时需要考虑复制因子。使用推荐的 rf 3 意味着对于 1GB 的数据,集群将存储 3GB;
- 虽然节点可以存储很多信息,但您写入的数量,尤其是读取的频率,预期的延迟以及一致性级别将是每个节点大小的主要限制;拥有你很少阅读的数据将允许节点只保存它而不必太担心它。如果你读了很多,鉴于读取比写入更昂贵,你的节点将开始响应越来越慢,因此相同的数据将需要更多的节点;
- 您应该将分区限制在 10MB(大部分)和 100MB(所有);
- 您应该将分区内的行数限制在 100k 以下;
总体而言,尺寸可能是您遇到的最不重要的问题。存储很便宜,让您退缩的是计算要求,这将取决于访问模式、吞吐量、数据模型和节点调整。
希望这对您有所帮助,
干杯!
我了解到,对于像 Cassandra 这样的 NoSQL 宽列数据库,您可以使用 UserID 作为一行的键,并将与该用户相关的所有信息保存在一行中。例如,您可以有一个名为“个人信息”的列族,并在其中保存 address/phone/name 等。您可以有另一个名为“工作信息”的列族,并在那里保存他的职位、办公室、历史等。我想要另一个名为“项目”的列族,并将大量项目相关数据保存到该列族。我的问题是我可以保存多少项目数据。 2G可以吗? 200G可以吗?
长答案: 在 Cassandra 中,table 的大小没有真正的限制。大小仅受节点数量及其容量的限制。吞吐量要求可能决定单个节点可以有效处理多少,但除此之外,您应该能够轻松地为每个节点存储数十 GB。我记得在 Datastax 课程中提到了 1-4TB 范围内的值作为每个节点的通常最大范围。然而,这可能只有在特定的使用模式下以及经过深思熟虑的模式建模和能够微调一切的经验丰富的 DBA 才有可能实现。
简短回答:每个节点数十 GB 应该很容易实现,而每个节点几个 TB 在有利的情况下有望获得。只要你买得起节点,理论上大小应该是无限制.
补充信息:
- 计算大小时需要考虑复制因子。使用推荐的 rf 3 意味着对于 1GB 的数据,集群将存储 3GB;
- 虽然节点可以存储很多信息,但您写入的数量,尤其是读取的频率,预期的延迟以及一致性级别将是每个节点大小的主要限制;拥有你很少阅读的数据将允许节点只保存它而不必太担心它。如果你读了很多,鉴于读取比写入更昂贵,你的节点将开始响应越来越慢,因此相同的数据将需要更多的节点;
- 您应该将分区限制在 10MB(大部分)和 100MB(所有);
- 您应该将分区内的行数限制在 100k 以下;
总体而言,尺寸可能是您遇到的最不重要的问题。存储很便宜,让您退缩的是计算要求,这将取决于访问模式、吞吐量、数据模型和节点调整。
希望这对您有所帮助, 干杯!