我想存储和检索Cassandra中的值,范围从50MB到100MB。
根据文档,当列值大小小于10MB时,Cassandra运行良好。请参阅here
我的表格如下。对此有不同的方法吗?
CREATE TABLE analysis (
prod_id text,
analyzed_time timestamp,
analysis text,
PRIMARY KEY (slno, analyzed_time)
) WITH CLUSTERING ORDER BY (analyzed_time DESC)
答案 0 :(得分:4)
至于我自己的经验,虽然理论上Cassandra可以处理大块,但在实践中它可能真的很痛苦。至于我过去的一个项目,我们存储的C *中的protobuf blob范围从3kb到100kb,但是它们中有一些(~0.001%),大小高达150mb。这导致了问题:
我个人建议不要将C *用于大型blob,因为它不是很有效。还有其他选择:
答案 1 :(得分:1)
大值可能会有问题,因为协调器需要缓冲堆上的每一行,然后再将它们返回给客户端来回答查询。无法传输analysis_text值。
内部Cassandra也没有经过优化以便很好地处理这种用例,你必须调整很多设置以避免像shutty所描述的问题。