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

如何正確選擇NoSQL數(shù)據(jù)庫(kù)

譯文 精選
數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
本文在提出5個(gè)關(guān)鍵問題的基礎(chǔ)上,針對(duì)NoSQL數(shù)據(jù)的選擇向您介紹了當(dāng)前業(yè)界領(lǐng)先的幾款開源和商業(yè)類型NoSQL數(shù)據(jù)庫(kù)。

譯者 | 陳峻

審校 | 重樓

Allied Market Research最近發(fā)布的一份報(bào)告指出,業(yè)界對(duì)于NoSQL數(shù)據(jù)庫(kù)的需求正在持續(xù)上升。2022年,全球NoSQL市場(chǎng)的銷售額已達(dá)73億美元,預(yù)計(jì)到2032年將達(dá)到863億美元,而且其復(fù)合年增長(zhǎng)率為28%。其中,推動(dòng)全球NoSQL市場(chǎng)增長(zhǎng)的主要因素包括:更具可擴(kuò)展性和靈活性的企業(yè)級(jí)數(shù)據(jù)庫(kù)、對(duì)大數(shù)據(jù)分析的爆炸性需求,以及云計(jì)算平臺(tái)與技術(shù)的普及。

說到底,NoSQL數(shù)據(jù)庫(kù)是為了彌補(bǔ)在使用結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫(kù)查詢時(shí)的各種局限性而產(chǎn)生的。此類數(shù)據(jù)庫(kù)存儲(chǔ)和管理數(shù)據(jù)的方式,可以實(shí)現(xiàn)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(Relational Database Management System,RDBMS)所不具備的高效與靈活性。

那么,如果您的企業(yè)正在考慮是否遷移到NoSQL的話,面對(duì)業(yè)界二十多種開源和商業(yè)類型的NoSQL數(shù)據(jù)庫(kù),該如何選擇最適合本企業(yè)數(shù)據(jù)存儲(chǔ)需求的一種呢?下面,我將為您提供五個(gè)問題,作為選擇的參考依據(jù)。

NoSQL是正確的選擇嗎?

在開始選擇之前,重要的是要確定NoSQL是否能滿足您的實(shí)際需求。國(guó)際數(shù)據(jù)公司(IDC)研究副總裁Carl Olofson曾說,“后臺(tái)事務(wù)處理、頻繁的交互式應(yīng)用數(shù)據(jù)管理、以及流式數(shù)據(jù)捕獲”都是選擇NoSQL的充分理由。同時(shí),您需要捫心自問,為什么現(xiàn)有的RDBMS無法滿足自己的用例。畢竟許多企業(yè)已廣泛地安裝了關(guān)系型SQL數(shù)據(jù)庫(kù),并擁有熟練的技術(shù)人員進(jìn)行管理。當(dāng)然,NoSQL的核心優(yōu)勢(shì)在于其分散、可擴(kuò)展和容錯(cuò)的設(shè)計(jì)。而且,大多數(shù)NoSQL都是輕量級(jí)的,它們?cè)?/span>CPU和支持方面所需的開銷比RDBMS少。

此外,替代RDBMS的另一種方法是混合持久性(Polyglot Persistence),即:在單個(gè)系統(tǒng)中采用多種數(shù)據(jù)存儲(chǔ)技術(shù),以滿足不同的存儲(chǔ)需求。據(jù)此,開發(fā)人員可以為每一種用例選擇合適的數(shù)據(jù)技術(shù),而不是將所有數(shù)據(jù)都強(qiáng)行塞進(jìn)一種關(guān)系型模式中。

需要哪種NoSQL數(shù)據(jù)模型?

目前,NoSQL數(shù)據(jù)模型有四種主要模型,分別是鍵值、文檔、列存儲(chǔ)和圖。每一模型都適合不同的用例。我們可以將它們的優(yōu)勢(shì)總結(jié)如下:

  1. 鍵值數(shù)據(jù)庫(kù)旨在滿足零售和移動(dòng)等應(yīng)用的高可用性、以及低延遲要求。
  2. 文檔數(shù)據(jù)庫(kù)適合事件記錄、在線購(gòu)物、內(nèi)容管理和深入分析處理。
  3. 列存儲(chǔ)數(shù)據(jù)庫(kù)適用于事件記錄、內(nèi)容管理、計(jì)數(shù)和/或分類分析,并且可以設(shè)置自動(dòng)失效那些過期的數(shù)據(jù)。
  4. 圖數(shù)據(jù)庫(kù)非常適合數(shù)據(jù)元素的相互連接、以及關(guān)系數(shù)量不確定的應(yīng)用,包括:社交網(wǎng)絡(luò)、推薦引擎、物流和路由、位置感知系統(tǒng)、公交鏈接、以及網(wǎng)絡(luò)拓?fù)涞取?/span>

可見,文檔類型是最流行的,包括了以最佳方式存儲(chǔ)JSON文檔的能力;圖數(shù)據(jù)庫(kù)側(cè)重于相互關(guān)聯(lián)的數(shù)據(jù);而鍵值類型側(cè)重于對(duì)簡(jiǎn)單鍵值對(duì)的檢索,其應(yīng)用范圍并不廣泛。此外,一些多模型(Multi-model)數(shù)據(jù)庫(kù)還能提供多種類型的靈活性。

是否有延遲要求?

通常,我們對(duì)于數(shù)據(jù)庫(kù)的延遲要求可以毫秒、亞秒、秒、分鐘來界定。

  1. 如果您對(duì)延遲的要求極低,例如對(duì)于流式數(shù)據(jù)捕獲、或?qū)崟r(shí)數(shù)據(jù)共享的應(yīng)用而言,如果處理的是一些簡(jiǎn)單的列表或矩陣,就應(yīng)該考慮鍵值存儲(chǔ)。
  2. 如果數(shù)據(jù)的形式極易改變,并且包含了自定義的字段,那么JSON文檔數(shù)據(jù)庫(kù)更為合適。畢竟與之對(duì)應(yīng)的應(yīng)用往往是高交互式、且會(huì)隨著用戶需求的變化而不斷更改。
  3. 如果對(duì)延遲的要求不高,而且必須支持物料清單(bill-of-materials)結(jié)構(gòu)、或相互關(guān)聯(lián)的復(fù)雜數(shù)據(jù)組,那么可以考慮圖形DBMS

可擴(kuò)展性和數(shù)據(jù)一致性重要嗎?

NoSQL數(shù)據(jù)庫(kù)可以將數(shù)據(jù)分解成不同的片段(segment)或碎片(shard),這對(duì)運(yùn)行上TB級(jí)的大型部署而言非常實(shí)用。分片是NoSQL擴(kuò)展數(shù)據(jù)庫(kù)的基本功能,它能夠協(xié)助實(shí)現(xiàn)在橫向擴(kuò)展的集群中,自動(dòng)縮放節(jié)點(diǎn),從而使得應(yīng)用更加動(dòng)態(tài)靈活。

在數(shù)據(jù)一致性方面,關(guān)系型數(shù)據(jù)庫(kù)的重點(diǎn)是使用ACID合規(guī)性,來確保每筆交易的一致。而NoSQL則不然,它通過快速擴(kuò)展和提供高性能,來實(shí)現(xiàn)數(shù)據(jù)的最終一致性(Eventual Consistency)。

如何部署?

有些NoSQL數(shù)據(jù)庫(kù)可以在企業(yè)內(nèi)部運(yùn)行,有些只能在云端運(yùn)行,還有些可以在混合云的環(huán)境中運(yùn)行。其中,值得一提的是,部分NoSQL已與云計(jì)算架構(gòu)進(jìn)行了原生集成,可以運(yùn)行在無服務(wù)器和Kubernetes環(huán)境中。畢竟,那些既希望為自己的應(yīng)用提供良好的性能和可擴(kuò)展性,又希望通過自動(dòng)化去簡(jiǎn)化基礎(chǔ)架構(gòu)管理的用戶,都會(huì)選擇無服務(wù)器模式。

領(lǐng)先的NoSQL數(shù)據(jù)庫(kù)

如果您已根據(jù)上述五個(gè)問題決定選用NoSQL數(shù)據(jù)庫(kù)的話,那么下面我們來介紹一下目前市場(chǎng)上領(lǐng)先的各種NoSQL數(shù)據(jù)庫(kù)。

Aerospike

Aerospike是一種開源的分布式、實(shí)時(shí)、高性能NoSQL數(shù)據(jù)庫(kù),專為零容忍停機(jī)和高讀寫吞吐量的應(yīng)用而設(shè)計(jì)。作為一種多模型NoSQL和圖數(shù)據(jù)庫(kù),Aerospike支持不同模型的數(shù)據(jù)同步,對(duì)擴(kuò)展并不設(shè)限,以便企業(yè)能夠?qū)崟r(shí)處理數(shù)十億筆交易。根據(jù)其產(chǎn)品文檔,Aerospike采用了大規(guī)模并行和統(tǒng)一的存儲(chǔ)模型,以確保盡可能小得占用服務(wù)器空間。

同時(shí),該數(shù)據(jù)庫(kù)可以在邊緣處獲取流式數(shù)據(jù),并與記錄系統(tǒng)、第三方來源、數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)湖中的原有數(shù)據(jù)相結(jié)合,以用于后續(xù)的操作、交易或負(fù)載分析。Aerospike既可以在企業(yè)內(nèi)部運(yùn)行,也可以作為云管理服務(wù)運(yùn)行。

AWS DynamoDB

Amazon DynamoDB是一種無服務(wù)器、NoSQL、且全托管的數(shù)據(jù)庫(kù)服務(wù),可以在任何規(guī)模下提供毫秒級(jí)的響應(yīng)時(shí)間。該數(shù)據(jù)庫(kù)的最大賣點(diǎn)之一是它使得企業(yè)只有在開發(fā)和運(yùn)行應(yīng)用時(shí),才需要為使用付費(fèi)。

作為一項(xiàng)云原生的數(shù)據(jù)服務(wù),DynamoDB通過靜態(tài)加密來保護(hù)敏感數(shù)據(jù)。同時(shí),它允許用戶通過自創(chuàng)數(shù)據(jù)庫(kù)表,來存儲(chǔ)和檢索任意數(shù)量的數(shù)據(jù),并為任意級(jí)別的請(qǐng)求流量提供服務(wù)。據(jù)AWS稱,用戶具有自由擴(kuò)縮數(shù)據(jù)表的吞吐能力,而不會(huì)出現(xiàn)停機(jī)或性能下降。當(dāng)然,開發(fā)人員和管理員也可以使用AWS管理控制臺(tái),來監(jiān)控資源利用率和性能指標(biāo)。

此外,DynamoDB還提供了按需備份的能力。它允許用戶創(chuàng)建數(shù)據(jù)表的完整備份,以便長(zhǎng)期保留和遵從本地法規(guī)的需求。

Couchbase

Couchbase公司發(fā)布的Couchbase Server,是一個(gè)支持多模型JSON文檔數(shù)據(jù)庫(kù)平臺(tái)。作為一個(gè)內(nèi)置了緩存的開源NoSQL鍵值和文檔數(shù)據(jù)庫(kù),它適用于需要提供性能、多模型、可擴(kuò)容、以及自動(dòng)化數(shù)據(jù)庫(kù)的企業(yè)。

通常,企業(yè)可以利用該平臺(tái)來支持社交和移動(dòng)應(yīng)用、內(nèi)容與元數(shù)據(jù)存儲(chǔ)、以及電商交易等應(yīng)用。它為各種文檔、數(shù)據(jù)模型、索引、全文搜索、以及用于實(shí)時(shí)分析的MapReduce提供了全面的支持。

DataStax

DataStax Astra DB是一種基于Apache Cassandra的全托管云原生數(shù)據(jù)庫(kù)即服務(wù)。據(jù)稱,它可以實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展,并通過一系API和編程語言選項(xiàng),來加速開發(fā)人員構(gòu)建實(shí)時(shí)應(yīng)用,并對(duì)擴(kuò)展不設(shè)限。

同時(shí),開發(fā)人員也可以利用Astra DB的內(nèi)置安全機(jī)制(如專用鏈接、IP訪問控制、單點(diǎn)登錄、應(yīng)用令牌和數(shù)據(jù)加密),來實(shí)時(shí)確保數(shù)據(jù)安全。當(dāng)然,基于微服務(wù)和API優(yōu)先原則構(gòu)建的Astra DB無服務(wù)器架構(gòu),還可按需進(jìn)行自動(dòng)擴(kuò)展。

谷歌BigTable

谷歌聲稱Bigtable是一種企業(yè)級(jí)NoSQL數(shù)據(jù)庫(kù)服務(wù),具有低至個(gè)位數(shù)的毫秒級(jí)延遲、無限制的擴(kuò)展能力、以及99.999%的可用性。而且,它支持多租戶、混合操作和實(shí)時(shí)負(fù)載分析。

同時(shí),谷歌表示,作為一種鍵值和寬列(wide-column)存儲(chǔ),Bigtable是快速訪問結(jié)構(gòu)化、半結(jié)構(gòu)化、以及非結(jié)構(gòu)化數(shù)據(jù)的理想選擇。針對(duì)延遲敏感的個(gè)性化負(fù)載,Bigtable可以自動(dòng)擴(kuò)展其資源,以適應(yīng)服務(wù)器的流量,并按需處理相關(guān)分片、復(fù)制和查詢處理。

MarkLogic

MarkLogic Server是一個(gè)多模型數(shù)據(jù)庫(kù),它能夠?qū)⑽臋n、語義圖、地理空間和關(guān)系模型結(jié)合到單個(gè)可擴(kuò)展的、可操作的數(shù)據(jù)庫(kù)中。它為JSON、XML、文本、RDF三元組、地理空間和二進(jìn)制文件等提供了本地存儲(chǔ),并具有統(tǒng)一的搜索和查詢界面。

由于該數(shù)據(jù)庫(kù)的核心部分內(nèi)置了搜索引擎,提供了一個(gè)從silos處加載數(shù)據(jù),并搜索所有數(shù)據(jù)的單一平臺(tái),因此它不需要通過附加搜索引擎來進(jìn)行全文搜索。此外,MarkLogic Server還提供了DLP等企業(yè)級(jí)的數(shù)據(jù)安全控件。

微軟Azure Cosmos

Azure Cosmos DB作為微軟Azure的數(shù)據(jù)庫(kù)服務(wù),支持多種NoSQL模型和多種數(shù)據(jù)格式,其中包括JSON和二進(jìn)制數(shù)據(jù)等。微軟表示,該數(shù)據(jù)庫(kù)屬于全托管模式,由微軟Azure處理所有底層基礎(chǔ)架構(gòu),以便開發(fā)人員更專注于自己的應(yīng)用和數(shù)據(jù)。

Azure Cosmos DB不但提供了數(shù)據(jù)加密和數(shù)據(jù)訪問控制等安全工具,而且具有自動(dòng)和即時(shí)擴(kuò)展能力,更為MongoDBCassandra和其他NoSQL引擎提供了開源的API

MongoDB

MongoDB Inc.維護(hù)、以Gnu Affero通用公共許可證和Apache許可證的組合形式發(fā)布的MongoDB,是一個(gè)免費(fèi)的開源、跨平臺(tái)、且面向文檔的數(shù)據(jù)庫(kù)。它使用帶有模式的JSON類文檔,并結(jié)合了從優(yōu)化各類組織的數(shù)千次部署中,學(xué)到的最佳操作實(shí)踐。

作為一款基于云端的產(chǎn)品,它可以分布式數(shù)據(jù)庫(kù)集群的形式,處理數(shù)據(jù)庫(kù)管理,設(shè)置、配置和修補(bǔ)軟件、以及進(jìn)行監(jiān)控和備份??傮w而言,MongoDB的主要特點(diǎn)和功能包括:全面管理備份、恢復(fù)時(shí)間點(diǎn),提供實(shí)時(shí)性能面板、以及定制警報(bào)。

Redis

Redis Labs贊助的Redis Enterprise,是一種開源的鍵值NoSQL內(nèi)存數(shù)據(jù)庫(kù)。它支持寬松和嚴(yán)格的一致性、靈活的無模式模型、高可用性、以及易部署性。

Redis平臺(tái)支持諸如列表、集合、位圖和哈希值等各種鍵值數(shù)據(jù)結(jié)構(gòu),以及通過諸如搜索、圖、JSONXML等插件模塊支持的各種模型。Redis Enterprise包含了一個(gè)實(shí)時(shí)索引、查詢和全文搜索引擎,既可以在企業(yè)內(nèi)部使用,也能夠作為云中的托管服務(wù)被使用。

譯者介紹

陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對(duì)內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識(shí)與經(jīng)驗(yàn)。

原文標(biāo)題:How to choose the right NoSQL database,作者:Bob Violino

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2018-03-22 08:54:00

NoSQLRUM云服務(wù)

2019-07-23 11:41:45

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

2020-07-02 09:20:40

物聯(lián)網(wǎng)數(shù)據(jù)庫(kù)IoT

2019-06-26 07:25:47

NoSQL數(shù)據(jù)庫(kù)開發(fā)

2023-09-11 09:58:46

2021-03-28 17:14:38

數(shù)據(jù)庫(kù)APP技術(shù)

2024-02-02 10:51:53

2015-10-22 10:44:50

2015-03-17 09:24:15

NoSQL數(shù)據(jù)庫(kù)使用NoSQL

2015-10-22 10:52:34

NoSQL數(shù)據(jù)庫(kù)鍵值型數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)

2018-03-27 08:46:01

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

2010-06-01 12:51:23

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

2021-09-28 09:25:05

NoSQL數(shù)據(jù)庫(kù)列式數(shù)據(jù)庫(kù)

2018-11-02 08:30:43

開源數(shù)據(jù)庫(kù)技巧

2024-07-09 08:27:30

2018-05-22 14:16:35

云計(jì)算數(shù)據(jù)庫(kù)云原生

2011-10-09 09:38:03

OracleNoSQL

2010-04-29 11:53:42

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

2010-07-01 15:02:29

SQL Server數(shù)

2010-07-07 10:31:43

SQL Server數(shù)
點(diǎn)贊
收藏

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