Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS数据存储选择_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Amazon web services AWS数据存储选择

Amazon web services AWS数据存储选择,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,我正在做一个创建应用程序的项目。应用程序将对照值列表检查输入,并返回响应。你可以想象我正在验证一个学生是否有健身房的会员资格 在我的用例中,值的大小列表可以小到数千,大到数百万。 此外,我可能希望每天更新列表,甚至删除列表并从数据源创建一个新列表 在这方面我能使用的最好的AWS数据存储是什么?我正在考虑使用dynamo DB。如果您的用例是此表中是否存在此条目?那么dynamo DB是一个不错的选择,因为它将非常快速地返回结果,并且没有可管理的基础结构 您还可以使用AWSAPIGateway和A

我正在做一个创建应用程序的项目。应用程序将对照值列表检查输入,并返回响应。你可以想象我正在验证一个学生是否有健身房的会员资格

在我的用例中,值的大小列表可以小到数千,大到数百万。 此外,我可能希望每天更新列表,甚至删除列表并从数据源创建一个新列表

在这方面我能使用的最好的AWS数据存储是什么?我正在考虑使用dynamo DB。

如果您的用例是此表中是否存在此条目?那么dynamo DB是一个不错的选择,因为它将非常快速地返回结果,并且没有可管理的基础结构

您还可以使用AWSAPIGateway和AWSLambda实现完全无服务器,这样您的整个应用程序就可以在没有服务器的情况下运行,并且可以根据负载自动扩展

其他选择包括:

使用AmazonRDS的传统SQL数据库,但对于所述用例来说,这将是一种过分的做法 对象存储在AmazonS3中,只需查询该对象是否存在。您可以将AmazonS3看作是一个非常大的NoSQL数据库。 DynamoDB可能适合您的用例。然而,你提到的一件事让我怀疑:

在我的用例中,值的大小列表可以小到数千,大到数百万。此外,我可能希望每天更新列表,甚至删除列表并从数据源创建一个新列表

与使用RDS/MySQL/Aurora的传统类似SQL的环境不同,在DynamoDB中,您无法执行单个查询来删除或更新所有或部分项

事实上,如果您有数百万项需要更新或删除,那么DynamoDB可能不是您的最佳选择。这是因为在DynamoDB中,每个项目都必须单独更新或删除

此外,DynamoDB对每个写工作者收费,每个写工作者每秒可以执行一次删除/更新。因此,如果有数百万行需要删除或更新,则需要有足够的工作人员来执行此操作。这可能是昂贵的,尤其是如果这些变化一次发生而不是一整天都在发生

显然,您可以在Dynamo中删除和更新项目。您可以利用DynamoDB流来处理新项目;您可以添加生存时间,以便记录至少在48小时后删除;您可以使用自动缩放来增加员工,以处理可预测的增长。或者,您可以使用SQS或其他技术来排队并逐步更新

然而,在我看来,这些都需要比传统RDS更仔细的设计。如果您有一个更新/删除繁重的应用程序,我建议使用关系数据库