我知道 Cassandra 具有大规模可扩展性,但它目前 在存储 20 亿条单独信息方面存在限制。
现在,假设我想将信息存储在一个表中,并且我有 200 亿个数据点。一个例子可能是每个用户存储多个设备(桌面 PC、移动设备等),地球上有超过 70 亿个人(可能的用户)。每人多台设备,可想而知数据集可达20+亿条记录。
单个分区中的最大单元格数(行 x 列)为 20 亿。
这是您提到的限制,但它比您的解释更具体。具体来说,该限制是针对单个分区的。如果您将最多2 x 10 9条记录插入到一个分区中,则至少需要 10 个单独的分区来共同存储假设的 20B 记录。创建 10 个分区很容易。
这是原始问题中“如何”的答案:当您(应用程序开发人员)将数据拆分到多个分区时,Cassandra 会超出此限制。
事实上,一个设计良好、健康的 Cassandra集群将包含数千或数百万(或更多)个单独的分区。虽然理论上每个分区可以包含一组唯一的 20 亿个数据点,但实际上您不太可能看到分区增长到如此大,并且您不应该设计架构以达到该限制。(毕竟这是一个限制,应该避免。)
Cassandra 集群中的单个节点(单独的机器)可以存储多个分区,但每个分区的数据必须能够完全驻留在一个节点内。在更改其数据时,该节点还必须对分区执行排序操作。您可能可以想象,对接近 10 亿个数据点的任何地方进行排序将花费大量时间。相反,Cassandra 希望您通过跨多个节点分布数据来分布工作来“大规模”扩展。 生产集群可以很容易地由数十个、数百个甚至数千个单独的节点组成。
| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |