2017-06-19 34 views
0

我想评估一些分布式存储平台和卡桑德拉是其中之一。 我们的要求是1MB和大小50MB,并根据之间的文件保存到Cassandra的文档http://docs.datastax.com/en/cql/3.3/cql/cql_reference/blob_r.html卡桑德拉最大的现实blob大小

的 BLOB的最大理论容量为2 GB。然而,对于斑点大小的实际限制小于012MB。

有没有人有经验将文件存储在卡桑德拉作为blob?运气好吗?更大的文件大小会对性能造成很大影响吗?

任何其他建议也将不胜感激!

回答

0

卡桑德拉不是为这些类型的工作而构建的。

在Cassandra中,单列值大小可以是:2 GB(建议1 MB)。所以,如果你想使用cassandra作为对象存储,将大对象拆分为多个小对象,并使用对象id作为分区键和存储区id作为集群键存储它们。

最好是使用分布式对象存储系统像OpenStack Object Storage ("Swift")

的OpenStack对象存储项目,被称为斯威夫特,提供云存储软件,这样就可以存储并用一个简单的检索大量数据API。它针对整个数据集进行了扩展,并针对持久性,可用性和并发性进行了优化。 Swift非常适合存储无限制增长的非结构化数据。

+0

感谢Ashraful的建议,但我们并未计划使用云解决方案。我们需要更快的写入并读取相同的数据中心。 – gubble

+0

然后你可以使用cassandra的解决方案。在这里,我将对象ID作为分区键,因此单个对象的读/写速度会更快。 检查分区键和集群键密钥之间的区别https://stackoverflow.com/a/24953331/2320144 –