【发布时间】:2016-05-23 17:33:43
【问题描述】:
我想创建一个表,其映射接受字符串作为键,任何对象作为值(布尔值、字符串、整数、时间戳)。
有可能吗?
谢谢
【问题讨论】:
标签: dictionary cassandra
我想创建一个表,其映射接受字符串作为键,任何对象作为值(布尔值、字符串、整数、时间戳)。
有可能吗?
谢谢
【问题讨论】:
标签: dictionary cassandra
目前,不,映射中的键和值必须是已知的 CQL 类型。有一个request for "dynamic types",但到目前为止还没有人处理它。
【讨论】:
任何对象都是不可能的。您可以创建用户定义的类型,但这种类型不是动态的:https://docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlRefcreateType.html
您可以将您的对象解析为 json 并将此 json 解析为字符串。您可以将此字符串插入文本列中。
【讨论】:
没有对动态类型的原生支持。
所以你有两个变通方法。
在您的应用程序逻辑中处理它。
map<text, blob> 或map<text, text>
使用所有可能的类型创建 UDT 并相应地存储它。
如果您的品种很少,那么您应该选择第 2 个选项,否则 1 应该更好。使用第一个选项,您也可以存储复杂的对象。
希望对你有帮助!
【讨论】: