我正在为我的一个项目评估 cassandra,我很想知道具有数百万列族和数百万行的基本 cassandra 模式设计的可行性。每行的上限为 30,000 列。这是分布式 cassandra 集群(5-10 个节点)的可行设计,还是我遗漏了什么?
我也很想知道在一个事务中从单行中检索所有列的可行性。我想这样做的原因是在将它们返回给用户之前按它们的值对它们进行排序。
我正在为我的一个项目评估 cassandra,我很想知道具有数百万列族和数百万行的基本 cassandra 模式设计的可行性。每行的上限为 30,000 列。这是分布式 cassandra 集群(5-10 个节点)的可行设计,还是我遗漏了什么?
我也很想知道在一个事务中从单行中检索所有列的可行性。我想这样做的原因是在将它们返回给用户之前按它们的值对它们进行排序。
数百万列族目前在 cassandra 中不可行。最近版本的上限是数千。此外,您描述的数据集(数百万 cfs x 数百万行)表明至少有 1 万亿行。当然,这取决于集群的具体情况,但是这个行数/数据量将需要比 5-10 个节点更大的集群。Cassandra 有很多中型节点,而不是非常大和强大的节点。
关于一次检索所有列,默认的最大请求大小为 15mb。这可以更改,但您几乎可以肯定不想更改它。您的查询很可能不应该接近最大请求,因为像这样的大型分配在 JVM 上很困难。是否有理由需要在单个事务中进行?您可以轻松地在几个请求中对一行进行分页,以获取所有列,然后在该点进行排序。