2014-07-12 39 views
1

这20亿个细胞每个分区的限制仍然有效吗?Cassandra细胞数量限制

http://wiki.apache.org/cassandra/CassandraLimitations

比方说,您节省每单元平均16个字节。那么你“只是”可以在一台机器上坚持16 * 2e9字节= 32 GB的数据(加上列名)! 或者如果你想象一个二次表,你将能够存储44721行,每列44721列!?

听起来不像大数据。

这是正确的吗?

谢谢!

马尔特

+0

这是每个分区不是每个数据库。您在单个节点上拥有许多(百万)个分区。 – RussS

回答

3

2.十亿细胞的限制仍然有效,你最想likly如果你开始看到每个分区的许多细胞重塑你的数据。

单个分区中的最大单元格数(行x列)为 20亿。

一个分区是由它们在CQL中的分区键来定义的,它将定义一个特定的数据段将在哪里生存。例如,如果我有两个节点的虚构范围为0-100和100-200。散列在0到100之间的分区键将驻留在第一个节点上,散列值在100和200之间的分区键将驻留在第二个节点上。实际上,Cassandra使用Murmur3算法对生成-2^63和2^63-1之间的值的主键进行散列。

真正的限制往往取决于您对分区键有多少个唯一值。如果在单个列中没有很好的唯一性,许多用户将列组合起来以生成更多唯一性(复合主键)。对散列和如何C *

http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html

更多信息保存数据。

http://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architecturePartitionerAbout_c.html

+0

谢谢! 我以为一个节点是一个分区,分区键决定了该行所在的分区。 但现在很明确:) – Malte