公司如何选择数据库?DynamoDB、Hadoop和MongoDB 大比拼( 二 )


如果做得好 , 使用上述第三方公司的产品可为用户节省成千上万的人事费用(因为雇用Hadoop工程师通常要花费15万美元以上) 。
MongoDB
MongoDB不是SaaS服务 , 它是最容易直接管理的数据系统之一 。用户可以轻松下载并快速开始与MongoDB进行交互 。
质量支持
DynamoDB
DynamoDB用户可通过社区支持论坛、企业支持、ServerFault和Stack Overflow获得质量支持 。
DynamoDB社区提供示例应用程序、驱动程序、扩展程序和支持工具 。此外 , 由于DynamoDB是AWS的一部分 , 因此用户可直接根据其的业务规模向Amazon获得进一步的支持 。
Hadoop
多家公司提供了针对Hadoop的商业服务 , 并提供专业的技术支持 。而Hadoop已经存在了很长时间 , 已经拥有多个社区支持论坛、支持工具和课程支持 , 可帮助用户提高使用系统进行管理和开发的能力 。
就个人而言 , 如果用户使用的是Hadoop原始软件 , 我们认为Hadoop可能是很难获得质量支持的系统之一 。但是 , 鉴于这么多第三方介入 , 我们认为多数大公司可以将Hadoop视为数据存储系统 。
MongoDB
MongoDB提供社区支持论坛、ServerFault和Stack Overflow 。其用户还可以获得每周七天 , 每天24小时的企业支持 。除此之外 , MongoDB社区还会组织活动、MongoDB大学、用户组和网络研讨会的相关信息 。
数据库结构
DynamoDB
DynamoDB将属性、项目和表作为核心部分 , 以便用户经常使用 。
-表涉及众多项目 , 而单个项目又是属性的组合 。
-此外 , DynamoDB使用主码(primary key)专门标识表中的单个项目 。
-使用二级索引可实现更高的查询灵活性 。
MongoDB
MongoDB在存储模式自由数据时采用了类似JSON格式的doc文件 。
MongoDB中的文档集合并不包含预定义的列和结构 , 这些预定义的列和结构可能因各种文档而有所不同 。关系数据库中MongoDB的一些特点包括:
-查询语言易于阅读 。
-一致性强 。
由于其模式自由 , MongoDB允许不在先创建文档结构的情况下创建文档 。
MongoDB与关系数据库管理系统(RDBMS)的主要对比包括:
表|列|值|记录
与MongoDB相比 , 它包括:
集合|键|值|文档
这种方法意味着MongoDB的集合和RDBMS的表是相似的 。此外 , 文档与记录也类似 。
Hadoop
Hadoop不限定数据结构 。从本质上讲 , 它只接受在系统上使用的数据类型 。Hadoop采用读时模式 , 提高了其对所有数据集的通用性 。
Hadoop中的所有数据都存储为文件系统 , Hive和Immpala等建立在Hadoop文件系统上的数据仓储架构则使用户能够以表格式查看基础数据 。
如果用户要通过Hadoop原始软件来管理Hadoop , 这将变得非常复杂 。因为用户选择和编码的文件类型在从速度到空间的所有方面都起巨大作用 , 撤销操作也会变得非常困难 。
用户的商业权利
DynamoDB
在游戏和物联网(IoT)领域 , DynamoDB仍然是一个受欢迎的选择 。如果用户使用AWS堆栈并且需要一个NoSQL数据库 , 那么使用DynamoDB是一个不错的选择 。注意:一旦使用DynamoDB , 用户可能无法像在MongoDB上那样访问嵌入式数据结构 。
Hadoop
Hadoop是大型企业中比较热门的选择 , 因为大型企业需要服务器集群 , 而专门的数据管理、编程技能和高成本的实施方式对于这些服务器集群来讲并不是问题 。
在构建未来的企业数据中心方面 , Hadoop也可以积极发挥作用 。它可能很难管理(这取决于用户决定如何管理、有或没有第三方) , 但它同时也带来了很多优势 。
MongoDB
在高速缓存和可伸缩性(scalability)特点上 , MongoDB是个极好的选择 。
MongoDB在Web开发中也起着重要作用 , 它可以使后端到前端的文档样式数据传递变得容易 。对于创建内容管理系统的公司来说 , 选择MongoDB可以让管理数据变得简单 。
性能问题
DynamoDB
DynamoDB在性能方面存在以下突出问题:
-DynamoDB的定价模型非常昂贵(译注:吞吐量高 , 导致存储成本高) 。
-低延迟读取还不够低 。
-跨区域的并行写入将导致数据丢失 , 并且跨区域的读取无法保持高度一致 。


推荐阅读