EC2 服务器上的 MongoDB 还是 AWS SimpleDB?

2024-01-18

什么场景更有意义 - 托管多个安装了 MongoDB 的 EC2 实例,还是使用 Amazon SimpleDB Web 服务?

当有多个带有 MongoDB 的 EC2 实例时,我遇到了自己设置实例的问题。

当使用 SimpleDB 时,我遇到了将我锁定到 Amazon 数据结构中的问题,对吗?

发展上有哪些差异?难道我不应该能够切换服务层的 DAO 来写入 MongoDB 或 AWS SimpleDB 吗?


SimpleDB 有一些可扩展性限制。您只能通过分片进行扩展,它的延迟比 mongodb 或 cassandra 更高,它有吞吐量限制,而且价格比其他选项更高。可扩展性是手动的(您必须进行分片)。

如果您需要更广泛的查询选项并且读取率很高并且没有太多数据,那么 mongodb 会更好。但为了持久性,您需要使用至少2个mongodb服务器实例作为主/从。否则您可能会丢失最后一刻的数据。可扩展性是手动的。它比 simpledb 快得多。自动分片在1.6版本中实现。

Cassandra 的查询选项较弱,但与 postgresql 一样耐用。它与 mongo 一样快,并且在数据量更大时速度更快。 cassandra 上的写入操作比读取操作更快。它可以通过触发 ec2 实例来自动扩展,但是您必须稍微修改配置文件(如果我没记错的话)。如果您有 TB 的数据,cassandra 是您最好的选择。无需对数据进行分片,它从第一天起就被设计为分布式的。您可以为所有数据拥有任意数量的副本,如果某些服务器已失效,它将自动返回活动服务器的结果,并将失效服务器的数据分发给其他服务器。它具有很高的容错能力。您可以包含任意数量的实例,它比其他选项更容易扩展。它具有强大的 .net 和 java 客户端选项。他们有连接池、负载平衡、死服务器标记……

另一种选择是用于大数据的 hadoop,但它不像其他选项那样实时,您可以使用 hadoop 进行数据仓库。 cassandra 或 mongo 都没有事务,因此如果您需要事务,postgresql 更适合。另一种选择是Amazon RDS,但性能较差且价格较高。如果您想使用数据库或 simpledb,您可能还需要数据缓存(例如:memcached)。

对于网络应用程序,如果您的数据很小,我推荐 mongo,如果数据很大,则 cassandra 更好。您不需要 mongo 或 cassandra 的缓存层,它们已经很快了。我不推荐 simpledb,正如你所说,它也会将你锁定在 Amazon 上。

如果您使用 c#、java 或 scala,您可以编写一个接口并为 mongo、mysql、cassandra 或任何其他数据访问层实现它。在动态语言中(例如 rub、python、php)更简单。如果您愿意,您可以为其中两个编写一个提供程序,并且可以在运行时通过仅更改配置来更改存储,它们都是可能的。使用 mongo、cassandra 和 simpledb 进行开发比数据库更容易,并且它们没有架构,这还取决于您使用的客户端库/连接器。最简单的是mongo。 cassandra 中每个表只有一个索引,因此您必须自己管理其他索引,但据我所知,随着 cassandra 0.7 版本的发布,二级索引将成为可能。您也可以从其中任何一个开始,并在将来如果需要的话替换它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EC2 服务器上的 MongoDB 还是 AWS SimpleDB? 的相关文章

  • 使用 Mongoose 将数组(“标签”)保存到 MongoDB

    我正在玩 Mongoose 但在保存到数组时遇到问题 例如 我在页面上有一个以逗号分隔的输入字段tags 我从 req body tags 中获取这些内容 删除空格 然后用逗号分隔它们以获得标签数组 现在 如何将该数组保存回我的数据库 我猜
  • Express MongoDB find() 基于 _id 字段

    因此 在我的 Express 应用程序中 我尝试根据我的 id 字段查找 请参阅下面我的 MongoDB 记录 id oid 58c2a5bdf36d281631b3714a title EntertheBadJah subTitle Lo
  • 由于WiredTiger.turtle权限,Mongodb无法启动

    我试图在 ubuntu 16 04 上启动 mongodb 4 0 4 但数据库拒绝了我的所有尝试 我检查了 mongodb 日志文件 发现名为 WiredTiger turtle 的文件没有所需的权限 这里记录错误 2018 11 26T
  • AWS SimpleDB 上属性的最大大小

    我正在构建一个移动应用程序 iPhone Android 并希望将应用程序数据存储到亚马逊的 SimpleDB 上 因为我们不想托管自己的服务器来提供这些服务 我已经浏览了所有文档 元素值的最大存储大小是 1024 字节 就我而言 我们需要
  • 如何将excel文件(XLSX)导入mongoDB [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一组数据作为输入以 XLSX 格式提供给 MongoDB 我该如何将 Excel 文件作为输入导入
  • mongodb 通配符匹配特定键的所有值[重复]

    这个问题在这里已经有答案了 我试图弄清楚如何匹配一个键并返回该键的所有值 是否可以将值作为通配符给出 我想在值上使用通配符返回该特定键的所有内容 db collection find key 我还希望这也能返回整个集合 其中的键也与通配符值
  • 从 JSON 字符串创建 BSON 对象

    我有一个 Java 应用程序 它从外部应用程序获取数据 传入的 JSON 位于字符串中 我想解析该字符串并创建 BSON 对象 不幸的是 我在 Java 的 BSON 实现中找不到该 API 我是否需要使用外部解析器 例如 GSON 而且
  • 按日/月分组,并取 mongo 中当天/月评分的平均值

    我在 mongodb 中有这些数据 rating 4 ceatedAt ISODate 2016 08 08T15 32 41 262 0000 rating 3 createdAt ISODate 2016 08 08T15 32 41
  • 在 mongodb 中更新异步重复数据的最佳实践

    我正在权衡 Web 应用程序从关系 SQL 数据库迁移到 mongodb 的利弊 这是为了解决性能问题 将所有对象依赖项存储在对象本身中允许快速 读 用于向用户显示数据 另一方面 某些数据存在于不同的集合中 例如用户名位于用户集合中 但也在
  • Pymongo 中的全文搜索

    即将推出的 MongoDB 2 4 支持全文检索 http docs mongodb org manual release notes 2 4 text indexes 我们在 mongo shell 中使用命令来执行此操作 例如 db p
  • 在 config.js 中打开 admin 以查看服务器统计信息

    拉动后运行此命令 docker run d p 27017 27017 e MONGO INITDB ROOT USERNAME admin e MONGO INITDB ROOT PASSWORD password name mongod
  • 如何在 mongodb-native findAndModify 中使用变量作为字段名称?

    在使用 mongodb native 驱动程序的这段代码中 我想增加在单独变量中指定的字段的值 问题在于 在这种情况下 inc 子句中的字段名称将是 变量 而不是变量的内容 在查询部分中 所选变量按预期工作并找到正确的 ID var sel
  • 在 cl-mongo 中实现 MongoDB SASL 身份验证

    我已经从 fons 分叉了 cl mongo common lisp MongoDB 库 存储库 因为它已经不再维护并且不支持 SCRAM SHA 1 登录过程 这是我的叉子 https github com mprelude cl mon
  • 将 mongo 数组转换为具有键值对的对象

    我有一个包含字符串数组的 mongo 文档 我需要将这个特定的字符串数组转换为包含键值对的对象数组 以下是我目前的做法 id ObjectId 57e3720836e36f63695a2ef2 platform A1 available C
  • mongodb 更新所有文档,并将值增加 1 [重复]

    这个问题在这里已经有答案了 我在 mongoDB 中有几个文档 文档结构是这样的 a abc myid 2 我想用 1 更新所有文档的 myid 例如 第一个文档 myid 1 第二个文档 myid 2 依此类推 有询问吗 尝试这个查询 d
  • 环回关系不填充对象 ID 数组

    到目前为止我有 2 个模型 工作流程核心 工作流程步骤 工作流核心有一个steps属性 该属性是数组类型并且包含1 多个步骤 当呼叫接通时工作流程核心响应正文不会使用实际步骤对象填充步骤数组 工作流程核心 json name workflo
  • 如何修复 MongoClient is not a constructor 错误

    我刚刚学习 JavaScript 和 Nodejs 根据我在网上找到的一些代码 我编写了以下应用程序 当我尝试运行它时 我在第 9 行收到错误 其中显示 new MongoClient 错误提示 MongoClient 不是构造函数 您能解
  • 为关联数组选择哪种映射类型?学说ODM

    我有一个关于 顺便说一句 真的很棒 Doctrine ODM 的简单问题 假设您有一个类似以下的文档 Document class Test Id public id WHICHTYPE public field array 现在我想存储一
  • Spring Data mongodb:添加 MongoDb 访问凭据

    我的 Spring 应用程序中有以下工作配置
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav

随机推荐

  • Flex网格:左右交替

    使用弹性盒 我想将一系列 div 垂直放置在包含 div 的下方 有些左 有些右 其中每个 div L 和 R 是容器 div 宽度的 70 L div 必须固定到容器的左侧 R div 必须固定到容器的右侧 L R L L R R R L
  • Geopandas PostGIS 连接

    我最近开始在 python 中使用 Geopandas 进行一些空间工作 并且对此非常满意 我目前正在尝试阅读 PostGIS 功能 但不太了解如何参数化数据库连接 而且似乎不清楚在文档中 GeoDataFrame from postgis
  • 为什么将 Visual Studio 解决方案添加到 TFS 时空文件夹会消失?

    我有这个 Visual Studio 解决方案 其中包含一个项目 该项目具有由多个空文件夹组成的模板文件夹树 当我使用 源代码管理 gt 将解决方案添加到源代码管理 菜单项将此解决方案添加到 Team Foundation Server T
  • 隐藏 QLPreviewController 的右键?

    我在应用程序中对 QLPreviewController 进行子类化并使用以下代码 QLPreviewControllerSubClass preview QLPreviewControllerSubClass alloc init sel
  • 您可以在创建现有的 mysql 触发器后对其进行修改吗?

    In mysql我可以创建一个触发器 然后显示有关它的信息 如下所示 mysql gt show triggers like fooTrigger 该命令提供的输出看起来非常像 select 语句 其中一行显示匹配的触发器 是否可以更新它向
  • 通过 Raven Studio 中的 RQL 将额外的列/字段添加到 RavenDB 集合

    我试图通过向每个实体添加额外的字段来更新整个集合 这doesn t做这件事 from things as t update put id t NewField 有人可以帮忙解决一下语法吗 Thanks Just do from things
  • 如何在VIM中映射CAPS LOCK键?

    我在Windows下使用VIM 并希望将 CAPSLOCK 映射到 Ctrl 有办法做到这一点吗 顺便说一句 我在网上看到了大量如何使用注册表 hack 交换 CAPS 和 Esc 的示例 但它们都没有使用 VIM 映射命令 而是使用外部工
  • Slim 框架 - 无法用点解释路由

    问题陈述 我目前正在开发内部 RESTful API 并使用我们的主域名作为环境标识符 然而 我注意到 Slim 根本不喜欢其中有点的路线 示例案例 我有一个使用 PHP 内置 Web 服务器运行的本地 Web 服务器 并且我调用了php
  • 读取 Vertex AI Pipelines 中的数据

    这是我第一次使用 Google 的 Vertex AI Pipelines 我检查了这个代码实验室 https codelabs developers google com vertex pipelines intro hl en 0也这个
  • 在任务管理器中更改进程名称[重复]

    这个问题在这里已经有答案了 我有一个在服务器上运行的 Windows 窗体应用程序 现在我需要同时运行同一应用程序的多个实例 每个实例将连接到不同的数据库 在应用程序启动期间 我更改了标题 以便可以识别正在连接的数据库 但我也想更改任务管理
  • 如何在 Visual Studio 项目模板中使用变量设置文件名

    我有一个 VS 2013 项目模板 其中包含如下项目
  • 添加/组合标准差

    简洁版本 可以添加 组合标准差吗 IE if StdDev 11 14 16 17 X and StdDev 21 34 43 12 Y can we calculate StdDev 11 14 16 17 21 34 43 12 fro
  • Android - 按钮彼此相邻

    我无法将按钮放在一起 我已经研究过这个话题 但似乎没有任何帮助 这是我的 XML 代码 Link http pastebin com d6gxDLTU 现在的显示方式如下 我的屏幕 https i stack imgur com ocagu
  • 使用javascript从mp3读取id3标签

    我知道以前已经有人问过这个问题 但我的条件有点不同 我正在制作一个 Chrome 应用程序 因此我可以访问它支持的所有最新 JavaScript 文件 api 而不必担心兼容性 更重要的是 我真的很想自己做这件事 即没有任何图书馆 教程或指
  • PostgreSQL 跨服务器查询? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法可以查询位于 服务器 2 上的数据库并获取 服务器 1 中的数据 那就是将一组记录从远程服务器返回到我的本地服务器 PS 不
  • char数组前面的&号会影响scanf吗?合法吗?

    我们平时输入字符串的时候是这样做的 include
  • Firefox 附加组件 window.navigator.userAgent 错误:窗口未定义

    我想得到userAgent https developer mozilla org en US docs Web API NavigatorID userAgent并想对其进行一些解析 我的代码是 var userAgentInfo use
  • SwiftUI - 如何添加 Scenekit 场景

    如何将 Scenekit 场景添加到 SwiftUI 视图 我使用标准船舶场景示例尝试了以下 Hello World import SwiftUI import SceneKit struct SwiftUIView View var bo
  • 以编程方式更改和刷新图标(无需重新启动)

    当我手动替换图标 即不是从资源管理器中的 文件夹选项 窗口 时 图标不会更新 例如 如果我执行此批处理代码 REG ADD HKCR testfile DefaultIcon ve d C test ico 0 f 图标在文件夹选项的列表中
  • EC2 服务器上的 MongoDB 还是 AWS SimpleDB?

    什么场景更有意义 托管多个安装了 MongoDB 的 EC2 实例 还是使用 Amazon SimpleDB Web 服务 当有多个带有 MongoDB 的 EC2 实例时 我遇到了自己设置实例的问题 当使用 SimpleDB 时 我遇到了