Cassandra发布了它的technical limitations,但没有提到允许的最大列数。有最大列数吗?我需要存储400+个字段。这在Cassandra中可能吗?
s5a0g9ez1#
每行(或一组行,在Cassandra的CQL中是called "partition")的最大列数是20亿(但是分区还必须适合一个物理节点,请参见docs)。400+字段不是问题。
pbwdgjma2#
根据Cassandra技术限制页,单元格总数不能超过2 billion cells(行X列)。您可以有一个具有**(1 row X 2 billion columns)的表,并且该表中不允许有更多的行,因此限制为not 2 billion columns per row,但限制为分区中的单元格总数**。https://wiki.apache.org/cassandra/CassandraLimitations
2 billion cells
(1 row X 2 billion columns)
not 2 billion columns per row
esbemjvw3#
Rajmohan的答案在技术上是正确的。另一方面,如果您有400个CQL列,您很可能没有优化您的数据模型。您希望使用CQL中的分区键和聚类列生成cassandra宽的行。此外,从实际(性能)的Angular 来看,您不希望行太宽。保守的经验法则是将分区保持在100兆或100,000单元格以下。看看这两个链接,帮助你了解这一点。http://www.datastax.com/dev/blog/does-cql-support-dynamic-columns-wide-rowshttp://www.sestevez.com/sestevez/CASTableSizer/
3条答案
按热度按时间s5a0g9ez1#
每行(或一组行,在Cassandra的CQL中是called "partition")的最大列数是20亿(但是分区还必须适合一个物理节点,请参见docs)。
400+字段不是问题。
pbwdgjma2#
根据Cassandra技术限制页,单元格总数不能超过
2 billion cells
(行X列)。您可以有一个具有**
(1 row X 2 billion columns)
的表,并且该表中不允许有更多的行,因此限制为not 2 billion columns per row
,但限制为分区中的单元格总数**。https://wiki.apache.org/cassandra/CassandraLimitations
esbemjvw3#
Rajmohan的答案在技术上是正确的。另一方面,如果您有400个CQL列,您很可能没有优化您的数据模型。您希望使用CQL中的分区键和聚类列生成cassandra宽的行。
此外,从实际(性能)的Angular 来看,您不希望行太宽。保守的经验法则是将分区保持在100兆或100,000单元格以下。
看看这两个链接,帮助你了解这一点。
http://www.datastax.com/dev/blog/does-cql-support-dynamic-columns-wide-rows
http://www.sestevez.com/sestevez/CASTableSizer/