【问题标题】:map<text, object> Cassandra, is it possiblemap<text, object> 卡桑德拉,有可能吗
【发布时间】:2016-05-23 17:33:43
【问题描述】:

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

有可能吗?

谢谢

【问题讨论】:

    标签: dictionary cassandra


    【解决方案1】:

    目前,不,映射中的键和值必须是已知的 CQL 类型。有一个request for "dynamic types",但到目前为止还没有人处理它。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        没有对动态类型的原生支持。

        所以你有两个变通方法。

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

          • 创建map&lt;text, blob&gt;map&lt;text, text&gt;
          • 在您的应用程序逻辑中创建 JSON 或 ByteBuffer。 JSON 更好,因为它独立于语言,但会消耗更多存储空间。
        • 使用所有可能的类型创建 UDT 并相应地存储它。

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

        希望对你有帮助!

        【讨论】:

          猜你喜欢
          • 2015-03-18
          • 2014-09-15
          • 1970-01-01
          • 2017-05-18
          • 2015-10-19
          • 2015-03-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多