nosql數(shù)據(jù)庫類型特點,試述NoSQL數(shù)據(jù)庫的四大類型

簡述什么是nosql數(shù)據(jù)庫,并列舉兩種常見的nosql數(shù)據(jù)庫名稱及其特點

NoSQL太火,冒出太多產(chǎn)品了,保守估計也成百上千了。

成都創(chuàng)新互聯(lián)服務項目包括庫爾勒網(wǎng)站建設、庫爾勒網(wǎng)站制作、庫爾勒網(wǎng)頁制作以及庫爾勒網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,庫爾勒網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到庫爾勒省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

互聯(lián)網(wǎng)公司常用的基本集中在以下幾種,每種只舉一個比較常見或者應用比較成功的例子吧。

1. In-Memory KV Store : Redis

in memory key-value store,同時提供了更加豐富的數(shù)據(jù)結構和運算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機恢復,同時支持replication提供讀可擴展和高可用。

2. Disk-Based KV Store: Leveldb

真正基于磁盤的key-value storage, 模型單一簡單,數(shù)據(jù)量不受限于內存大小,數(shù)據(jù)落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優(yōu)化,順序寫盤的方式對于新硬件ssd再適合不過了,不足是僅提供了一個庫,需要自己封裝server端。

3. Document Store: Mongodb

分布式nosql,具備了區(qū)別mysql的最大亮點:可擴展性。mongodb 最新引人的莫過于提供了sql接口,是目前nosql里最像mysql的,只是沒有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對于數(shù)據(jù)量遠超內存限制的場景來說,還需要慎重。

4. Column Table Store: HBase

這個富二代似乎不用贅述了,最大的優(yōu)勢是開源,對于普通的scan和基于行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴展性方面是最強的,其次坐上了Hadoop的快車,社區(qū)發(fā)展很快,各種基于其上的開源產(chǎn)品不少,來解決諸如join、聚集運算等復雜查詢。

nosql數(shù)據(jù)庫的四種類型

一般將NoSQL數(shù)據(jù)庫分為四大類:鍵值(Key-Value)存儲數(shù)據(jù)庫、列存儲數(shù)據(jù)庫、文檔型數(shù)據(jù)庫和圖形(Graph)數(shù)據(jù)庫。它們的數(shù)據(jù)模型、優(yōu)缺點、典型應用場景。

鍵值(Key-Value)存儲數(shù)據(jù)庫Key指向Value的鍵值對,通常用hash表來實現(xiàn)查找速度快數(shù)據(jù)無結構化(通常只被當作字符串或者二進制數(shù)據(jù))內容緩存,主要用于處理大量數(shù)據(jù)的高訪問負載,也用于一些日志系統(tǒng)等。

列存儲數(shù)據(jù)庫,以列簇式存儲,將同一列數(shù)據(jù)存在一起查找速度快,可擴展性強,更容易進行分布式擴展功能相對局限分布式的文件系統(tǒng)。

文檔型數(shù)據(jù)庫,Key-Value對應的鍵值對,Value為結構化數(shù)據(jù),數(shù)據(jù)結構要求不嚴格,表結構可變(不需要像關系型數(shù)據(jù)庫一樣需預先定義表結構),查詢性能不高,而且缺乏統(tǒng)一的查詢語法,Web應用。

圖形(Graph)數(shù)據(jù)庫,圖結構,利用圖結構相關算法(如最短路徑尋址,N度關系查找等),很多時候需要對整個圖做計算才能得出需要的信息,而且這種結構不太好做分布式的集群方案,社交網(wǎng)絡,推薦系統(tǒng)等。

目前哪些NoSQL數(shù)據(jù)庫應用廣泛,各有什么特點

特點:

它們可以處理超大量的數(shù)據(jù)。

它們運行在便宜的PC服務器集群上。

PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復雜性和成本。

它們擊碎了性能瓶頸。

NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數(shù)據(jù)轉換成SQL友好格式的時間,執(zhí)行速度變得更快。

“SQL并非適用于所有的程序代碼,” 對于那些繁重的重復操作的數(shù)據(jù),SQL值得花錢。但是當數(shù)據(jù)庫結構非常簡單時,SQL可能沒有太大用處。

沒有過多的操作。

雖然NoSQL的支持者也承認關系數(shù)據(jù)庫提供了無可比擬的功能集合,而且在數(shù)據(jù)完整性上也發(fā)揮絕對穩(wěn)定,他們同時也表示,企業(yè)的具體需求可能沒有那么多。

Bootstrap支持

因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。這一點它們與大多數(shù)開源項目一樣,不得不從社區(qū)中尋求支持。

優(yōu)點:

易擴展

NoSQL數(shù)據(jù)庫種類繁多,但是一個共同的特點都是去掉關系數(shù)據(jù)庫的關系型特性。數(shù)據(jù)之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。

大數(shù)據(jù)量,高性能

NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關系性,數(shù)據(jù)庫的結構簡單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的 Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。

靈活的數(shù)據(jù)模型

NoSQL無需事先為要存儲的數(shù)據(jù)建立字段,隨時可以存儲自定義的數(shù)據(jù)格式。而在關系數(shù)據(jù)庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡直就是一個噩夢。這點在大數(shù)據(jù)量的web2.0時代尤其明顯。

高可用

NoSQL在不太影響性能的情況,就可以方便的實現(xiàn)高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現(xiàn)高可用。

主要應用:

Apache HBase

這個大數(shù)據(jù)管理平臺建立在谷歌強大的BigTable管理引擎基礎上。作為具有開源、Java編碼、分布式多個優(yōu)勢的數(shù)據(jù)庫,Hbase最初被設計應用于Hadoop平臺,而這一強大的數(shù)據(jù)管理工具,也被Facebook采用,用于管理消息平臺的龐大數(shù)據(jù)。

Apache Storm

用于處理高速、大型數(shù)據(jù)流的分布式實時計算系統(tǒng)。Storm為Apache Hadoop添加了可靠的實時數(shù)據(jù)處理功能,同時還增加了低延遲的儀表板、安全警報,改進了原有的操作方式,幫助企業(yè)更有效率地捕獲商業(yè)機會、發(fā)展新業(yè)務。

Apache Spark

該技術采用內存計算,從多迭代批量處理出發(fā),允許將數(shù)據(jù)載入內存做反復查詢,此外還融合數(shù)據(jù)倉庫、流處理和圖計算等多種計算范式,Spark用Scala語言實現(xiàn),構建在HDFS上,能與Hadoop很好的結合,而且運行速度比MapReduce快100倍。

Apache Hadoop

該技術迅速成為了大數(shù)據(jù)管理標準之一。當它被用來管理大型數(shù)據(jù)集時,對于復雜的分布式應用,Hadoop體現(xiàn)出了非常好的性能,平臺的靈活性使它可以運行在商用硬件系統(tǒng),它還可以輕松地集成結構化、半結構化和甚至非結構化數(shù)據(jù)集。

Apache Drill

你有多大的數(shù)據(jù)集?其實無論你有多大的數(shù)據(jù)集,Drill都能輕松應對。通過支持HBase、Cassandra和MongoDB,Drill建立了交互式分析平臺,允許大規(guī)模數(shù)據(jù)吞吐,而且能很快得出結果。

Apache Sqoop

也許你的數(shù)據(jù)現(xiàn)在還被鎖定于舊系統(tǒng)中,Sqoop可以幫你解決這個問題。這一平臺采用并發(fā)連接,可以將數(shù)據(jù)從關系數(shù)據(jù)庫系統(tǒng)方便地轉移到Hadoop中,可以自定義數(shù)據(jù)類型以及元數(shù)據(jù)傳播的映射。事實上,你還可以將數(shù)據(jù)(如新的數(shù)據(jù))導入到HDFS、Hive和Hbase中。

Apache Giraph

這是功能強大的圖形處理平臺,具有很好可擴展性和可用性。該技術已經(jīng)被Facebook采用,Giraph可以運行在Hadoop環(huán)境中,可以將它直接部署到現(xiàn)有的Hadoop系統(tǒng)中。通過這種方式,你可以得到強大的分布式作圖能力,同時還能利用上現(xiàn)有的大數(shù)據(jù)處理引擎。

Cloudera Impala

Impala模型也可以部署在你現(xiàn)有的Hadoop群集上,監(jiān)視所有的查詢。該技術和MapReduce一樣,具有強大的批處理能力,而且Impala對于實時的SQL查詢也有很好的效果,通過高效的SQL查詢,你可以很快的了解到大數(shù)據(jù)平臺上的數(shù)據(jù)。

Gephi

它可以用來對信息進行關聯(lián)和量化處理,通過為數(shù)據(jù)創(chuàng)建功能強大的可視化效果,你可以從數(shù)據(jù)中得到不一樣的洞察力。Gephi已經(jīng)支持多個圖表類型,而且可以在具有上百萬個節(jié)點的大型網(wǎng)絡上運行。Gephi具有活躍的用戶社區(qū),Gephi還提供了大量的插件,可以和現(xiàn)有系統(tǒng)完美的集成到一起,它還可以對復雜的IT連接、分布式系統(tǒng)中各個節(jié)點、數(shù)據(jù)流等信息進行可視化分析。

MongoDB

這個堅實的平臺一直被很多組織推崇,它在大數(shù)據(jù)管理上有極好的性能。MongoDB最初是由DoubleClick公司的員工創(chuàng)建,現(xiàn)在該技術已經(jīng)被廣泛的應用于大數(shù)據(jù)管理。MongoDB是一個應用開源技術開發(fā)的NoSQL數(shù)據(jù)庫,可以用于在JSON這樣的平臺上存儲和處理數(shù)據(jù)。目前,紐約時報、Craigslist以及眾多企業(yè)都采用了MongoDB,幫助他們管理大型數(shù)據(jù)集。(Couchbase服務器也作為一個參考)。

十大頂尖公司:

Amazon Web Services

Forrester將AWS稱為“云霸主”,談到云計算領域的大數(shù)據(jù),那就不得不提到亞馬遜。該公司的Hadoop產(chǎn)品被稱為EMR(Elastic Map Reduce),AWS解釋這款產(chǎn)品采用了Hadoop技術來提供大數(shù)據(jù)管理服務,但它不是純開源Hadoop,經(jīng)過修改后現(xiàn)在被專門用在AWS云上。

Forrester稱EMR有很好的市場前景。很多公司基于EMR為客戶提供服務,有一些公司將EMR應用于數(shù)據(jù)查詢、建模、集成和管理。而且AWS還在創(chuàng)新,F(xiàn)orrester稱未來EMR可以基于工作量的需要自動縮放調整大小。亞馬遜計劃為其產(chǎn)品和服務提供更強大的EMR支持,包括它的RedShift數(shù)據(jù)倉庫、新公布的Kenesis實時處理引擎以及計劃中的NoSQL數(shù)據(jù)庫和商業(yè)智能工具。不過AWS還沒有自己的Hadoop發(fā)行版。

Cloudera

Cloudera有開源Hadoop的發(fā)行版,這個發(fā)行版采用了Apache Hadoop開源項目的很多技術,不過基于這些技術的發(fā)行版也有很大的進步。Cloudera為它的Hadoop發(fā)行版開發(fā)了很多功能,包括Cloudera管理器,用于管理和監(jiān)控,以及名為Impala的SQL引擎等。Cloudera的Hadoop發(fā)行版基于開源Hadoop,但也不是純開源的產(chǎn)品。當Cloudera的客戶需要Hadoop不具備的某些功能時,Cloudera的工程師們就會實現(xiàn)這些功能,或者找一個擁有這項技術的合作伙伴。Forrester表示:“Cloudera的創(chuàng)新方法忠于核心Hadoop,但因為其可實現(xiàn)快速創(chuàng)新并積極滿足客戶需求,這一點使它不同于其他那些供應商?!蹦壳?,Cloudera的平臺已經(jīng)擁有200多個付費客戶,一些客戶在Cloudera的技術支持下已經(jīng)可以跨1000多個節(jié)點實現(xiàn)對PB級數(shù)據(jù)的有效管理。

Hortonworks

和Cloudera一樣,Hortonworks是一個純粹的Hadoop技術公司。與Cloudera不同的是,Hortonworks堅信開源Hadoop比任何其他供應商的Hadoop發(fā)行版都要強大。Hortonworks的目標是建立Hadoop生態(tài)圈和Hadoop用戶社區(qū),推進開源項目的發(fā)展。Hortonworks平臺和開源Hadoop聯(lián)系緊密,公司管理人員表示這會給用戶帶來好處,因為它可以防止被供應商套牢(如果Hortonworks的客戶想要離開這個平臺,他們可以輕松轉向其他開源平臺)。這并不是說Hortonworks完全依賴開源Hadoop技術,而是因為該公司將其所有開發(fā)的成果回報給了開源社區(qū),比如Ambari,這個工具就是由Hortonworks開發(fā)而成,用來填充集群管理項目漏洞。Hortonworks的方案已經(jīng)得到了Teradata、Microsoft、Red Hat和SAP這些供應商的支持。

IBM

當企業(yè)考慮一些大的IT項目時,很多人首先會想到IBM。IBM是Hadoop項目的主要參與者之一,F(xiàn)orrester稱IBM已有100多個Hadoop部署,它的很多客戶都有PB級的數(shù)據(jù)。IBM在網(wǎng)格計算、全球數(shù)據(jù)中心和企業(yè)大數(shù)據(jù)項目實施等眾多領域有著豐富的經(jīng)驗。“IBM計劃繼續(xù)整合SPSS分析、高性能計算、BI工具、數(shù)據(jù)管理和建模、應對高性能計算的工作負載管理等眾多技術?!?/p>

Intel

和AWS類似,英特爾不斷改進和優(yōu)化Hadoop使其運行在自己的硬件上,具體來說,就是讓Hadoop運行在其至強芯片上,幫助用戶打破Hadoop系統(tǒng)的一些限制,使軟件和硬件結合的更好,英特爾的Hadoop發(fā)行版在上述方面做得比較好。Forrester指出英特爾在最近才推出這個產(chǎn)品,所以公司在未來還有很多改進的可能,英特爾和微軟都被認為是Hadoop市場上的潛力股。

MapR Technologies

MapR的Hadoop發(fā)行版目前為止也許是最好的了,不過很多人可能都沒有聽說過。Forrester對Hadoop用戶的調查顯示,MapR的評級最高,其發(fā)行版在架構和數(shù)據(jù)處理能力上都獲得了最高分。MapR已將一套特殊功能融入其Hadoop發(fā)行版中。例如網(wǎng)絡文件系統(tǒng)(NFS)、災難恢復以及高可用性功能。Forrester說MapR在Hadoop市場上沒有Cloudera和Hortonworks那樣的知名度,MapR要成為一個真正的大企業(yè),還需要加強伙伴關系和市場營銷。

什么是NoSQL數(shù)據(jù)庫?

2. 什么是NoSQL?

2.1 NoSQL 概述

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,

泛指非關系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關系數(shù)據(jù)庫在應付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應用難題,包括超大規(guī)模數(shù)據(jù)的存儲。

(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴展。

2.2 NoSQL代表

MongDB、 Redis、Memcache

3. 關系型數(shù)據(jù)庫與NoSQL的區(qū)別?

3.1 RDBMS

高度組織化結構化數(shù)據(jù)

結構化查詢語言(SQL)

數(shù)據(jù)和關系都存儲在單獨的表中。

數(shù)據(jù)操縱語言,數(shù)據(jù)定義語言

嚴格的一致性

基礎事務

ACID

關系型數(shù)據(jù)庫遵循ACID規(guī)則

事務在英文中是transaction,和現(xiàn)實世界中的交易很類似,它有如下四個特性:

A (Atomicity) 原子性

原子性很容易理解,也就是說事務里的所有操作要么全部做完,要么都不做,事務成功的條件是事務里的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。比如銀行轉賬,從A賬戶轉100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。

C (Consistency) 一致性

一致性也比較容易理解,也就是說數(shù)據(jù)庫要一直處于一致的狀態(tài),事務的運行不會改變數(shù)據(jù)庫原本的一致性約束。

I (Isolation) 獨立性

所謂的獨立性是指并發(fā)的事務之間不會互相影響,如果一個事務要訪問的數(shù)據(jù)正在被另外一個事務修改,只要另外一個事務未提交,它所訪問的數(shù)據(jù)就不受未提交事務的影響。比如現(xiàn)有有個交易是從A賬戶轉100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的

D (Durability) 持久性

持久性是指一旦事務提交后,它所做的修改將會永久的保存在數(shù)據(jù)庫上,即使出現(xiàn)宕機也不會丟失。

3.2 NoSQL

代表著不僅僅是SQL

沒有聲明性查詢語言

沒有預定義的模式

鍵 - 值對存儲,列存儲,文檔存儲,圖形數(shù)據(jù)庫

最終一致性,而非ACID屬性

非結構化和不可預知的數(shù)據(jù)

CAP定理

高性能,高可用性和可伸縮性

分布式數(shù)據(jù)庫中的CAP原理(了解)

CAP定理:

Consistency(一致性), 數(shù)據(jù)一致更新,所有數(shù)據(jù)變動都是同步的

Availability(可用性), 好的響應性能

Partition tolerance(分區(qū)容錯性) 可靠性

P: 系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運作。

定理:任何分布式系統(tǒng)只可同時滿足二點,沒法三者兼顧。

CAP理論的核心是:一個分布式系統(tǒng)不可能同時很好的滿足一致性,可用性和分區(qū)容錯性這三個需求,

因此,根據(jù) CAP 原理將 NoSQL 數(shù)據(jù)庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:

CA - 單點集群,滿足一致性,可用性的系統(tǒng),通常在可擴展性上不太強大。

CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。

AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),通??赡軐σ恢滦砸蟮鸵恍?。

CAP理論就是說在分布式存儲系統(tǒng)中,最多只能實現(xiàn)上面的兩點。

而由于當前的網(wǎng)絡硬件肯定會出現(xiàn)延遲丟包等問題,所以分區(qū)容忍性是我們必須需要實現(xiàn)的。

所以我們只能在一致性和可用性之間進行權衡,沒有NoSQL系統(tǒng)能同時保證這三點。

說明:C:強一致性 A:高可用性 P:分布式容忍性

舉例:

CA:傳統(tǒng)Oracle數(shù)據(jù)庫

AP:大多數(shù)網(wǎng)站架構的選擇

CP:Redis、Mongodb

注意:分布式架構的時候必須做出取舍。

一致性和可用性之間取一個平衡。多余大多數(shù)web應用,其實并不需要強一致性。

因此犧牲C換取P,這是目前分布式數(shù)據(jù)庫產(chǎn)品的方向。

4. 當下NoSQL的經(jīng)典應用

當下的應用是 SQL 與 NoSQL 一起使用的。

代表項目:阿里巴巴商品信息的存放。

去 IOE 化。

ps:I 是指 IBM 的小型機,很貴的,好像好幾萬一臺;O 是指 Oracle 數(shù)據(jù)庫,也很貴的,好幾萬呢;M 是指 EMC 的存儲設備,也很貴的。

難點:

數(shù)據(jù)類型多樣性。

數(shù)據(jù)源多樣性和變化重構。

數(shù)據(jù)源改造而服務平臺不需要大面積重構。

新聞名稱:nosql數(shù)據(jù)庫類型特點,試述NoSQL數(shù)據(jù)庫的四大類型
URL標題:http://muchs.cn/article48/phshep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、企業(yè)建站、ChatGPT、面包屑導航、小程序開發(fā)、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設