您当前的位置:JZ5U绿色下载站文章中心设计学院Photoshop → 文章内容
  • DynamoDB、Hadoop和MongoDB测评

用户如何选择最能满足当前业务需求的数据库,通常取决于其开发团队的技术和已运用的应用程序。了解哪种数据库系统最适宜用户公司的当前和未来需求十分重要。数据库在一切行业和组织机构中都扮演着至关重要的角色。因此,能否能从需求和价钱两个维度选择最适合的数据库系统可能成为项目与战略成败间的分水岭。

随着公司数据存储方式的不时扩展,本文旨在比较公司运用的一些更现代的数据库系统——了解DynamoDB,Hadoop和MongoDB可以提供哪些功用将辅佐用户针对业务模型做出更好的决策。一切这些系统彼此间不一定都可以互换,而且在某些情况下,它们更像是比较苹果和橙子。但是,由于它们通常都属于NoSQL(译注:NoSQL泛指非关系型的数据库,NoSQL数据库促进了可扩展性,且能够辅佐Web应用减少开发时间)的范畴,这几个系统通常会被放在一同比较。

因此,我们先从引见每个系统开端,之后再中止比较。

DynamoDB基本简介:

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

DynamoDB是Amazon精心打造的一项NoSQL数据库效劳,可以作为Amazon Web Services(AWS)产品组合的一部分。

DynamoDB来源于Dynamo系统——一个高度可用的键值(key-value)存储系统。Amazon树立该系统的目的是避免像2004年假日电商促销活动呈现的系统中缀情况。

最初,由于Dynamo操作复杂性很高,并且需求在数据分歧性、性能、查询灵活性和可靠性之间中止权衡,即便是Amazon内部也只需少数团队采用了Dynamo系统。

而且在这期间,Amazon的开发人员更倾向运用SimpleDB NoSQL数据库,该数据库可以减轻用户数据库的管理工作。但是,由于SimpleDB遭到一些限制,最终限制了它的运用场景。

2012年推出的DynamoDB是AWS的数据库效劳,旨在打破Dynamo和SimpleDB的局限。

Hadoop基本简介:

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

Apache Hadoop软件库是一个框架,它允许运用简单的编程模型在计算机集群之间对大型数据集中止分布式处置。它旨在从单个效劳器扩展到数千台机器, 每台机器提供本地计算和存储。

Hadoop本身的目的是检测和处置应用层的缺点,而无须依托硬件来提供高的可用性。再深层次地看,Hadoop理论上是模块化的。这就意味着用户可以改换其中的任何部分,搭建成各种软件工具。这一过程完成了非常灵活、有效、强劲的体系架构。

MongoDB基本简介:

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

MongoDB是由MongoDB Inc创建的非表格和开放式数据库。发起者最初专注于创建一个完好运用开放源代码的平台,但为了获得现有数据库运用客群以满足其在云中构建效劳的需求,他们开端创建个人数据库系统。

认识到创建数据库软件的可能性之后,该团队就将重点转移到了创建MongoDB上。2009年发布的MongoDB旨在创建一个技术基础,使开发团队能够获得分布式系统设计、文档数据模型和统一的体验。

2016年,MongoDB推出云托管数据库效劳MongoDB Atlas。MongoDB Atlas提供了正版MongoDB效劳,运用户可以摆脱细致的操作任务。

往常来说说差异。

运用、设置和管理的便利性

DynamoDB

DynamoDB的托管效劳将用户从底层基础结构中解放出来,并且仅经过远程端点与数据库中止交互。用户运用DynamoDB时无需担忧操作问题或关注其他硬件规则,这使得DynamoDB非常容易上手。

Hadoop

Hadoop在设置方面有选择多样,无需笼统(abstraction,译注:数据笼统是一种仅向用户暴露接口而把细致的完成细节躲藏起来的机制。),仅凭命令行(command-line)即可完成管理Hadoop。当然,这意味着用户需求熟习命令行,并了解如何设置硬件。由于其复杂性,已有多家公司(例如Cloudera)盘绕Hadoop开发产品,辅佐用户减轻管理Hadoop的复杂工作。

假设做得好,运用上述第三方公司的产品可为用户俭省成千上万的人事费用(由于雇用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的定价模型非常昂贵(译注:吞吐量高,招致存储本钱高)。

-低延迟读取还不够低。

-跨区域的并行写入将招致数据丧失,并且跨区域的读取无法坚持高度分歧。

-难以设置持续集成/持续托付(CI/CD)管道。

-缺点扫除困难(诸如识别招致分区变热的确切密钥之类的简单操作也很复杂)。

-耐久性和分歧性应用场景尚不普遍。

-不兼容ACID事务和分歧的二级索引。

Hadoop

Hadoop在性能方面存在以下突出问题::

-DataNode和NameNode(在HDFS中有两种节点,分别是NameNode和DataNode)变慢。

-MapReduce数据本地化。

-TaskTracker的性能以及对时间间隔的影响。

MongoDB

MongoDB在性能方面存在以下突出问题:

-设计与访问方式和架构相别离的索引非常重要。

-大型处置对象和大型数组异常的问题。

-安全性和耐用性设置仍令人担忧。

-没有优化查询模块(Query optimizer,特地担任优化SELECT语句的优化器模块)。

除了这些差异,用户总能看到有支持工具悬浮在系统上,以进一步支持数据系统管理。

我们来看一些工具:

Rockset

Rockset是云中可扩展、可靠的搜索和分析效劳,仅运用SQL查询言语,便可在TB级别的数据量级上构建快速的操作应用程序。

这是Rockset的最大好处。运用Rockset工具,用户的团队无需熟习另一种查询言语。

NoSQLBooster

NoSQLBooster是用于衔接收理MongoDB的图形用户接口(GUI)。此外,它还允许用户同时运用SQL语法和MongoDB语法中止查询。

因此,它不只使管理数据库愈加容易(想想运用SQL Server Management Studio时的场景),而且还使分析人员更容易运转查询程序来回答业务问题。

Sqoop

Apache Sqoop(TM)是一种用于在Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具。该类工具有助于简化与Hadoop的交互,可被称为ETL工具。

结论

DynamoDB,Hadoop和MongoDB这三个数据库系统很不一样,彼此之前并不总能互换运用。而且每个数据库都有其优缺陷以及用例。

上文中突出强调的内容旨在辅佐用户更好地选择适合自身的数据库系统。用户根据其组织范围,采用这些数据库系统中的任何一个都可以处置多样化的数据类型、获得有效的应用程序管理效劳以及更多其他效劳。


  • 作者:互联网  来源:本站整理  发布时间:2019-10-23 14:45:37


------------------------------- · 相关文档浏览 · --------------------------------------------------------------------- · 热门文档浏览 · -------------------------------------