gpt4 book ai didi

versioning - 哪些NoSQL数据库(类别)支持版本控制?

转载 作者:行者123 更新时间:2023-12-04 05:50:33 24 4
gpt4 key购买 nike

我认为无论NoSQL聚合存储是键值,列族还是文档数据库,它都将支持值的版本控制。经过一番谷歌搜索,我得出的结论是该假设是错误的,并且仅取决于DBMS实现。这是真的?

我知道Cassandra和BigTable支持它(列家族存储)。 Hbase(列系列)和Riak(键值)可以做到,而Redis和Hadoop(键值)却不能做到。 Mongo DB(文档)执行doCouchbase,而MongoDB则不执行(文档存储)。我在这里看不到任何图案。有经验法则吗? (例如,“键值存储区通常没有版本控制,而列族和文档数据库则具有版本控制”)

我想做的是:我想创建一个从URL到PNG图像的网站截图数据库。我宁愿使用键值存储,因为除了版本控制之外,它是满足该问题的最简单的解决方案。但是,当网站更改或退役并且我更新数据库时,我不想丢失旧图像。即使选择具有版本控制的键值数据库,我也希望能够切换到其他键值数据库,而不受很多键值数据库不支持版本控制的约束。因此,我试图了解聚合NoSQL数据库在连续性中的复杂程度如何,版本控制才成为数据模型所隐含的功能。

最佳答案

您实际上并不需要Key-Value存储中的版本控制支持。

数据存储真正唯一需要的是高效的扫描/范围查询功能。

这意味着数据存储区可以按字典顺序检索条目。

大多数KV商店都这样做,所以这很容易。

这是您的操作方式:

  • 创建版本 key 。

    如果您不能将原始名称散列为固定长度,请在原始 key 的长度之前加上前缀。然后放入 key 的哈希值或原始 key 本身,并以固定长度的编码版本号结尾(因此,通过将数字与最大版本相反,按字典顺序从高版本到低版本排序)。
  • 查询

    从最大可能版本到版本0进行范围查询,但仅检索一个键。

  • 完毕

    如果不需要显式版本,则也可以使用时间戳记,因此可以插入而无需获取最新版本。

    关于versioning - 哪些NoSQL数据库(类别)支持版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22920240/

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