gpt4 book ai didi

nosql - 何时使用dynamoDB -UseCases

转载 作者:行者123 更新时间:2023-12-04 14:23:12 25 4
gpt4 key购买 nike

我试图找出最适合Amazon dynamoDB的用例。

当我搜索大多数博客时,DyanmoDb将仅用于大量数据(BigData)。

我有关系数据库的背景。 NoSQL DB对我来说是新的。因此,当我尝试将其与常规关系数据库知识联系起来时。

与DynamoDb相关的大多数概念是使用分区键/排序键创建无模式表。并尝试根据键查询它们。此外,没有这样的存储过程概念,它使查询变得更容易和简单。

如果我们管理如此庞大的数据,并且每次都执行如此复杂的查询来检索数据,那将是没有存储过程的正确方法吗?

注意:我可能对该概念有错误的理解。所以,请任何人在这里清除我的想法

提前致谢
周杰伦

最佳答案

简而言之,像DynamoDB这样的系统旨在通过横向扩展而不是纵向扩展来支持大数据集(太大而无法容纳单个服务器)和高写入/读取吞吐量,这是历史上关系数据库更常见的方法。

支持水平可伸缩性的主要方法是对数据进行分区,即,将数据集分为多个部分并分布在多个服务器之间。这样,它可能会使用更多的存储和更多的IOPS,从而允许更大的数据集和更高的读/写吞吐量。

但是,由于数据分布在多个物理服务器之间,因此数据分区使其难以支持复杂的查询,例如联接等。对于存储过程,由于相同的原因不支持它们-历史上,存储过程背后的想法是数据局部性,即它们在数据附近的服务器上运行而没有网络操作,但是,如果数据分布在多个服务器之间,则这种好处消失了(至少以存储过程的形式)。

因此,从此类系统中查询数据的最有效方法是通过记录键,因为数据分区是基于键的,并且很容易找出给定键的记录在物理上的位置。尽管许多此类系统还支持二级索引,但它们通常以某种方式受到限制或价格昂贵,并且可能不足以满足复杂软件解决方案中的要求。一种非常普遍的方法是拥有一个互补的索引/查询解决方案(我见过基于Elasticsearch和Solr的解决方案),该解决方案允许对某些记录片段运行复杂的查询以找出记录键,然后将其用于加载记录。

关于nosql - 何时使用dynamoDB -UseCases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47578491/

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