3分鐘瞭解Cloudant NoSQL DB之基本概念

上一篇文章為大家介紹了Cloudant NoSQL DB的數據存儲結構,今天將帶大家瞭解下數據庫分區,數據庫基本操作以及存儲文檔的基本屬性。

數據庫分區

回顧一下上一篇講到的文檔存儲結構,一個數據庫中的數據物理上被分成多個分片存儲,那麼分片數據存儲有什麼規律呢?

IBM Cloud | 3分鐘瞭解Cloudant NoSQL DB之基本概念

數據存儲結構

分片(Shard)是物理的,而分區(Partition)是邏輯的,但是分區對於分片影響很大。在沒有引入分區以前,文檔被隨機分配到某一個分片當中,而使用分區之後,相同分區的文檔就被存儲在同一個分片或相鄰的分片中。

在使用分區後,文檔存儲變得有規律,在數據操作時也會大大提高效率,節省成本。

文檔基本屬性

_id:對於無分區數據庫,_id是一串字母或數字組成的字符串,不能為空且必須唯一;對於分區數據庫,_id由Partition名稱和唯一ID組成,格式如下:{Partition Name}:{ID}.

可以把_id理解為關係數據庫中的主鍵,當需要把關係數據表向Cloudant數據庫遷移時,就可以把主鍵作為_id從而保證唯一性。

_rev:用於指示文檔當前版本,在進行文檔更新操作時,_rev不能為空。當文檔更新或創建成功後會得到新的_rev用於之後的操作。

IBM Cloud | 3分鐘瞭解Cloudant NoSQL DB之基本概念

文檔示例

數據庫基本操作

Cloudant NoSQL DB基本操作主要分為Write,Read,Global Query三類。Write無需解釋,就是指文檔的更新,創建等操作。Read和Global Query都是對數據庫進行讀操作,主要的區別在於讀操作是否使用了分區。

Read操作是指使用了分區的讀操作,通過前面的介紹,我們已經知道使用分區能夠提升性能,減少內部操作的消耗,因此官方建議使用分區。

Global Query是指在無分區的情況下對數據庫進行的讀操作,由於此時文檔被隨機分佈在分片中,因此在讀操作過程中需要所有分片的參與,相比於有分區操作性能要差一些。

IBM Cloud | 3分鐘瞭解Cloudant NoSQL DB之基本概念

操作監控面板

Bulk操作

bulk可以實現批量文檔操作,比如文檔批量插入,批量更新等操作。通過使用bulk可以大大降低數據庫操作次數,從而節省服務成本。

有時候單個文檔的刪除無法滿足業務需求,為了減少數據庫操作可以通過bulk實現文檔批量刪除。這裡有個小竅門,就是使用_deleted屬性來標記文檔刪除,_deleted為Boolean類型,只要在bulk請求時設置文檔中_deleted字段為true就意味著對文檔的刪除。

結語

剛剛帶大家瞭解了Cloudant NoSQL DB的數據庫分區,數據庫操作以及文檔基本屬性,下一篇文章將介紹如何在Java程序中集成Cloudant NoSQL DB,歡迎持續關注。

IBM Cloud專題歷史文章

想要試用和了解更多關於Cloudant NoSQL DB內容的同學可以點擊下方【瞭解更多】開啟IBM Cloud免費體驗之旅。


分享到:


相關文章: