gpt4 book ai didi

Cassandra 数据建模 : Use a Map or have a lot of empty columns?

转载 作者:行者123 更新时间:2023-12-01 00:39:20 25 4
gpt4 key购买 nike

我总共有大约 20-30 列需要存储在我的列族中。但是,我的数据有不同的变化。我有不同的对象,它们在逻辑上属于一起,但没有相同的字段(字段与键名相同)。有时提供 5 个字段,有时提供 7 个字段,以此类推。它们都共享一部分始终提供的字段。

我在此列族中插入的行永远不会填满所有列。使用 Map 时,我可以根据对象类型添加键/值,并且不会有我的其他模型引入的可能开销。

我担心每一行都有很多空列。

使用 map 的一个可能的缺点是 you can't have an index for map keys and map values coexist .

收集的问题:

  • 你建议我使用 map 还是将我可能需要的所有列添加到我的列族中?
  • 我假设根据 Map 中的键/值查询数据比从列中“直接”访问它们要慢得多。它是否正确?
  • 当我每行有很多空列时有什么缺点?高架?
  • 使用 Map 时是否可以具有“通用”值类型?我想存储不同的数据,主要是字符串,还有浮点数和整数。我需要使用 map<text,text>并在我的应用程序中转换值?

  • 我正在使用 Cassandra 3.0.8 | CQL 规范 3.4.0 | native 协议(protocol) v4

    谢谢

    最佳答案

    我认为拥有稀疏列值是完全可以的,因为这是 BigTable 和所有实现相同稀疏 map 数据模型的相关解决方案被创建的原因之一。

    正如另一个 S.O. 中指出的那样,我将更关注使用 cql 集合的限制。回答 here .

    关于您的具体问题:

  • 我将亲自使用普通列。
  • 这取决于访问模式。您需要 map 中的所有列吗?如果没有,请注意 Cassandra 将检索整个集合,因此即使不需要,您也会获得所有数据。
  • 我在这里看不到任何开销:数据将连续存储,忽略空列

  • 无论如何,您可以找到一些有关 Cassandra 限制的信息 here .这是一个旧页面,但我假设您可以将它们用作更新值的下限。

    希望能帮助到你。

    关于Cassandra 数据建模 : Use a Map or have a lot of empty columns?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38461001/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com