自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

公司如何選擇數(shù)據(jù)庫(kù)?DynamoDB、Hadoop和MongoDB 大比拼

數(shù)據(jù)庫(kù) Hadoop MongoDB
隨著公司數(shù)據(jù)存儲(chǔ)方式的不斷擴(kuò)展,本文旨在比較公司使用的一些更現(xiàn)代的數(shù)據(jù)庫(kù)系統(tǒng)——了解DynamoDB,Hadoop和MongoDB可以提供哪些功能將幫助用戶針對(duì)業(yè)務(wù)模型做出更好的決策。

用戶如何選擇最能滿足當(dāng)前業(yè)務(wù)需求的數(shù)據(jù)庫(kù),通常取決于其開(kāi)發(fā)團(tuán)隊(duì)的技術(shù)和已使用的應(yīng)用程序。了解哪種數(shù)據(jù)庫(kù)系統(tǒng)最適合用戶公司的當(dāng)前和未來(lái)需求十分重要。數(shù)據(jù)庫(kù)在所有行業(yè)和組織機(jī)構(gòu)中都扮演著至關(guān)重要的角色。因此,是否能從需求和價(jià)格兩個(gè)維度選擇最合適的數(shù)據(jù)庫(kù)系統(tǒng)可能成為項(xiàng)目與戰(zhàn)略成敗間的分水嶺。

隨著公司數(shù)據(jù)存儲(chǔ)方式的不斷擴(kuò)展,本文旨在比較公司使用的一些更現(xiàn)代的數(shù)據(jù)庫(kù)系統(tǒng)——了解DynamoDB,Hadoop和MongoDB可以提供哪些功能將幫助用戶針對(duì)業(yè)務(wù)模型做出更好的決策。所有這些系統(tǒng)彼此間不一定都可以互換,而且在某些情況下,它們更像是比較蘋(píng)果和橙子。但是,由于它們通常都屬于NoSQL(譯注:NoSQL泛指非關(guān)系型的數(shù)據(jù)庫(kù),NoSQL數(shù)據(jù)庫(kù)促進(jìn)了可擴(kuò)展性,且能夠幫助Web應(yīng)用減少開(kāi)發(fā)時(shí)間)的范疇,這幾個(gè)系統(tǒng)通常會(huì)被放在一起比較。

因此,我們先從介紹每個(gè)系統(tǒng)開(kāi)始,之后再進(jìn)行比較。

什么是DynamoDB ?

 

公司如何選擇數(shù)據(jù)庫(kù)?DynamoDB、Hadoop和MongoDB 大比拼

DynamoDB是Amazon精心打造的一項(xiàng)NoSQL數(shù)據(jù)庫(kù)服務(wù),可以作為Amazon Web Services(AWS)產(chǎn)品組合的一部分。

DynamoDB起源于Dynamo系統(tǒng)——一個(gè)高度可用的鍵值(key-value)存儲(chǔ)系統(tǒng)。Amazon建立該系統(tǒng)的目的是避免像2004年假日電商促銷(xiāo)活動(dòng)出現(xiàn)的系統(tǒng)中斷情況。

最初,由于Dynamo操作復(fù)雜性很高,并且需要在數(shù)據(jù)一致性、性能、查詢靈活性和可靠性之間進(jìn)行權(quán)衡,即便是Amazon內(nèi)部也只有少數(shù)團(tuán)隊(duì)采用了Dynamo系統(tǒng)。

而且在這期間,Amazon的開(kāi)發(fā)人員更傾向使用SimpleDB NoSQL數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)可以減輕用戶數(shù)據(jù)庫(kù)的管理工作。但是,由于SimpleDB受到一些限制,最終限制了它的使用場(chǎng)景。

2012年推出的DynamoDB是AWS的數(shù)據(jù)庫(kù)服務(wù),旨在打破Dynamo和SimpleDB的局限。

什么是Hadoop?

 

公司如何選擇數(shù)據(jù)庫(kù)?DynamoDB、Hadoop和MongoDB 大比拼

Apache Hadoop軟件庫(kù)是一個(gè)框架,它允許使用簡(jiǎn)單的編程模型在計(jì)算機(jī)集群之間對(duì)大型數(shù)據(jù)集進(jìn)行分布式處理。它旨在從單個(gè)服務(wù)器擴(kuò)展到數(shù)千臺(tái)機(jī)器, 每臺(tái)機(jī)器提供本地計(jì)算和存儲(chǔ)。

Hadoop本身的目的是檢測(cè)和處理應(yīng)用層的故障,而無(wú)須依靠硬件來(lái)提供高的可用性。再深層次地看,Hadoop實(shí)際上是模塊化的。這就意味著用戶可以更換其中的任何部分,搭建成各種軟件工具。這一過(guò)程實(shí)現(xiàn)了非常靈活、有效、強(qiáng)勁的體系架構(gòu)。

什么是MongoDB?

 

公司如何選擇數(shù)據(jù)庫(kù)?DynamoDB、Hadoop和MongoDB 大比拼

MongoDB是由MongoDB Inc創(chuàng)建的非表格和開(kāi)放式數(shù)據(jù)庫(kù)。發(fā)起者最初專(zhuān)注于創(chuàng)建一個(gè)完全使用開(kāi)放源代碼的平臺(tái),但為了獲得現(xiàn)有數(shù)據(jù)庫(kù)使用客群以滿足其在云中構(gòu)建服務(wù)的需求,他們開(kāi)始創(chuàng)建個(gè)人數(shù)據(jù)庫(kù)系統(tǒng)。

意識(shí)到創(chuàng)建數(shù)據(jù)庫(kù)軟件的可能性之后,該團(tuán)隊(duì)就將重點(diǎn)轉(zhuǎn)移到了創(chuàng)建MongoDB上。2009年發(fā)布的MongoDB旨在創(chuàng)建一個(gè)技術(shù)基礎(chǔ),使開(kāi)發(fā)團(tuán)隊(duì)能夠獲得分布式系統(tǒng)設(shè)計(jì)、文檔數(shù)據(jù)模型和統(tǒng)一的體驗(yàn)。

2016年,MongoDB推出云托管數(shù)據(jù)庫(kù)服務(wù)MongoDB Atlas。MongoDB Atlas提供了正版MongoDB服務(wù),使用戶可以擺脫具體的操作任務(wù)。

現(xiàn)在來(lái)說(shuō)說(shuō)差異。

使用、設(shè)置和管理的便捷性

DynamoDB

DynamoDB的托管服務(wù)將用戶從底層基礎(chǔ)結(jié)構(gòu)中解放出來(lái),并且僅通過(guò)遠(yuǎn)程端點(diǎn)與數(shù)據(jù)庫(kù)進(jìn)行交互。用戶使用DynamoDB時(shí)無(wú)需擔(dān)心操作問(wèn)題或關(guān)注其他硬件規(guī)定,這使得DynamoDB非常容易上手。

Hadoop

Hadoop在設(shè)置方面有選擇多樣,無(wú)需抽象(abstraction,譯注:數(shù)據(jù)抽象是一種僅向用戶暴露接口而把具體的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái)的機(jī)制。),僅憑命令行(command-line)即可實(shí)現(xiàn)管理Hadoop。當(dāng)然,這意味著用戶需要熟悉命令行,并了解如何設(shè)置硬件。由于其復(fù)雜性,已有多家公司(例如Cloudera)圍繞Hadoop開(kāi)發(fā)產(chǎn)品,幫助用戶減輕管理Hadoop的復(fù)雜工作。

如果做得好,使用上述第三方公司的產(chǎn)品可為用戶節(jié)省成千上萬(wàn)的人事費(fèi)用(因?yàn)楣陀肏adoop工程師通常要花費(fèi)15萬(wàn)美元以上)。

MongoDB

MongoDB不是SaaS服務(wù),它是最容易直接管理的數(shù)據(jù)系統(tǒng)之一。用戶可以輕松下載并快速開(kāi)始與MongoDB進(jìn)行交互。

質(zhì)量支持

DynamoDB

DynamoDB用戶可通過(guò)社區(qū)支持論壇、企業(yè)支持、ServerFault和Stack Overflow獲得質(zhì)量支持。

DynamoDB社區(qū)提供示例應(yīng)用程序、驅(qū)動(dòng)程序、擴(kuò)展程序和支持工具。此外,由于DynamoDB是AWS的一部分,因此用戶可直接根據(jù)其的業(yè)務(wù)規(guī)模向Amazon獲得進(jìn)一步的支持。

Hadoop

多家公司提供了針對(duì)Hadoop的商業(yè)服務(wù),并提供專(zhuān)業(yè)的技術(shù)支持。而Hadoop已經(jīng)存在了很長(zhǎng)時(shí)間,已經(jīng)擁有多個(gè)社區(qū)支持論壇、支持工具和課程支持,可幫助用戶提高使用系統(tǒng)進(jìn)行管理和開(kāi)發(fā)的能力。

就個(gè)人而言,如果用戶使用的是Hadoop原始軟件,我們認(rèn)為Hadoop可能是很難獲得質(zhì)量支持的系統(tǒng)之一。但是,鑒于這么多第三方介入,我們認(rèn)為多數(shù)大公司可以將Hadoop視為數(shù)據(jù)存儲(chǔ)系統(tǒng)。

MongoDB

MongoDB提供社區(qū)支持論壇、ServerFault和Stack Overflow。其用戶還可以獲得每周七天,每天24小時(shí)的企業(yè)支持。除此之外,MongoDB社區(qū)還會(huì)組織活動(dòng)、MongoDB大學(xué)、用戶組和網(wǎng)絡(luò)研討會(huì)的相關(guān)信息。

數(shù)據(jù)庫(kù)結(jié)構(gòu)

DynamoDB

DynamoDB將屬性、項(xiàng)目和表作為核心部分,以便用戶經(jīng)常使用。

  • 表涉及眾多項(xiàng)目,而單個(gè)項(xiàng)目又是屬性的組合。
  • 此外,DynamoDB使用主碼(primary key)專(zhuān)門(mén)標(biāo)識(shí)表中的單個(gè)項(xiàng)目。
  • 使用二級(jí)索引可實(shí)現(xiàn)更高的查詢靈活性。

MongoDB

MongoDB在存儲(chǔ)模式自由數(shù)據(jù)時(shí)采用了類(lèi)似JSON格式的doc文件。

MongoDB中的文檔集合并不包含預(yù)定義的列和結(jié)構(gòu),這些預(yù)定義的列和結(jié)構(gòu)可能因各種文檔而有所不同。關(guān)系數(shù)據(jù)庫(kù)中MongoDB的一些特點(diǎn)包括:

  • 查詢語(yǔ)言易于閱讀。
  • 一致性強(qiáng)。

由于其模式自由,MongoDB允許不在先創(chuàng)建文檔結(jié)構(gòu)的情況下創(chuàng)建文檔。

MongoDB與關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)的主要對(duì)比包括:

  • 表|列|值|記錄

與MongoDB相比,它包括:

  • 集合|鍵|值|文檔

這種方法意味著MongoDB的集合和RDBMS的表是相似的。此外,文檔與記錄也類(lèi)似。

Hadoop

Hadoop不限定數(shù)據(jù)結(jié)構(gòu)。從本質(zhì)上講,它只接受在系統(tǒng)上使用的數(shù)據(jù)類(lèi)型。Hadoop采用讀時(shí)模式,提高了其對(duì)所有數(shù)據(jù)集的通用性。

Hadoop中的所有數(shù)據(jù)都存儲(chǔ)為文件系統(tǒng),Hive和Immpala等建立在Hadoop文件系統(tǒng)上的數(shù)據(jù)倉(cāng)儲(chǔ)架構(gòu)則使用戶能夠以表格式查看基礎(chǔ)數(shù)據(jù)。

如果用戶要通過(guò)Hadoop原始軟件來(lái)管理Hadoop,這將變得非常復(fù)雜。因?yàn)橛脩暨x擇和編碼的文件類(lèi)型在從速度到空間的所有方面都起巨大作用,撤銷(xiāo)操作也會(huì)變得非常困難。

用戶的商業(yè)權(quán)利

DynamoDB

在游戲和物聯(lián)網(wǎng)(IoT)領(lǐng)域,DynamoDB仍然是一個(gè)受歡迎的選擇。如果用戶使用AWS堆棧并且需要一個(gè)NoSQL數(shù)據(jù)庫(kù),那么使用DynamoDB是一個(gè)不錯(cuò)的選擇。注意:一旦使用DynamoDB,用戶可能無(wú)法像在MongoDB上那樣訪問(wèn)嵌入式數(shù)據(jù)結(jié)構(gòu)。

Hadoop

Hadoop是大型企業(yè)中比較熱門(mén)的選擇,因?yàn)榇笮推髽I(yè)需要服務(wù)器集群,而專(zhuān)門(mén)的數(shù)據(jù)管理、編程技能和高成本的實(shí)施方式對(duì)于這些服務(wù)器集群來(lái)講并不是問(wèn)題。

在構(gòu)建未來(lái)的企業(yè)數(shù)據(jù)中心方面,Hadoop也可以積極發(fā)揮作用。它可能很難管理(這取決于用戶決定如何管理、有或沒(méi)有第三方),但它同時(shí)也帶來(lái)了很多優(yōu)勢(shì)。

MongoDB

在高速緩存和可伸縮性(scalability)特點(diǎn)上,MongoDB是個(gè)極好的選擇。

MongoDB在Web開(kāi)發(fā)中也起著重要作用,它可以使后端到前端的文檔樣式數(shù)據(jù)傳遞變得容易。對(duì)于創(chuàng)建內(nèi)容管理系統(tǒng)的公司來(lái)說(shuō),選擇MongoDB可以讓管理數(shù)據(jù)變得簡(jiǎn)單。

性能問(wèn)題

DynamoDB

DynamoDB在性能方面存在以下突出問(wèn)題:

  • DynamoDB的定價(jià)模型非常昂貴(譯注:吞吐量高,導(dǎo)致存儲(chǔ)成本高)。
  • 低延遲讀取還不夠低。
  • 跨區(qū)域的并行寫(xiě)入將導(dǎo)致數(shù)據(jù)丟失,并且跨區(qū)域的讀取無(wú)法保持高度一致。
  • 難以設(shè)置持續(xù)集成/持續(xù)交付(CI/CD)管道。
  • 故障排除困難(諸如識(shí)別導(dǎo)致分區(qū)變熱的確切密鑰之類(lèi)的簡(jiǎn)單操作也很復(fù)雜)。
  • 持久性和一致性應(yīng)用場(chǎng)景尚不廣泛。
  • 不兼容ACID事務(wù)和一致的二級(jí)索引。

Hadoop

Hadoop在性能方面存在以下突出問(wèn)題::

  • DataNode和NameNode(在HDFS中有兩種節(jié)點(diǎn),分別是NameNode和DataNode)變慢。
  • MapReduce數(shù)據(jù)本地化。
  • TaskTracker的性能以及對(duì)時(shí)間間隔的影響。

MongoDB

MongoDB在性能方面存在以下突出問(wèn)題:

  • 設(shè)計(jì)與訪問(wèn)模式和架構(gòu)相結(jié)合的索引非常重要。
  • 大型處理對(duì)象和大型數(shù)組異常的問(wèn)題。
  • 安全性和耐用性設(shè)置仍令人擔(dān)憂。
  • 沒(méi)有優(yōu)化查詢模塊(Query optimizer,專(zhuān)門(mén)負(fù)責(zé)優(yōu)化SELECT語(yǔ)句的優(yōu)化器模塊)。

除了這些差異,用戶總能看到有支持工具懸浮在系統(tǒng)上,以進(jìn)一步支持?jǐn)?shù)據(jù)系統(tǒng)管理。

我們來(lái)看一些工具:

Rockset

Rockset是云中可擴(kuò)展、可靠的搜索和分析服務(wù),僅使用SQL查詢語(yǔ)言,便可在TB級(jí)別的數(shù)據(jù)量級(jí)上構(gòu)建快速的操作應(yīng)用程序。

這是Rockset的最大好處。使用Rockset工具,用戶的團(tuán)隊(duì)無(wú)需熟悉另一種查詢語(yǔ)言。

NoSQLBooster

NoSQLBooster是用于連接管理MongoDB的圖形用戶接口(GUI)。此外,它還允許用戶同時(shí)使用SQL語(yǔ)法和MongoDB語(yǔ)法進(jìn)行查詢。

因此,它不僅使管理數(shù)據(jù)庫(kù)更加容易(想想使用SQL Server Management Studio時(shí)的場(chǎng)景),而且還使分析人員更容易運(yùn)行查詢程序來(lái)回答業(yè)務(wù)問(wèn)題。

Sqoop

Apache Sqoop(TM)是一種用于在Hadoop和結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)(如關(guān)系數(shù)據(jù)庫(kù))之間高效傳輸批量數(shù)據(jù)的工具。該類(lèi)工具有助于簡(jiǎn)化與Hadoop的交互,可被稱(chēng)為ETL工具。

結(jié)論

DynamoDB,Hadoop和MongoDB這三個(gè)數(shù)據(jù)庫(kù)系統(tǒng)很不一樣,彼此之前并不總能互換使用。而且每個(gè)數(shù)據(jù)庫(kù)都有其優(yōu)缺點(diǎn)以及用例。

上文中突出強(qiáng)調(diào)的內(nèi)容旨在幫助用戶更好地選擇合適自身的數(shù)據(jù)庫(kù)系統(tǒng)。用戶根據(jù)其組織規(guī)模,采用這些數(shù)據(jù)庫(kù)系統(tǒng)中的任何一個(gè)都可以處理多樣化的數(shù)據(jù)類(lèi)型、獲得有效的應(yīng)用程序管理服務(wù)以及更多其他服務(wù)。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2020-12-18 09:00:00

數(shù)據(jù)庫(kù)MongoDBPostgreSQL

2023-11-14 09:00:00

向量數(shù)據(jù)庫(kù)ChromaMilvus

2020-08-04 17:06:40

Merging Rebasing Git

2010-05-28 11:09:51

SVN功能

2011-01-19 11:10:30

2016-11-02 09:20:01

SparkHadoop MapR大數(shù)據(jù)

2010-03-18 14:54:46

主流無(wú)線技術(shù)

2024-07-19 08:33:56

2010-05-24 18:15:34

SVN中Branch和

2010-07-14 13:38:51

Perl開(kāi)發(fā)工具

2014-01-07 17:08:02

Java開(kāi)源框架

2010-09-08 15:41:28

SIP協(xié)議棧

2017-09-10 14:29:03

眼力

2010-08-25 16:12:34

職場(chǎng)

2021-03-15 21:07:17

IT行業(yè)薪酬薪水

2023-05-26 15:53:48

MidjourneyAI圖像

2011-11-08 10:29:44

2019-07-13 15:00:17

結(jié)構(gòu)化SQLNOSQL數(shù)據(jù)庫(kù)

2010-09-07 17:24:44

DB2數(shù)據(jù)庫(kù)

2024-02-22 13:55:41

前端動(dòng)畫(huà)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)