MongoDB 架構:結構、術語、要求和優勢
已發表: 2020-12-28目錄
概述
毫無疑問,互聯網是現代世界經濟的支柱。 今天,全世界有近 47 億人每天使用虛擬平台,使用互聯網驅動的應用程序獲取新聞、購買衣服、訂購食物、聽音樂、上下班通勤等等。
每天有如此大量的用戶進行數字貢獻,難怪每天在網絡空間中都會產生大量的非結構化數據。 了解有關 MongoDB 未來範圍的更多信息。
這引發了對一種新的數據庫範式的迫切需求,該範式可以 24/7 全天候存儲、服務和支持“大數據”應用程序(正如他們所熟知的那樣),而不會發生故障。
輸入 NoSQL。
NoSQL 數據庫的興起
NoSQL,鬆散地稱為“Not Only SQL”,是受其固定表模式約束的 SQL 數據庫的替代方案。 通過高度靈活,NoSQL 克服了 SQL 數據庫的這種結構缺陷,並具備水平擴展能力。 NoSQL 數據庫旨在提高開發人員的生產力,為他們提供簡單而優雅的數據模型,以進行複雜的數據處理和管理操作。
從廣義上講,這些數據存儲模型有 4 種類型——文檔、鍵值、寬列和圖形。 我們將在這篇博客中關注文檔數據庫和MongoDB 架構(領先的 NoSQL 數據庫)

MongoDB 結構
資料來源: MongoDB 文檔
MongoDB 架構遵循靈活的數據模型。 與在插入數據之前要求模式聲明的 RDBMS 不同,MongoDB 不強制執行固定的文檔結構。
術語
字段
文檔中的鍵值對,它是關係數據庫中列的對應物
文檔
這相當於 RDBMS 中的一條記錄
收藏品
一組文檔稱為集合。 這類似於 RDBMS 表
RDBMS 和 MongoDB 架構之間的差異
加入
在 RDBMS 中,數據可以分佈在多個表中並連接在一起以在單個視圖中訪問它。 這樣的 JOIN 操作在 MongoDB 中是不可能的。 相反,所有數據都存儲在一個集合中,但可以通過嵌套或嵌入文檔進行分離
正常化
RDBMS 保證規範化數據以避免重複和孤立記錄。 MongoDB 的靈活性消除了規範化的需要
結構
RDBS 主要用於銀行業,其中確切的數據庫結構是先驗已知的。 MongoDB 支持大量非結構化數據,並且可以跨雲、移動、Web 和大數據應用程序進行擴展。

MongoDB 架構的需求和好處
MongoDB架構可以即時處理結構更改,這是當前的需要。 當您事先不了解數據庫結構時,這非常適合。
以下是它的一些主要好處
基於文檔
可動態適應數據流變化,實時適應不斷變化的業務需求
即席查詢– 可以返回指定字段的強大查詢語言。 它還允許高度精細的搜索功能。 (按字段、按範圍、常用表達式等)
索引
您可以索引文檔中的任何字段以加快數據檢索過程。
現在讓我們深入了解MongoDB 架構。
但在我們這樣做之前,我們需要了解 CAP 定理。
CAP 定理
CAP 表示一致性、可用性和分區容錯性的三重奏。
讓我們看看每個術語在這種情況下的含義
一致性
如果您將數據寫入分佈式數據庫,您應該能夠在任何時間點從系統中的任何節點訪問相同的數據。 這是關於保持寫入數據的完整性。
可用性
這是關於最大限度地減少系統的停機時間。 讀/寫操作應該發生在集群中的任何機器上,不會失敗。
分區容錯或容錯
表示系統即使在網絡分區的情況下也能保持平穩運行的能力,即集群的不同部分應該能夠相互通信並有效同步。
CAP 定理指出分佈式系統必須具有分區容錯性。 任何網絡分區都不能導致整個系統崩潰。
換句話說,在分佈式系統中,您只能保證“一致性”和“可用性”中的一個參數,另一個是分區容差。
這產生了一個像這樣的三角形:
資料來源:數據科學百科
每當系統(CP)中有分區時, MongoDB 總是選擇一致性而不是可用性。 它會阻止所有寫入操作,直到它可以確保這些寫入的準確執行。
MongoDB架構
MongoDB 採用單主機架構,這意味著有一台主機負責所有客戶端寫入操作。 您稍後添加到集群的所有其他實例構成輔助節點,它們通常處理所有讀取操作。
這些基本上是主服務器的備份副本,作為防止主服務器崩潰的故障保護。
所有這些服務器都分組在副本集中。 您可以擁有多個副本集,每個副本集都有自己的主服務器和輔助服務器。
來源:MongoDB 文檔
如果主節點出現故障,系統會從所有輔助節點中選擇一個新的主節點。 但這是任意發生的,具體取決於它從整個系統中獲得最快 ping 響應的位置。 您的集群中需要有奇數台服務器(最少 3 台),以便可以以多數票選出主服務器。
如果您不想在三台服務器上花錢,您可以指定一個“仲裁者”節點,其唯一工作就是投票選舉主節點。
分片
MongoDB 中的分片允許您將大數據分佈在多個數據庫中。

來源: MongoDB 文檔
您有一個擁有數百萬用戶的應用程序。 分片允許您將這些用戶(基於用戶 ID 等唯一索引)劃分為不同的副本集。 使用稱為 mongoS 的進程,應用程序服務器與配置服務器(準確地說是 3 個)進行對話,以了解哪個“分片”包含它正在尋找的數據。 mongoS 在後台運行負載均衡器進程,以自動在所有分片之間平均分配負載(在本例中為用戶數)。
結論
如果您想了解有關 MongoDB 和數據庫操作的更多信息,請查看 MongoDB 項目構想。 您可以從 upGrad探索數據科學 PG 文憑。 為在職專業人士設計的為期 12 個月的課程,您將獲得全面的職業諮詢和工作機會,以及享有盛譽的 IIIT 班加羅爾校友身份。
我們希望本文能幫助您了解MongoDB 架構的工作原理以及系統的運行方式。 要了解更多信息,請查看我們的其他博客。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
