本文介紹云數據庫MongoDB 6.0版本推出的新特性和優化項。
速覽
本文從以下方面介紹云數據庫MongoDB 6.0版本:
MongoDB 6.0的更多新特性以及優化項,請參見MongoDB 6.0 release-notes。
可查詢加密(Queryable Encryption)
可查詢加密功能目前是預覽(Preview)版本,不建議直接在生產環境使用。預覽(Preview)版本的更多信息,請參見MongoDB Releases Queryable Encryption Preview。
MongoDB 6.0新推出可查詢加密功能,允許用戶從客戶端加密敏感數據,將其作為完全隨機的加密數據存儲在數據庫服務器端,并對加密數據進行豐富的查詢。
可查詢加密只允許在客戶端查看敏感數據的明文,在查詢到達服務器端時會同時包含從KMS獲取的加密密鑰,然后在服務器端以密文進行查詢并返回,最后在客戶端利用密鑰解密后以明文呈現。
可查詢加密的特點如下:
從客戶端加密敏感數據,只有客戶端擁有加密密鑰。
數據在整個生命周期(傳輸、存儲、使用、審計和備份)中都是加密的。
客戶端可以直接對加密數據進行豐富的查詢(包括等值匹配、范圍、前后綴或子字符串等查詢類型)。
強大的數據隱私保護能力,只有能訪問客戶端的應用程序和加密密鑰的授權用戶才能看到明文數據。
更輕量化的應用程序開發,涉及敏感數據的開發者無需考慮太多安全、合規的事情,數據庫會直接提供綜合加密解決方案。
降低敏感數據上云的安全顧慮。
可查詢加密的更多信息,請參見Introducing Queryable Encryption。
集群同步(Cluster-to-Cluster Sync)
無論是數據的同構同步(Mongo-to-Mongo)還是異構同步(Others-to-Mongo & Mongo-to-Others)都是MongoDB生態中的一部分,開源MongoDB推出了多種工具,比如mongoimport、mongoexport、mongodump和mongorestore等,但是這些工具并沒有很好的規劃數據同步。
MongoDB 6.0推出了新的同步工具mongosync,它能支持跨實例數據同步(兩個MongoDB實例間連續且單向的數據同步)。用戶還可以實時控制和監控整個同步過程,按需啟動、停止、恢復甚至反轉同步。
mongosync工具的更多信息,請參見mongosync。
時序集合(Time Series Collection)
時序集合是MongoDB 5.0版本發布的功能,主要應用于時序數據分析型場景。從5.0版本開始,時序集合的功能更新記錄如下:
版本 | 更新說明 |
MongoDB 5.0 | 首次發布。 |
MongoDB 5.1 | 引入分片(Sharding),以支持更好地分布數據。 |
MongoDB 5.2 | 引入柱狀壓縮(Columnar Compression),以改善存儲空間占用。 |
MongoDB 5.3 | 引入密集化和間隙填充(Densification and Gap-Filling),以支持部分數據點缺失情況下的時序分析。 |
MongoDB 6.0 | 分別從索引、查詢以及排序多個方面增強了時序集合。
|
變更流(Change Streams)
變更流是MongoDB 3.6版本發布的用于支持CDC(Change Data Capture)的核心功能之一。變更流可以讓業務更容易地實時獲取數據庫的變更,并基于此構建各種事件驅動型的應用或系統,不再需要依賴其他的數據同步中間件。
變更流的功能更新記錄如下:
版本 | 更新說明 |
MongoDB 3.6 |
|
MongoDB 4.0 |
|
MongoDB 4.2 |
|
MongoDB 5.1 |
|
MongoDB 5.3 | 支持在Chunk遷移期間過濾對孤立文檔的更新。 |
MongoDB 6.0 |
|
聚合(Aggregation)
聚合功能允許用戶處理多個文檔并返回計算結果。通過將多個操作符組合到聚合管道中,用戶可以構建出足夠復雜的數據處理管道以提取數據并進行分析。MongoDB 6.0在原有聚合功能的基礎上,推出了如下新特性以及優化項:
分片集群實例支持
$lookup
和$graphLookup
。改進
$lookup
對JOINS的支持。改進
$graphLookup
對圖遍歷的支持。提升
$lookup
性能,部分場景中性能提升可達百倍。
$lookup
和$graphLookup
的更多信息,請參見$lookup (aggregation)和$graphLookup (aggregation)。
查詢(Query)
新增$maxN
、$topN
、$minN
、$bottomN
、$lastN
和$sortArray
等操作符。通過操作符可以將更多的計算從業務層下沉到數據庫中,使得業務層更加輕量化。
操作符的更多信息,請參見Aggregation Pipeline Operators。
彈性
MongoDB 6.0在原有彈性的基礎上,推出了如下新特性以及優化項:
將數據塊(Chunk)規格的默認值從64 MB調整為128 MB,有效降低了數據遷移頻率以及網絡和路由層的開銷。
支持
configureCollectionBalancing
命令,此命令支持的功能如下:支持為不同的分片表設置不同的數據塊規格。
示例:數據規模特別大的分片表,將數據塊規格調整到256 MB。數據規模相對較小但希望在分片上分布更均勻的分片表,將數據塊規格調整到64 MB或32 MB。
支持自動整理分片集合的磁盤空間碎片。
您可以通過
configureCollectionBalancing
命令設置自動整理磁盤碎片,設置自動整理后您無需再主動使用compact
命令來整理磁盤空間碎片,即可有效控制磁盤空間使用率,
說明configureCollectionBalancing
命令的更多信息,請參見configureCollectionBalancing。
安全性
MongoDB 6.0在原有安全性的基礎上,對客戶端字段級加密(CSFLE, Client-Side Field-Level Encryption)功能進行了優化。CSFLE將支持任何符合密鑰管理互通協議(KMIP,Key Management Interoperability Protocol)的密鑰管理提供商,即除了基于KeyFile的本地密鑰管理外,MongoDB支持通過KMIP與第三方密鑰管理設備集成,為用戶提供更安全的保障。
客戶端字段級加密功能被廣泛應用于敏感數據的管理中,尤其是數據遷移的場景。