我正在开发一个 php 平台,它将大量使用图像、文档和任何我想到的文件格式,所以我想知道 Cassandra 是否是满足我需求的好选择。
如果没有,你能告诉我应该如何存储文件吗?我想继续使用 cassandra,因为它具有容错性并且在节点之间使用自动复制。
感谢帮助。
我正在开发一个 php 平台,它将大量使用图像、文档和任何我想到的文件格式,所以我想知道 Cassandra 是否是满足我需求的好选择。
如果没有,你能告诉我应该如何存储文件吗?我想继续使用 cassandra,因为它具有容错性并且在节点之间使用自动复制。
感谢帮助。
从卡桑德拉维基,
Cassandra's public API is based on Thrift, which offers no streaming abilities
any value written or fetched has to fit in memory. This is inherent to Thrift's
design and is therefore unlikely to change. So adding large object support to
Cassandra would need a special API that manually split the large objects up
into pieces. A potential approach is described in http://issues.apache.org/jira/browse/CASSANDRA-265.
As a workaround in the meantime, you can manually split files into chunks of whatever
size you are comfortable with -- at least one person is using 64MB -- and making a file correspond
to a row, with the chunks as column values.
因此,如果您的文件小于 10MB,您应该没问题,只需确保限制文件大小,或将大文件分成块。
您应该可以使用 10MB 的文件。事实上,如果我没记错的话,DataStax Brisk 将文件系统放在 Cassandra 之上:http ://www.datastax.com/products/enterprise 。
(我与他们没有任何关系——这不是广告)