日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:52000
  • 待審:37
  • 小程序:12
  • 文章:1037587
  • 會員:756

譯者 | 陳峻

審校 | 重樓

Allied Market Research最近發布的一份報告指出,業界對于NoSQL數據庫的需求正在持續上升。2022年,全球NoSQL市場的銷售額已達73億美元,預計到2032年將達到863億美元,而且其復合年增長率為28%。其中,推動全球NoSQL市場增長的主要因素包括:更具可擴展性和靈活性的企業級數據庫、對大數據分析的爆炸性需求,以及云計算平臺與技術的普及。

說到底,NoSQL數據庫是為了彌補在使用結構化查詢語言(SQL)進行數據庫查詢時的各種局限性而產生的。此類數據庫存儲和管理數據的方式,可以實現傳統關系型數據庫管理系統(Relational Database Management System,RDBMS)所不具備的高效與靈活性。

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

NoSQL是正確的選擇嗎?

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

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

需要哪種NoSQL數據模型?

目前,NoSQL數據模型有四種主要模型,分別是鍵值、文檔、列存儲和圖。每一模型都適合不同的用例。我們可以將它們的優勢總結如下:

  1. 鍵值數據庫旨在滿足零售和移動等應用的高可用性、以及低延遲要求。
  2. 文檔數據庫適合事件記錄、在線購物、內容管理和深入分析處理。
  3. 列存儲數據庫適用于事件記錄、內容管理、計數和/或分類分析,并且可以設置自動失效那些過期的數據。
  4. 圖數據庫非常適合數據元素的相互連接、以及關系數量不確定的應用,包括:社交網絡、推薦引擎、物流和路由、位置感知系統、公交鏈接、以及網絡拓撲等。

可見,文檔類型是最流行的,包括了以最佳方式存儲JSON文檔的能力;圖數據庫側重于相互關聯的數據;而鍵值類型側重于對簡單鍵值對的檢索,其應用范圍并不廣泛。此外,一些多模型(Multi-model)數據庫還能提供多種類型的靈活性。

是否有延遲要求?

通常,我們對于數據庫的延遲要求可以毫秒、亞秒、秒、分鐘來界定。

  1. 如果您對延遲的要求極低,例如對于流式數據捕獲、或實時數據共享的應用而言,如果處理的是一些簡單的列表或矩陣,就應該考慮鍵值存儲。
  2. 如果數據的形式極易改變,并且包含了自定義的字段,那么JSON文檔數據庫更為合適。畢竟與之對應的應用往往是高交互式、且會隨著用戶需求的變化而不斷更改。
  3. 如果對延遲的要求不高,而且必須支持物料清單(bill-of-materials)結構、或相互關聯的復雜數據組,那么可以考慮圖形DBMS。

可擴展性和數據一致性重要嗎?

NoSQL數據庫可以將數據分解成不同的片段(segment)或碎片(shard),這對運行上TB級的大型部署而言非常實用。分片是NoSQL擴展數據庫的基本功能,它能夠協助實現在橫向擴展的集群中,自動縮放節點,從而使得應用更加動態靈活。

在數據一致性方面,關系型數據庫的重點是使用ACID合規性,來確保每筆交易的一致。而NoSQL則不然,它通過快速擴展和提供高性能,來實現數據的最終一致性(Eventual Consistency)。

如何部署?

有些NoSQL數據庫可以在企業內部運行,有些只能在云端運行,還有些可以在混合云的環境中運行。其中,值得一提的是,部分NoSQL已與云計算架構進行了原生集成,可以運行在無服務器和Kube.NETes環境中。畢竟,那些既希望為自己的應用提供良好的性能和可擴展性,又希望通過自動化去簡化基礎架構管理的用戶,都會選擇無服務器模式。

領先的NoSQL數據庫

如果您已根據上述五個問題決定選用NoSQL數據庫的話,那么下面我們來介紹一下目前市場上領先的各種NoSQL數據庫。

Aerospike

Aerospike是一種開源的分布式、實時、高性能NoSQL數據庫,專為零容忍停機和高讀寫吞吐量的應用而設計。作為一種多模型NoSQL和圖數據庫,Aerospike支持不同模型的數據同步,對擴展并不設限,以便企業能夠實時處理數十億筆交易。根據其產品文檔,Aerospike采用了大規模并行和統一的存儲模型,以確保盡可能小得占用服務器空間。

同時,該數據庫可以在邊緣處獲取流式數據,并與記錄系統、第三方來源、數據倉庫或數據湖中的原有數據相結合,以用于后續的操作、交易或負載分析。Aerospike既可以在企業內部運行,也可以作為云管理服務運行。

AWS DynamoDB

Amazon DynamoDB是一種無服務器、NoSQL、且全托管的數據庫服務,可以在任何規模下提供毫秒級的響應時間。該數據庫的最大賣點之一是它使得企業只有在開發和運行應用時,才需要為使用付費。

作為一項云原生的數據服務,DynamoDB通過靜態加密來保護敏感數據。同時,它允許用戶通過自創數據庫表,來存儲和檢索任意數量的數據,并為任意級別的請求流量提供服務。據AWS稱,用戶具有自由擴縮數據表的吞吐能力,而不會出現停機或性能下降。當然,開發人員和管理員也可以使用AWS管理控制臺,來監控資源利用率和性能指標。

此外,DynamoDB還提供了按需備份的能力。它允許用戶創建數據表的完整備份,以便長期保留和遵從本地法規的需求。

Couchbase

由Couchbase公司發布的Couchbase Server,是一個支持多模型JSON文檔數據庫平臺。作為一個內置了緩存的開源NoSQL鍵值和文檔數據庫,它適用于需要提供性能、多模型、可擴容、以及自動化數據庫的企業。

通常,企業可以利用該平臺來支持社交和移動應用、內容與元數據存儲、以及電商交易等應用。它為各種文檔、數據模型、索引、全文搜索、以及用于實時分析的MapReduce提供了全面的支持。

DataStax

DataStax Astra DB是一種基于Apache Cassandra的全托管云原生數據庫即服務。據稱,它可以實現動態擴展,并通過一系列API和編程語言選項,來加速開發人員構建實時應用,并對擴展不設限。

同時,開發人員也可以利用Astra DB的內置安全機制(如專用鏈接、IP訪問控制、單點登錄、應用令牌和數據加密),來實時確保數據安全。當然,基于微服務和API優先原則構建的Astra DB無服務器架構,還可按需進行自動擴展。

谷歌BigTable

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

同時,谷歌表示,作為一種鍵值和寬列(wide-column)存儲,Bigtable是快速訪問結構化、半結構化、以及非結構化數據的理想選擇。針對延遲敏感的個性化負載,Bigtable可以自動擴展其資源,以適應服務器的流量,并按需處理相關分片、復制和查詢處理。

MarkLogic

MarkLogic Server是一個多模型數據庫,它能夠將文檔、語義圖、地理空間和關系模型結合到單個可擴展的、可操作的數據庫中。它為JSON、XML、文本、RDF三元組、地理空間和二進制文件等提供了本地存儲,并具有統一的搜索和查詢界面。

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

微軟Azure Cosmos

Azure Cosmos DB作為微軟Azure的數據庫服務,支持多種NoSQL模型和多種數據格式,其中包括JSON和二進制數據等。微軟表示,該數據庫屬于全托管模式,由微軟Azure處理所有底層基礎架構,以便開發人員更專注于自己的應用和數據。

Azure Cosmos DB不但提供了數據加密和數據訪問控制等安全工具,而且具有自動和即時擴展能力,更為MongoDB、Cassandra和其他NoSQL引擎提供了開源的API。

MongoDB

由MongoDB Inc.維護、以Gnu Affero通用公共許可證和Apache許可證的組合形式發布的MongoDB,是一個免費的開源、跨平臺、且面向文檔的數據庫。它使用帶有模式的JSON類文檔,并結合了從優化各類組織的數千次部署中,學到的最佳操作實踐。

作為一款基于云端的產品,它可以分布式數據庫集群的形式,處理數據庫管理,設置、配置和修補軟件、以及進行監控和備份??傮w而言,MongoDB的主要特點和功能包括:全面管理備份、恢復時間點,提供實時性能面板、以及定制警報。

redis

由Redis Labs贊助的Redis Enterprise,是一種開源的鍵值NoSQL內存數據庫。它支持寬松和嚴格的一致性、靈活的無模式模型、高可用性、以及易部署性。

Redis平臺支持諸如列表、集合、位圖和哈希值等各種鍵值數據結構,以及通過諸如搜索、圖、JSON和XML等插件模塊支持的各種模型。Redis Enterprise包含了一個實時索引、查詢和全文搜索引擎,既可以在企業內部使用,也能夠作為云中的托管服務被使用。

譯者介紹

陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。

原文標題:How to choose the right NoSQL database,作者:Bob Violino

分享到:
標簽:NoSQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 52000

    網站

  • 12

    小程序

  • 1037587

    文章

  • 756

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定