序列化Json与UDS对cassandra中数据和模式迁移的影响

时间:2016-04-21 18:23:36

标签: json user-defined-types cassandra-2.1

简要回答一下,在Cassandra中存储类型的序列化json与使用UDT的不同含义是什么。我现在正在寻求有经验的人来详细说明。

在性能,数据和架构更改(添加,更改,删除列)方面,它们有何不同? 每种方法有哪些优点和缺点?
还有什么其他值得注意的方式呢?

1 个答案:

答案 0 :(得分:2)

存在很大差异,我会尝试解释它。

如果你不想在CQL模式中“强类型化”字段,那么UDT很棒。您可以将UDT用作主键(群集列)的一部分,也可以添加和重命名字段。缺点是,在进行选择时,您始终选择整个UDT并且无法删除字段。不要因为使用它而过于疯狂,因为如果在多个表中使用相同的表单,它们是难以维护的。

使用序列化的JSON字符串对某些情况很有用。我甚至听说人们将压缩数据保存到字段(protobuff)以解决他们的问题(我认为Soundcloud的某个人正在讨论这个问题)。 JSON的问题在于它们没有输入,并且您需要在应用程序上使用其他逻辑来处理序列化和数据更改。这也意味着您可以拥有可变结构并仅插入所需的字段。

最后,只要您了解两种方法的利弊,就可以了解您的偏好。