【问题标题】:AWS database solution for storing non-relational data用于存储非关系数据的 AWS 数据库解决方案
【发布时间】:2019-01-04 18:15:57
【问题描述】:

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

  • 我需要在数据库中存储大约 50,000 - 1,00,000 个条目。
  • 每个条目都有一个字符串作为键,一个 Json 数组作为值。
  • 我应该能够使用密钥检索 JSON 数组。
  • JSON 数据大小在 20-30KB 左右
  • 我预计每小时大约 10,000 - 40,000 次读取。
  • 每周大约 50,000 - 1,00,000 次写入
  • 我还必须考虑成本。
  • 易于集成/开发

我对 MongoDB、DynamoDB 和 PostgreSQL 有点困惑。请分享您对此的看法。

【问题讨论】:

  • 你期望什么样的负载均匀或尖刺?
  • 它不统一。读取和写入可能低至每小时 2000 次,最高可达 40,000 次。

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


【解决方案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 次读取的流量,即 peak 成为您之前的新高峰,使后续流量能够 达到每秒 200,000 次读取。

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

MongoDB:-

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

MongoDB 在查询方面更加灵活。此外,它还具有强大的聚合功能。有许多工具可用于直接查询数据库以探索 SQL 等数据。

在 Java API 方面,Spring MongoDB 可用于执行典型的数据库操作。还有许多适用于 MongoDB 的各种语言的开源框架(例如 MongooseNodejs)。

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

PostgreSQL:-

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

PostgreSQL 已成为首选的开源关系数据库 对于许多企业开发人员和初创企业,为领先的 地理空间和移动应用程序。 Amazon RDS 可以轻松设置 在云中建立、操作和扩展 PostgreSQL 部署。

我想我不需要写太多关于这个数据库及其 API 的内容。它是一个非常成熟的数据库,并且有很好的 API。

需要考虑的要点:-

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    相关资源
    最近更新 更多