我们可以在Cassandra列族的每一列中都有一个复合值吗?
user-id column1-name
123 (Column1-Value Column1-SchemaName Column1-LastModifiedDate)
userId 是这里的行键。其他列也是如此。
每个列值将始终包含以下三件事-
ByteType for Column-Value
UTF8Type for Column-SchemaName
DateType for LastModifiedDate
如果是,谁能帮我设计色谱柱系列?我将使用 Astyanax 客户端插入到上面的列系列中。
有两种方法可以:
- 对列使用复合类型。在这种情况下,将有 4 个组件的复合列名称和空列值。
- 使用阿斯蒂亚纳克斯自定义序列化程序。在这种情况下,列名将保持不变。自定义序列化程序将从字节缓冲区转换为自定义对象,然后再转换回来。
认为,这在卡桑德拉是可能的。要么你必须去规范化你的列系列,要么照顾卡桑德拉收藏支持。如果您可以将值、架构名称、上次修改日期的数据模型数据类型限制为单一类型,那么 Map 可能对您的情况有所帮助。
您似乎正在尝试创建一个所谓的"超级列",最近在 Cassandra 中一直非常"不推荐"(为什么 Cassandra 中的超级列不再受到青睐?所以,我想说你应该尝试重新考虑你的设计,如果你真的需要在一列中拥有所有这些值,你可以从应用程序中进行封送/取消封送,或者你也可以考虑使用"组合键",如果这对你有帮助的话。