AWS数据库解决方案,用于存储非关系数据

时间:2019-01-04 07:23:30

标签: mongodb postgresql amazon-web-services amazon-dynamodb

满足以下要求的最佳AWS数据库是什么

  • 我需要在数据库中存储大约50,000-1,00,000个条目。
  • 每个条目都将String作为键,并将Json数组作为值。
  • 我应该能够使用密钥检索JSON数组。
  • JSON数据的大小约为20-30KB
  • 我希望每小时大约读取10,000-40,000。
  • 每周大约50,000-1,00,000写
  • 我还必须考虑成本。
  • 易于集成/开发

我对MongoDB,DynamoDB和PostgreSQL之间有点困惑。请分享您对此的想法。

1 个答案:

答案 0 :(得分:1)

DynamoDB:-

DynamoDB是一种完全托管的专有NoSQL数据库服务,它支持键值和文档数据结构。对于您在OP中描述的典型用例,它将达到目的。

  

DynamoDB每天可以处理超过10万亿个请求和支持   每秒超过2000万个请求的峰值。

DynamoDB对于所有操作都具有良好的AWS开发工具包。可以为该表配置read and write capacity units

  

DynamoDB表使用按需容量模式自动适应   您的应用的流量。即时按需容量模式   最多可以容纳一张桌子上以前的高峰流量。对于   例如,如果您的应用的流量模式在25,000之间变化   每秒50,000次强一致性读取,其中每秒50,000次读取   第二个是先前的流量高峰,即时按需容量模式   可容纳高达每秒100,000次读取的持续流量。如果   您的应用程序维持每秒100,000次读取的流量,   峰值成为您之前的新峰值,从而使后续流量   达到每秒200,000次读取。

需要注意的一点是,它不允许基于非关键属性查询表。这意味着,如果您不知道表的哈希键,则可能需要执行全表扫描以获取数据。但是,有一个二级索引选项,您可以通过该选项解决该问题。在设计并做出明智的决定之前,您可能需要拥有用例的所有查询访问模式

MongoDB:-

MongoDB不是AWS上的完全托管服务。但是,您可以使用AWS服务(例如EC2,VPC,IAM,EBS等)来设置数据库。这需要一定的AWS云经验来设置数据库。另一种选择是使用MongoDB Atlas service

MongoDB在查询方面更加灵活。而且,它具有强大的聚合功能。有很多工具可以直接查询数据库以探索数据,例如SQL。

就Java API而言,Spring MongoDB可用于执行典型的数据库操作。同样,MongoDB也提供了许多支持各种语言的开源框架(例如Mongoose Nodejs)。

MongoDB支持多种编程语言,并且API也很成熟。

PostgreSQL:-

PostgreSQL是AWS上的完全托管数据库。

  

PostgreSQL已成为首选的开源关系数据库   对于许多企业开发人员和初创企业而言,   地理空间和移动应用程序。 Amazon RDS易于设置   在云端部署,操作和扩展PostgreSQL部署。

我认为我不需要为此数据库及其API编写太多内容。它是非常成熟的数据库,并且具有良好的API。

要考虑的要点:-

  1. 查询访问模式
  2. 轻松设置
  3. 数据库维护
  4. API和框架
  5. 社区支持