面向文件的 DBMS MongoDB 5.0 可用

發布了以文件為導向的 DBMS MongoDB 5.0,它在以鍵/值格式操作資料的快速且可擴展的系統與強大且易於形成查詢的關係 DBMS 之間佔據了一席之地。 MongoDB 程式碼是用C++ 編寫的,並在SSPL 許可證下分發,該許可證基於AGPLv3 許可證,但不開放,因為它包含在SSPL 許可證下不僅交付應用程式程式碼本身,而且還交付原始程式碼的歧視性要求提供雲端服務所涉及的所有組件的代碼。

MongoDB 支援以類似 JSON 的格式存儲文檔,具有相當靈活的語言來生成查詢,可以為各種存儲屬性創建索引,有效地提供大型二進制對象的存儲,支持記錄更改和添加數據到數據庫的操作,可以按照Map/Reduce範式工作,支援容錯配置的複製和建置。

MongoDB 具有內建工具,用於提供分片(根據特定鍵將一組資料分佈在伺服器之間),與複製相結合,使您可以建立水平可擴展的儲存集群,其中不存在單點故障(故障任何節點的操作都不影響資料庫的運作),故障後自動恢復並從故障節點轉移負載。 擴展叢集或將一台伺服器轉換為叢集無需停止資料庫,只需新增機器即可。

新版本的特點:

  • 新增了時間序列形式的資料集合(時間序列集合),最佳化用於儲存以一定間隔記錄的參數值切片(時間和與該時間對應的一組值)。 監控系統、金融平台和輪詢感測器狀態的系統都需要儲存此類數據。 時間序列資料的處理與普通文件集合一樣,但考慮到時間參考對其索引和儲存方法進行了最佳化,可以顯著減少磁碟空間消耗,減少執行查詢的延遲並實現資料即時分析。

    MongoDB 將此類集合視為基於內部集合建構的可寫入、非物化視圖,在插入時,會自動將時間序列資料分組為最佳化的儲存格式。 在這種情況下,每個基於時間的記錄在請求時都會被視為單獨的文件。 資料會按時間自動排序和索引(無需明確建立時間索引)。

  • 新增了對視窗運算子(分析函數)的支持,可讓您對集合中的一組特定文件執行操作。 與聚合函數不同,視窗函數不會折疊分組集,而是根據「視窗」的內容進行聚合,該「視窗」包含結果集中的一個或多個文件。 為了操作文件子集,提出了一個新的 $setWindowFields 階段,例如,您可以使用它來確定集合中兩個文件之間的差異、計算銷售排名以及分析複雜時間序列中的信息。
  • 新增了對 API 版本控制的支持,可讓您將應用程式綁定到特定的 API 狀態,並消除在遷移到新的 DBMS 版本時可能違反向後相容性的風險。 API 版本控制將應用程式生命週期與 DBMS 生命週期分開,並允許開發人員在需要使用新功能時(而不是遷移到新版本的 DBMS 時)對應用程式進行更改。
  • 新增了對即時重新分片機制的支持,該機制允許您動態更改用於分段的分片鍵,而無需停止 DBMS。
  • 客戶端加密欄位的可能性已擴展(客戶端字段級加密)。 現在可以重新配置審核過濾器並輪換 x509 證書,而無需停止 DBMS。 新增了對配置 TLS 1.3 密碼套件的支援。
  • 提出了一種新的命令列 shell,MongoDB Shell (mongosh),它正在作為一個單獨的專案開發,使用 Node.js 平台用 JavaScript 編寫,並在 Apache 2.0 許可證下分發。 MongoDB Shell 可以連接到 DBMS、更改設定和發送查詢。 支援智慧型自動完成輸入方法、命令和 MQL 表達式、語法突出顯示、上下文幫助、解析錯誤訊息以及透過附加元件擴展功能的能力。 舊的“mongo”CLI 包裝器已被棄用,並將在未來的版本中刪除。
    面向文件的 DBMS MongoDB 5.0 可用
  • 新增了新運算子:$count、$dateAdd、$dateDiff、$dateSubtract、$sampleRate 和 $rand。
  • 確保在 $expr 表達式中使用 $eq、$lt、$lte、$gt 和 $gte 運算子時使用索引。
  • aggregate、find、findAndModify、update、delete 指令以及 db.collection.aggregate()、db.collection.findAndModify()、db.collection.update() 和 db.collection.remove() 方法現在支援「let 」選項定義變數列表,透過將變數與請求正文分開來使命令更具可讀性。
  • 如果並行運行在文件集合上取得排它鎖定的操作,Find、count、distinct、aggregate、mapReduce、listCollections 和 listIndexes 操作將不再阻塞。
  • 作為刪除政治不正確術語的舉措的一部分,isMaster 命令和 db.isMaster() 方法已重新命名為 hello 和 db.hello()。
  • 發布編號方案已更改,並已過渡到可預測的發佈時間表。 每年都會發布一次重要版本(5.0、6.0、7.0),每三個月發布一次具有新功能的中間版本(5.1、5.2、5.3),並根據需要進行錯誤修復和漏洞的糾正更新(5.1.1、 5.1.2) .5.1.3、5.1)。 臨時版本將為下一個主要版本建立功能,即MongoDB 5.2、5.3和6.0將為MongoDB XNUMX的發布提供新功能。

來源: opennet.ru

添加評論