Amazon dynamodb DynamoDB还是RDS?

Amazon dynamodb DynamoDB还是RDS?,amazon-dynamodb,amazon-rds,Amazon Dynamodb,Amazon Rds,我一直在为我的项目选择DynamoDB或RDS。我知道它们是两种完全不同的DB系统,但我不确定哪一种更适合我的应用程序。我的应用程序会提醒用户某些很少发生的事件 例如,一名员工可能会触发警报,说大楼里有一名活跃的枪手,因此我的应用程序需要从数据库中获取公司每个人的手机号码,然后使用这些号码发送短信。我刚刚发现DynamoDB在从数据库检索内容时限制为100项,这对我来说是个问题,因为我可能需要尽快检索200、300甚至更多的电话号码 除此之外,数据库不会定期查询。当有人需要更新用户的个人资料信息

我一直在为我的项目选择DynamoDB或RDS。我知道它们是两种完全不同的DB系统,但我不确定哪一种更适合我的应用程序。我的应用程序会提醒用户某些很少发生的事件

例如,一名员工可能会触发警报,说大楼里有一名活跃的枪手,因此我的应用程序需要从数据库中获取公司每个人的手机号码,然后使用这些号码发送短信。我刚刚发现DynamoDB在从数据库检索内容时限制为100项,这对我来说是个问题,因为我可能需要尽快检索200、300甚至更多的电话号码

除此之外,数据库不会定期查询。当有人需要更新用户的个人资料信息时,很少会查询它。当然,它会在紧急情况下查询用户的手机号码,我需要它尽快返回结果

听起来DynamoDB可能有点过分,但我不是100%确定。另一方面,它似乎非常适合,因为它可以非常快速地查询内容,但每次请求100个项目的限制让我感到非常痛苦


对于我来说,选择什么样的数据库系统并没有一个明确的答案。基于这个用例,什么是最好的DB选项

您应该使用AWS pinpoint。Pinpoint具有端点和线段

  • 端点是电子邮件,数字。。。公司中的一个人可以有多个端点
  • 该段是端点的筛选列表。例如,可以按人员标题或公司筛选端点
  • 您可以基于细分创建活动,这样选定细分中的每个人都可以收到电子邮件或短信,或者两者都可以
关于您的示例,您可以创建一个dynamo DB触发器,该触发器将创建/更新/删除精确定位端点


AWS的方法不是扫描dynamo DB以发送群电子邮件或短信。相反,方法是创建段,然后创建活动。

100项的限制仅适用于BatchGetItem请求。如果改为使用查询请求,则除了1MB的大小限制之外,没有上限。但是,如果您认为您将超出大小限制,则可以使用响应中的
LastEvaluatedKey
对结果进行分页,以获取更多项目。但正如@Vladimir在下文中所建议的,AWS pinpoint或许将成为这项工作的工具。