【问题标题】:Big values in Cassandra collections typesCassandra 集合类型中的大值
【发布时间】: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')});

【问题讨论】:

    标签: cassandra cql


    【解决方案1】:

    在我看来他们的文档中存在问题。

    这是来自 Cassandra 的源代码,您可以清楚地看到地图上有 64K 的限制。 https://github.com/apache/cassandra/blob/cassandra-2.1.3/src/java/org/apache/cassandra/cql3/Maps.java

    引发错误的特定行自 2013 年 3 月 21 日以来未修改

    【讨论】:

      猜你喜欢
      • 2019-03-27
      • 1970-01-01
      • 2018-08-03
      • 2016-08-10
      • 2018-07-17
      • 2021-11-27
      • 1970-01-01
      • 2012-12-17
      • 2012-11-16
      相关资源
      最近更新 更多