教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

NoSQL數據庫有多少種類型?【大數據培訓】

更新時間:2022年07月11日17時04分 來源:傳智教育 瀏覽次數:

1.鍵值對存儲數據庫

鍵值對存儲數據庫是NoSQL數據庫中的一種類型,也是最簡單的NoSQL數據庫。鍵對值對存儲數據庫中的數據是以鍵值對的形式來存儲的。常見的鍵值對存儲數據庫有Redis、Tokyo Cabinet/Tyrant、Voldemort以及Oracle BDB等數據庫。鍵值對存儲數據庫的結構示意圖如下。

1657527938262_71.png

鍵值對存儲數據庫的結構實際上是一個映射,即Key是查找每條數據的唯一標識符,Value是該數據實際存儲的內容。鍵值對存儲數據庫結構是采用哈希函數來實現鍵到值的映射,當查詢數據時,基于Key的哈希值會直接定位到數據所在的位置,實現快速查詢,并支持海量數據的高并發(fā)查詢。

應用場景1:會話儲存場景

會話存儲指的是一個面向會話的應用程序(如Web應用程序)在用戶登錄時啟動會話,并保持活動狀態(tài)直到用戶注銷或會話超時,在此期間,應用程序將所有與會話相關的數據存儲在內存或鍵值對存儲數據庫中。會話數據包括用戶資料信息、消息、個性化數據和主題、建議、有針對性的促銷和折扣。每個用戶會話具有唯一的標識符,除了主鍵之外,任何其他鍵都無法查詢會話數據,因此鍵值對存儲數據庫更適合于存儲會話數據。

應用場景2:購物車

購物車指的是電子商務網站中的購物車功能。在假日購物季,電子商務網站可能會在幾秒鐘內收到數十億的訂單,鍵值對存儲數據庫可以處理海量數據的擴展和極高的狀態(tài)變化,同時通過分布式處理和存儲為數百萬并發(fā)用戶提供服務。此外,鍵值對存儲數據庫還具有內置冗余的功能,可以處理丟失的存儲節(jié)點。

2.文檔存儲數據庫

文檔存儲數據庫不是文檔管理系統(tǒng)。文檔存儲數據庫是用于存儲和管理文檔,其中文檔是結構化的數據(如JSON格式)。常見的文檔存儲數據庫有MongoDB、CouchDB以及RavenDB等數據庫。文檔存儲數據庫的結構示意圖如下。

1657528816211_72.png

文檔存儲數據庫存儲的文檔可以是不同結構的,即JSON、XML以及BSON等格式。

應用場景1:內容管理應用程序

內容管理應用程序存儲數據,首選的就是文檔存儲數據庫,例如博客和視頻平臺主要使用的數據庫就是文檔存儲數據庫。通過文檔存儲數據庫,內容管理應用程序所跟蹤的每個實體都可存儲為單個文檔。隨著需求的發(fā)展,對于開發(fā)人員來說,可以使用文檔存儲數據庫更直觀地更新應用程序。此外,如果需要更改數據模型,則只需要更新受影響的文檔即可,而不需要更新架構,也不需要等到數據庫停機時進行更改。

應用場景2:電子商務應用程序

在電子商務應用程序中,文檔存儲數據庫可以高效且有效的存儲商品的信息。例如,在電子商務應用程序中,不同的產品具有不同數量的屬性。若是在關系型數據庫中管理數干個屬性,則效率比較低,并且閱讀的性能會受到影響;若是使用文檔存儲數據庫的話,可以在單個文檔中描述每個產品的屬性,既可以方便管理,又可以加快閱讀產品的速度,并且更改一個產品的屬性不會影響其他的產品。

3.列式存儲數據庫

列式存儲數據庫是以列為單位存儲數據,然后將列值順序地存入數據庫中,這種數據存儲法不同于基于行式存儲的傳統(tǒng)關系型數據庫。列式存儲數據庫可以高效地存儲數據,也可以快速地處理批量數據實時查詢數據。常見的列式存儲數據庫有HBase、Cassandra、Riak以及HyperTable等數據庫。列式存儲數據庫的結構示意圖如下。

1657528998876_73.png

在列式存儲數據庫中,如果列值不存在,則不需要存儲(陰影部分為列值不存在),這樣的話,遇到Nul值,就不需要存儲,可以減少I/O操作和避免內存空間的浪費。

應用場景1:事件記錄

在事件記錄中,使用列式存儲數據庫來存儲應用程序的狀態(tài)以及應用程序遇到錯誤等事件信息。由于列式存儲數據庫具有高擴展性,因此可高效地存儲應用程序源源不斷產生的事件記錄。

應用場景2:博客網站

在博客網站中,列式存儲數據庫可以將博客的“標簽”、“類別”“連接”及“引用通告”等內容存放在不同的列中,便于進行數據分析。

4.圖形存儲數據庫

圖形存儲數據庫不是網絡數據庫,它是NoSQL數據庫的一種類型,其主要是應用圖形理論來存儲實體之間的關系信息,其中,實體被視為圖形的“節(jié)點”,關系被視為圖形的“邊”,“邊”按照關系將“節(jié)點”按進行連接。常見的圖形存儲數據庫有Neo4j、FlockDB、AllegroGrap以及GraphDB等數據庫。圖形存儲數據庫的結構示意圖如下。

1657529200376_74.png

利用圖形存儲數據庫存儲的數據,可以很清晰知道兩個實體之間的關系,即A和D是朋友,C是A朋友的朋友。

應用場景1:欺詐檢測

在欺詐檢測中,圖形存儲數據庫能夠有效地防范復雜的欺詐行為。在現代欺詐及各種類型的金融犯罪中,例如銀行欺詐、信用卡欺詐、電子商務欺詐以及保險欺詐等,欺詐者通過使用改變自己身份等的手段逃避風控規(guī)則,從而達到欺詐目的。盡管欺詐者是可以改變所有涉及網絡的關聯關系,也可以在所有涉及網絡的群體中同步執(zhí)行相同操作來躲避風控,但我們可以通過圖形存儲數據庫建立跟蹤全局用戶的跟蹤視角,實時利用圖形存儲數據庫來分析具有欺詐行為的離散數據,從而識別欺詐環(huán)節(jié),這樣的話,最大程度上快速有效地防范和解決欺詐行為。

應用場景2:推薦應用

在推薦應用中,我們可以借助圖形存儲數據庫存儲購物網站中客戶的購買記錄、客戶興趣等信息,然后根據客戶當前瀏覽的商品結合已存儲的購物信息,從而推薦相關的商品。

猜你喜歡:

MySQL數據庫什么是外鍵?

什么是MySQL?MySQL為什么有兩個版本?

關于MySQL的30條優(yōu)化技巧【超實用】

MySQL的隔離級別包含哪些內容?

傳智教育Python+大數據開發(fā)培訓

0 分享到:
和我們在線交談!