java - Kryo 字节级追加

标签 java database cassandra kryo

我将 JSON 存储在表中(实际上是 Cassandra 列族),如下所示:

 ____________________________________________________________________
|                 || prop1               | prop2               | ... |
|  collection_id  || [val1, val2, ...]   | [val1, val2, ...]   | ... |
|_________________||_____________________|_____________________|_____|

因此将存储一个对象{ prop1: 1, prop2: 2 }:

 ____________________________________________
|                 || prop1         | prop2   |
|  collection_id  || [1]           | [2]     |
|_________________||_______________|_________|

为了节省空间,我将对每个属性值数组进行 Kryo 序列化。我担心的是,当我执行写入时,我需要首先加载所有属性值数组,然后将新对象的值添加到每个数组,然后将每个数组推回数据库。如果我已经存储了很多事件,那可能会非常昂贵!

有没有办法将新值“附加”到 Cassandra 中的每个数组?

最佳答案

Append 可用于 Cassandra 的 native 集合:http://docs.datastax.com/en/cql/3.0/cql/cql_using/use_list_t.html因此,您应该只序列化元素,而不是使用 Kryo 序列化集合。

关于java - Kryo 字节级追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511530/

相关文章:

java - 加载 keystore 文件时出现无效 keystore 格式异常

mysql - 有没有办法在 SQL 数据库的一个字段中插入多个数据?

cassandra - cassandra.yaml 中的值超过 max_value_size_in_mb 时出现错误

java - 检查字符串是否等于枚举常量的名称

java - OpenCV Java RGB还是HSV?

javascript - 如何使用 JavaScript 在 mongodb 文档的子文档中增加一个值

nosql - Cassandra 分区容错如何在多数据中心环境中工作

erlang - CQL 限制

java - 为什么我不能将键盘字符串输入放在其他键盘输入之后?

python - 如何有效地在 Django 中存储对象的排名列表?