【发布时间】:2015-04-19 16:14:57
【问题描述】:
是否可以在 Cassandra 集合类型中包含大值(超过 65535 字节)?
datastax 文档说明了有关使用集合 (http://www.datastax.com/documentation/cql/3.1/cql/cql_using/use_collections_c.html) "集合中项目的最大大小为 64K"
另一方面,CQL 限制 (http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/refLimits.html) "收藏项,值:2GB(Cassandra 2.1 v3协议),64K(Cassandra 2.0.x及更早版本)"
所以,有了 Cassandra 集群 2.1 版,所以我期待它可以增加很大的价值,但我得到了错误:
<stdin>:12:code=2200 [Invalid query] message="Map value is too long. Map values are limited to 65535 bytes but 100000 bytes value provided"
我的 CQL shell 版本是:
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
导致上述错误的脚本示例:
DROP KEYSPACE example;
CREATE KEYSPACE example WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};
USE example;
CREATE TABLE IF NOT EXISTS big_map_values (
person_id int,
images map<text, blob>, -- map: md5(url) -> image
PRIMARY KEY(person_id)
);
INSERT INTO big_map_values (person_id, images)
VALUES(17, {'6fa9093ec07a71f859cae269feee18ec' : textAsBlob('in real sample code I have 10000 a characters here')});
【问题讨论】: