当前位置: 首页 > 知识库问答 >
问题:

RDBMS与DynamoDB、无服务器与非无服务器

陈项禹
2023-03-14

我对计划中的应用程序的设计有一点问题,特别是数据库引擎和无服务器/非无服务器。目标是一个通过RESTAPI与数据库对话的Web应用程序。RESTAPI本身实际上只是CRUD操作,因此在我看来,无服务器aproach(AWS Lambda)非常适合。因此,最有效的数据库可能是DynamoDB(NoSQL)。

我熟悉RDBMS,对NoSQL数据库知之甚少。

应用程序的模式尚未完成,应该可以在以后进行扩展,因为可能需要实现新功能等等。正因为如此,我宁愿使用RDBMS而不是NoSQL数据库,因为它们在以后编辑模式时伸缩性不好。(至少这是我最近几个小时读到的)

例如,选择AmazonRDS MySQL数据库将要昂贵得多,我不知道他们在RESTAPI的无服务器应用程序方面做得如何。

所以我站在一个点上,我真的不知道在这里使用什么服务。我还能用DynamoDB吗?该模式可能是非常相关的。

共有1个答案

庞安晏
2023-03-14

DynamoDB没有任何模式的概念,所以关于编辑的所有事情都有点无关(与DynamoDB)。如果模式是指具有特定属性的对象,那么它取决于用例。如果您同意在不共享相同“模式”的表中使用对象,那么它非常简单,因为默认情况下允许这样做。另一方面,如果您需要所有对象共享同一组属性,并且要经常更改它们,那么与RDS相比,这确实不是那么简单和直接。

接下来,如果您有一个关系模式表,并计划对其进行一些连接,那么DynamoDB真的不是一个好的解决方案。DynamoDB适用于特定类型的用例,如存储会话或类似(低)复杂性的东西。在DynamoDB中编写更复杂的查询可能会变得非常乏味和痛苦。

考虑到价格。嗯,我不会说DynamoDB有那么便宜。乍一看似乎是这样,但如果你深入研究,你会发现它实际上相当昂贵,主要是从写作的角度来看。您需要预配读写容量和吞吐量,您需要的吞吐量越多,成本就越高(您可以使用自动缩放来处理突发流量,但在流量一致的情况下,这对您没有太大帮助)。在更大的规模上,RDS(而不是Aurora)的成本只是DynamoDB成本的一小部分(假设我们谈论的是可以由RDS处理的用例)。

如果您担心RDS与Lambda的集成,那么与DynamoDB相比,复杂性并没有那么大。需要考虑一些因素,例如lambda执行时间硬限制(目前为15分钟),RDS的响应速度可能较慢(与DynamoDB相比),但是如果您的查询花费了那么长的时间,那么您要么做错了什么,要么误用了这些工具。

总而言之,如果您对使用RDS感到满意,并且不需要DynamoDB提供的毫秒延迟(或者如果使用DAX,甚至是微秒延迟),那么在您的情况下,我肯定会使用RDS而不是DynamoDB。再说一次,DynamoDB并不是解决所有数据相关问题的通用解决方案,更常见的情况是,我发现它被严重滥用于RDS可以轻松处理的东西。

 类似资料:
  • 如您所见,我正在使用codePipeline和codeBuild自动化部署。我的后端基于无服务器框架,它在触发命令时部署lambda函数。这就是我没有使用codeDeploy进行传统部署的原因<代码>构建规范。yml文件如下所示: 现在,我有3个关于CodeBuild和Serverless的问题: 问题1:命令依赖于一个名为的文件,其中包含数据库密码等秘密。此文件将不会被签入git。你认为在cod

  • 我已经到处找了,我一辈子也找不到服务器来安装dynamodb触发器。 我使用了: 我尝试了一个硬编码的arn,没有发生任何事情,我可以在aws控制台上看到。我是新服务器。如果你有任何建议,请张贴。

  • 我最近开始与appium合作。我在android emulator中使用appium成功调用了一个虚拟应用程序。 但是,当我尝试我们的实际应用程序时,会弹出一个弹出窗口,上面写着: 应用程序错误与服务器的连接不成功。(文件://android_asset/www/index.html) 一经接受,申请即被关闭。 我可以在emulator中手动访问同一个应用程序,并且不会抛出弹出窗口。我已经附上了问

  • 部署 PHP 应用程序到生产环境中有多种方式。 Platform as a Service (PaaS) PaaS 提供了运行 PHP 应用程序所必须的系统环境和网络架构。这就意味着只需做少量配置就可以运行 PHP 应用程序或者 PHP 框架。 现在,PaaS 已经成为一种部署、托管和扩展各种规模的 PHP 应用程序的流行方式。你可以在 资源部分 查看 PHP PaaS “Platform as

  • 主要内容:1.RPC 架构,2.同步调用与异步调用,3.流行的 RPC 框架,4.HTTP 服务,5.总结1.RPC 架构 2.同步异步调用 3.流行的 RPC 框架 1.RPC 架构 先说说 RPC 服务的基本架构吧。我们可以很清楚地看到,一个完整的 RPC 架构里面包含了四个核心的组件。 Client Server Client Stub Server Stub(这个Stub大家可以理解为存根) 客户端(Client),服务的调用方。 服务端(Server),真正的服务提供者。 客户端存根,

  • 主要内容:1.RPC 架构,2.同步调用与异步调用,3.流行的 RPC 框架,4.HTTP 服务,5.总结1.RPC 架构 先说说 RPC 服务的基本架构吧。我们可以很清楚地看到,一个完整的 RPC 架构里面包含了四个核心的组件。 Client Server Client Stub Server Stub(这个Stub大家可以理解为存根) 客户端(Client),服务的调用方。 服务端(Server),真正的服务提供者。 客户端存根,存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后