map <text,object =“”> Cassandra,是否有可能

时间:2016-05-20 09:07:47

标签: dictionary cassandra

我想创建一个表,其中地图接受字符串作为键,任何对象作为值(布尔值,字符串,整数,时间戳)。

有可能吗?

由于

3 个答案:

答案 0 :(得分:2)

任何对象都是不可能的。您可以创建用户定义的类型,但此类型不是动态的:https://docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlRefcreateType.html

您可以将对象解析为json,将此json解析为字符串。您可以在文本列中插入此字符串。

答案 1 :(得分:1)

目前,不,地图中的键和值必须是已知的CQL类型。有request for "dynamic types",但到目前为止还没有人参与其中。

答案 2 :(得分:1)

动态类型没有原生支持。

所以你有两个工作。

  • 在您的应用程序逻辑中处理它。

    • 创建map<text, blob>map<text, text>
    • 在应用程序逻辑中创建JSON或ByteBuffer。 JSON更好,因为它与语言无关,但可以消耗更多存储空间。
  • 使用所有可能的类型创建UDT并相应地存储它。

如果你的品种很少,那么你应该选择第二个选项,否则1应该更好。使用1st选项,您也可以存储复杂对象。

希望它有所帮助!