gpt4 book ai didi

cassandra - 使用 JSON 的 Apache Cassandra 模式设计

转载 作者:行者123 更新时间:2023-12-02 02:15:36 25 4
gpt4 key购买 nike

假设我们有带有用户信息的CF:

{
123 => { first_name => Nick, last_name => Schiff, age => 23, city = NY }
}

再假设我们不按列名搜索,我们使用这些信息只是为了显示数据。列名也不会经常更新个性。 (例如更改名字)

在这种情况下,单个编码的 JSON 可能是更好的主意:

{
123 => { data = [json], city = NY }
}

并离开“城市”,因为假设我们会经常更新它。

JSON 的优点是:

  1. 简单的反规范化——你只复制一列——例如“数据”。
  2. 你不需要知道列名,所以你不需要在删除前 slice()。
  3. 模拟没有复合键的 super 列 - 这有点像 (1)

我能看到的缺点:

  1. 不验证 JSON 值
  2. cassandra 不知道存储的值。

有人这样工作吗?我在这里缺少什么吗?

最佳答案

根据您的使用模型,这可能是一个合理的策略。以 blob 格式存储数据的最大缺点是处理并发更新的方式。假设您有 2 个进程,一个尝试更新 first_name 字段,另一个尝试更新 age 字段。每个进程都必须读取行以获取当前 blob,然后更新要更改的字段并将其写回 Cassandra。当您的所有数据都存储在一个 blob 中时,第二个写入者基本上会撤消第一个写入者的更改。

如果将这些存储为单独的列,则不会发生更新冲突。

但也许您的记录是不可变的,在这种情况下,并发更新问题就不是问题。

关于cassandra - 使用 JSON 的 Apache Cassandra 模式设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846699/

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