什么是 NoSQL 數(shù)據(jù)庫(kù)?
通常,“NoSQL 數(shù)據(jù)庫(kù)”是指非關(guān)系型數(shù)據(jù)庫(kù)。不管它是“non SQL”的縮寫,還是“not only SQL”的縮寫,大多數(shù)人都同意,NoSQL 數(shù)據(jù)庫(kù)是以關(guān)系表之外的格式存儲(chǔ)數(shù)據(jù)的。
NoSQL 數(shù)據(jù)庫(kù)之所以如此大受歡迎,是因?yàn)樗鼈優(yōu)橛脩籼峁┝遂`活的數(shù)據(jù)存儲(chǔ)模式。
為什么要使用 NoSQL 數(shù)據(jù)庫(kù)?
NoSQL 數(shù)據(jù)庫(kù)性能優(yōu)異、可擴(kuò)展,而且很靈活,非常適合移動(dòng)、Web 和游戲應(yīng)用程序。
可擴(kuò)展性:NoSQL 數(shù)據(jù)庫(kù)通常使用分布式硬件集群進(jìn)行橫向擴(kuò)展,而不是通過(guò)增加昂貴、健壯的服務(wù)器進(jìn)行縱向擴(kuò)展。在全托管服務(wù)中,有些云提供商在后臺(tái)幫用戶完成了所有這些操作。
靈活性:NoSQL 數(shù)據(jù)庫(kù)通常都提供了靈活的模式,支持快速迭代開(kāi)發(fā)。NoSQL 數(shù)據(jù)庫(kù)有靈活的數(shù)據(jù)模型,非常適合半結(jié)構(gòu)和非結(jié)構(gòu)化數(shù)據(jù)。
高性能:與關(guān)系型數(shù)據(jù)庫(kù)相比,NoSQL 數(shù)據(jù)庫(kù)針對(duì)特定的數(shù)據(jù)模型和訪問(wèn)模式做了優(yōu)化,進(jìn)一步提升了性能。
以下是一些知名的 NoSQL 數(shù)據(jù)庫(kù)類
鍵值數(shù)據(jù)庫(kù)
鍵值數(shù)據(jù)庫(kù)成對(duì)存儲(chǔ)數(shù)據(jù),每個(gè)記錄包含一個(gè)唯一 id 和一個(gè)值。這類數(shù)據(jù)庫(kù)提供了靈活的存儲(chǔ)結(jié)構(gòu),因?yàn)橹抵锌梢源鎯?chǔ)任意數(shù)量的非結(jié)構(gòu)化數(shù)據(jù)。
應(yīng)用場(chǎng)景
會(huì)話管理、用戶偏好設(shè)置和產(chǎn)品推薦。
典型產(chǎn)品
Amazon DynamoDB、Azure Cosmos DB、Riak。
內(nèi)存鍵值數(shù)據(jù)庫(kù)
不同于基于磁盤的數(shù)據(jù)庫(kù),這類數(shù)據(jù)庫(kù)的數(shù)據(jù)主要保存在內(nèi)存中。通過(guò)減少磁盤訪問(wèn)實(shí)現(xiàn)最小響應(yīng)時(shí)間。由于所有數(shù)據(jù)都存儲(chǔ)在內(nèi)存中,在進(jìn)程或服務(wù)器出現(xiàn)故障時(shí),內(nèi)存數(shù)據(jù)庫(kù)有丟失數(shù)據(jù)的風(fēng)險(xiǎn)。內(nèi)存數(shù)據(jù)庫(kù)可以通過(guò)在日志中記錄每個(gè)操作或生成數(shù)據(jù)快照的方式將數(shù)據(jù)持久化到磁盤上。
典型產(chǎn)品
Redis、Memcached、Amazon Elasticache。
文檔數(shù)據(jù)庫(kù)
文檔數(shù)據(jù)的結(jié)構(gòu)和鍵值數(shù)據(jù)庫(kù)類似,只是鍵和值的形式是用標(biāo)記語(yǔ)言(如 JSON、XML 或 YAML)編寫的文檔。
應(yīng)用場(chǎng)景
用戶資料、產(chǎn)品目錄和內(nèi)容管理。
典型產(chǎn)品
MongoDB、Amazon DocumentDB、CouchDB。
列式數(shù)據(jù)庫(kù)
列式數(shù)據(jù)庫(kù)基于表存儲(chǔ),但沒(méi)有嚴(yán)格的列格式。列式數(shù)據(jù)庫(kù)不要求每一列都有值,而且可以組合包含不同數(shù)據(jù)格式的行段和列段。
應(yīng)用場(chǎng)景
遙測(cè)數(shù)據(jù)、分析數(shù)據(jù)、消息傳遞和時(shí)序數(shù)據(jù)。
典型產(chǎn)品
Cassandra、Accumulo、Azure Table Storage、HBase。
圖數(shù)據(jù)庫(kù)
圖數(shù)據(jù)庫(kù)使用節(jié)點(diǎn)和邊來(lái)映射數(shù)據(jù)之間的關(guān)系。節(jié)點(diǎn)是單個(gè)的數(shù)據(jù)值,邊是這些值之間的關(guān)系
應(yīng)用場(chǎng)景
社交圖譜、推薦引擎和欺詐檢測(cè)。
典型產(chǎn)品
Neo4j、Amazon Neptune、Azure Cosmos DB Gremlin。
時(shí)序數(shù)據(jù)庫(kù)
這類數(shù)據(jù)庫(kù)存儲(chǔ)有時(shí)間順序的流式數(shù)據(jù)。數(shù)據(jù)不是按值或 id 排序,而是按收集、攝入時(shí)間或元數(shù)據(jù)中包含的其他時(shí)間戳排序。
應(yīng)用場(chǎng)景
工業(yè)遙測(cè)數(shù)據(jù)、DevOps 和物聯(lián)網(wǎng)(IOT)應(yīng)用程序。
典型產(chǎn)品
Graphite、Prometheus、Amazon Timestream。
分類賬數(shù)據(jù)庫(kù)
分類賬數(shù)據(jù)庫(kù)以日志為基礎(chǔ),日志中記錄了與數(shù)據(jù)值相關(guān)的事件。這類數(shù)據(jù)庫(kù)存儲(chǔ)用于驗(yàn)證數(shù)據(jù)完整性的數(shù)據(jù)更改操作。
應(yīng)用場(chǎng)景
銀行系統(tǒng)、注冊(cè)、供應(yīng)鏈、記錄系統(tǒng)(systems of record)。
典型產(chǎn)品
Amazon Quantum Ledger Database(QLDB)。
小 結(jié)
為了選出最合適自己的 NoSQL 數(shù)據(jù)庫(kù),你應(yīng)該了解各種 NoSQL 數(shù)據(jù)庫(kù)之間的差異。
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3108瀏覽量
74987 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3900瀏覽量
65774 -
nosql
+關(guān)注
關(guān)注
0文章
39瀏覽量
10249
發(fā)布評(píng)論請(qǐng)先 登錄
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)文件拷貝后服務(wù)無(wú)法啟動(dòng)的數(shù)據(jù)恢復(fù)

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫(kù)提示“錯(cuò)誤 823”的數(shù)據(jù)恢復(fù)案例

分布式云化數(shù)據(jù)庫(kù)有哪些類型
MySQL數(shù)據(jù)庫(kù)的安裝

云數(shù)據(jù)庫(kù)是哪種數(shù)據(jù)庫(kù)類型?
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

數(shù)據(jù)庫(kù)事件觸發(fā)的設(shè)置和應(yīng)用
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫(kù)ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
SQL與NoSQL的區(qū)別
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫(kù)啟庫(kù)報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)所在分區(qū)空間不足報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例
數(shù)字化時(shí)代的數(shù)據(jù)管理:多樣化數(shù)據(jù)庫(kù)選型指南

評(píng)論