目前存儲(chǔ)海量數(shù)據(jù)的技術(shù)主要包括NoSQL、分布式文件系統(tǒng)、和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)行業(yè)不斷的發(fā)展,產(chǎn)生的數(shù)據(jù)量越來(lái)越多,并且這些數(shù)據(jù)的特點(diǎn)是半結(jié)構(gòu)化和非結(jié)構(gòu)化,數(shù)據(jù)很可能是不精確的,易變的。這樣傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)就無(wú)法發(fā)揮它的優(yōu)勢(shì)。因此,目前互聯(lián)網(wǎng)行業(yè)偏向于使用NoSQL和分布式文件系統(tǒng)來(lái)存儲(chǔ)海量數(shù)據(jù)。
創(chuàng)新互聯(lián)主營(yíng)長(zhǎng)寧網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開(kāi)發(fā),長(zhǎng)寧h5小程序制作搭建,長(zhǎng)寧網(wǎng)站營(yíng)銷推廣歡迎長(zhǎng)寧等地區(qū)企業(yè)咨詢
下面介紹下常用的NoSQL和分布式文件系統(tǒng)。
NoSQL
互聯(lián)網(wǎng)行業(yè)常用的NoSQL有:HBase、MongoDB、Couchbase、LevelDB。
HBase是Apache Hadoop的子項(xiàng)目,理論依據(jù)為Google論文 Bigtable: A Distributed Storage System for Structured Data開(kāi)發(fā)的。HBase適合存儲(chǔ)半結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù)。HBase的數(shù)據(jù)模型是稀疏的、分布式的、持久穩(wěn)固的多維map。HBase也有行和列的概念,這是與RDBMS相同的地方,但卻又不同。HBase底層采用HDFS作為文件系統(tǒng),具有高可靠性、高性能。
MongoDB是一種支持高性能數(shù)據(jù)存儲(chǔ)的開(kāi)源文檔型數(shù)據(jù)庫(kù)。支持嵌入式數(shù)據(jù)模型以減少對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的I/O、利用索引實(shí)現(xiàn)快速查詢,并且嵌入式文檔和集合也支持索引,它復(fù)制能力被稱作復(fù)制集(replica set),提供了自動(dòng)的故障遷移和數(shù)據(jù)冗余。MongoDB的分片策略將數(shù)據(jù)分布在服務(wù)器集群上。
Couchbase這種NoSQL有三個(gè)重要的組件:Couchbase服務(wù)器、Couchbase Gateway、Couchbase Lite。Couchbase服務(wù)器,支持橫向擴(kuò)展,面向文檔的數(shù)據(jù)庫(kù),支持鍵值操作,類似于SQL查詢和內(nèi)置的全文搜索;Couchbase Gateway提供了用于RESTful和流式訪問(wèn)數(shù)據(jù)的應(yīng)用層API。Couchbase Lite是一款面向移動(dòng)設(shè)備和“邊緣”系統(tǒng)的嵌入式數(shù)據(jù)庫(kù)。Couchbase支持千萬(wàn)級(jí)海量數(shù)據(jù)存儲(chǔ)
分布式文件系統(tǒng)
如果針對(duì)單個(gè)大文件,譬如超過(guò)100MB的文件,使用NoSQL存儲(chǔ)就不適當(dāng)了。使用分布式文件系統(tǒng)的優(yōu)勢(shì)在于,分布式文件系統(tǒng)隔離底層數(shù)據(jù)存儲(chǔ)和分布的細(xì)節(jié),展示給用戶的是一個(gè)統(tǒng)一的邏輯視圖。常用的分布式文件系統(tǒng)有Google File System、HDFS、MooseFS、Ceph、GlusterFS、Lustre等。
相比過(guò)去打電話、發(fā)短信、用彩鈴的“老三樣”,移動(dòng)互聯(lián)網(wǎng)的發(fā)展使得人們可以隨時(shí)隨地通過(guò)刷微博、看視頻、微信聊天、瀏覽網(wǎng)頁(yè)、地圖導(dǎo)航、網(wǎng)上購(gòu)物、外賣(mài)訂餐等,這些業(yè)務(wù)的海量數(shù)據(jù)都構(gòu)建在大規(guī)模網(wǎng)絡(luò)云資源池之上。當(dāng)14億中國(guó)人把衣食住行搬上移動(dòng)互聯(lián)網(wǎng)的同時(shí),也給網(wǎng)絡(luò)云資源池帶來(lái)巨大業(yè)務(wù)挑戰(zhàn)。
首先,用戶需求動(dòng)態(tài)變化,傳統(tǒng)業(yè)務(wù)流量主要是端到端模式,較為穩(wěn)定;而互聯(lián)網(wǎng)流量易受熱點(diǎn)內(nèi)容牽引,數(shù)據(jù)流量流向復(fù)雜和規(guī)模多變:比如雙十一購(gòu)物狂潮,電商平臺(tái)訂單創(chuàng)建峰值達(dá)到58.3萬(wàn)筆,要求通信網(wǎng)絡(luò)提供高并發(fā)支持;又如優(yōu)酷春節(jié)期間有超過(guò)23億人次上網(wǎng)刷劇、抖音拜年短視頻增長(zhǎng)超10倍,需要通信網(wǎng)絡(luò)能夠靈活擴(kuò)充帶寬。面對(duì)用戶動(dòng)態(tài)多變的需求,通信網(wǎng)絡(luò)需要具備快速洞察和響應(yīng)用戶需求的能力,提供高效、彈性、智能的數(shù)據(jù)服務(wù)。
“隨著通信網(wǎng)絡(luò)管道十倍百倍加粗、節(jié)點(diǎn)數(shù)從千萬(wàn)級(jí)逐漸躍升至百億千億級(jí),如何‘接得住、存得下’海量數(shù)據(jù),成為網(wǎng)絡(luò)云資源池建設(shè)面臨的巨大考驗(yàn)”,李輝表示。一直以來(lái),作為新數(shù)據(jù)存儲(chǔ)首倡者和引領(lǐng)者,浪潮存儲(chǔ)攜手通信行業(yè)用戶,不斷 探索 提速通信網(wǎng)絡(luò)云基礎(chǔ)設(shè)施的各種姿勢(shì)。
早在2018年,浪潮存儲(chǔ)就參與了通信行業(yè)基礎(chǔ)設(shè)施建設(shè),四年內(nèi)累計(jì)交付約5000套存儲(chǔ)產(chǎn)品,涵蓋全閃存儲(chǔ)、高端存儲(chǔ)、分布式存儲(chǔ)等明星產(chǎn)品。其中在網(wǎng)絡(luò)云建設(shè)中,浪潮存儲(chǔ)已連續(xù)兩年兩次中標(biāo)全球最大的NFV網(wǎng)絡(luò)云項(xiàng)目,其中在網(wǎng)絡(luò)云二期建設(shè)中,浪潮存儲(chǔ)提供數(shù)千節(jié)點(diǎn),為上層網(wǎng)元、應(yīng)用提供高效數(shù)據(jù)服務(wù)。在最新的NFV三期項(xiàng)目中,浪潮存儲(chǔ)也已中標(biāo)。
能夠與通信用戶在網(wǎng)絡(luò)云建設(shè)中多次握手,背后是浪潮存儲(chǔ)的持續(xù)技術(shù)投入與創(chuàng)新。浪潮存儲(chǔ)6年內(nèi)投入超30億研發(fā)經(jīng)費(fèi),開(kāi)發(fā)了業(yè)界首個(gè)“多合一”極簡(jiǎn)架構(gòu)的浪潮并行融合存儲(chǔ)系統(tǒng)。此存儲(chǔ)系統(tǒng)能夠統(tǒng)籌管理數(shù)千個(gè)節(jié)點(diǎn),實(shí)現(xiàn)性能、容量線性擴(kuò)展;同時(shí)基于浪潮iTurbo智能加速引擎的智能IO均衡、智能資源調(diào)度、智能元數(shù)據(jù)管理等功能,與自研NVMe SSD閃存盤(pán)進(jìn)行系統(tǒng)級(jí)別聯(lián)調(diào)優(yōu)化,讓百萬(wàn)級(jí)IO均衡落盤(pán)且路徑更短,將存儲(chǔ)系統(tǒng)性能發(fā)揮到極致。
“為了確保全球最大規(guī)模的網(wǎng)絡(luò)云正常上線運(yùn)行,我們聯(lián)合用戶對(duì)存儲(chǔ)集群展開(kāi)了長(zhǎng)達(dá)數(shù)月的魔鬼測(cè)試”,浪潮存儲(chǔ)工程師表示。網(wǎng)絡(luò)云的IO以虛擬機(jī)數(shù)據(jù)和上層應(yīng)用數(shù)據(jù)為主,浪潮按照每個(gè)存儲(chǔ)集群支持15000臺(tái)虛機(jī)進(jìn)行配置,分別對(duì)單卷隨機(jī)讀寫(xiě)、順序?qū)?、混合讀寫(xiě)以及全系統(tǒng)隨機(jī)讀寫(xiě)的IO、帶寬、時(shí)延等指標(biāo)進(jìn)行了360無(wú)死角測(cè)試,達(dá)到了通信用戶提出的單卷、系統(tǒng)性能不低于4萬(wàn)和12萬(wàn)IOPS、時(shí)延小于3ms的要求,產(chǎn)品成熟度得到了驗(yàn)證。
以通信行業(yè)為例,2020年全國(guó)移動(dòng)互聯(lián)網(wǎng)接入流量1656億GB,相當(dāng)于中國(guó)14億人每人消耗118GB數(shù)據(jù);其中春節(jié)期間,移動(dòng)互聯(lián)網(wǎng)更是創(chuàng)下7天消耗36億GB數(shù)據(jù)流量的記錄,還“捎帶”打了548億分鐘電話、發(fā)送212億條短信……海量實(shí)時(shí)數(shù)據(jù)洪流,在網(wǎng)絡(luò)云資源池(NFV)支撐下收放自如,其中分布式存儲(chǔ)平臺(tái)發(fā)揮了作用。如此樣板工程,其巨大示范及拉動(dòng)作用不言而喻。
顧名思義就是非關(guān)系型數(shù)據(jù)庫(kù),它的出現(xiàn),就是為了解決關(guān)系型數(shù)據(jù)庫(kù)存在的一些問(wèn)題,可以用NoSQL來(lái)進(jìn)行彌補(bǔ),現(xiàn)在聽(tīng)得比較多的NoSQL數(shù)據(jù)庫(kù)有Redis、MongoDB、HBase等。
常見(jiàn)的非關(guān)系型數(shù)據(jù)庫(kù)有:1、mongodb;2、cassandra;3、redis;4、hbase;5、neo4j。其中mongodb是非常著名的NoSQL數(shù)據(jù)庫(kù),它是一個(gè)面向文檔的開(kāi)源數(shù)據(jù)庫(kù)。
常見(jiàn)的幾種非關(guān)系型數(shù)據(jù)庫(kù):
1、MongoDB
MongoDB是最著名的NoSQL數(shù)據(jù)庫(kù)。它是一個(gè)面向文檔的開(kāi)源數(shù)據(jù)庫(kù)。MongoDB是一個(gè)可伸縮和可訪問(wèn)的數(shù)據(jù)庫(kù)。它在c++中。MongoDB同樣可以用作文件系統(tǒng)。在MongoDB中,JavaScript可以作為查詢語(yǔ)言使用。通過(guò)使用sharding MongoDB水平伸縮。它在流行的JavaScript框架中非常有用。
人們真的很享受分片、高級(jí)文本搜索、gridFS和map-reduce功能。驚人的性能和新特性使這個(gè)NoSQL數(shù)據(jù)庫(kù)在我們的列表中名列第一。
特點(diǎn):提供高性能;自動(dòng)分片;運(yùn)行在多個(gè)服務(wù)器上;支持主從復(fù)制;數(shù)據(jù)以JSON樣式文檔的形式存儲(chǔ);索引文檔中的任何字段;由于數(shù)據(jù)被放置在碎片中,所以它具有自動(dòng)負(fù)載平衡配置;支持正則表達(dá)式搜索;在失敗的情況下易于管理。
優(yōu)點(diǎn):易于安裝MongoDB;MongoDB Inc.為客戶提供專業(yè)支持;支持臨時(shí)查詢;高速數(shù)據(jù)庫(kù);無(wú)模式數(shù)據(jù)庫(kù);橫向擴(kuò)展數(shù)據(jù)庫(kù);性能非常高。
缺點(diǎn):不支持連接;數(shù)據(jù)量大;嵌套文檔是有限的;增加不必要的內(nèi)存使用。
2、Cassandra
Cassandra是Facebook為收件箱搜索開(kāi)發(fā)的。Cassandra是一個(gè)用于處理大量結(jié)構(gòu)化數(shù)據(jù)的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)。通常,這些數(shù)據(jù)分布在許多普通服務(wù)器上。您還可以添加數(shù)據(jù)存儲(chǔ)容量,使您的服務(wù)保持在線,您可以輕松地完成這項(xiàng)任務(wù)。由于集群中的所有節(jié)點(diǎn)都是相同的,因此不需要處理復(fù)雜的配置。
Cassandra是用Java編寫(xiě)的。Cassandra查詢語(yǔ)言(CQL)是查詢Cassandra數(shù)據(jù)庫(kù)的一種類似sql的語(yǔ)言。因此,Cassandra在最佳開(kāi)源數(shù)據(jù)庫(kù)中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。
特點(diǎn):線性可伸縮;;保持快速響應(yīng)時(shí)間;支持原子性、一致性、隔離性和耐久性(ACID)等屬性;使用Apache Hadoop支持MapReduce;分配數(shù)據(jù)的最大靈活性;高度可伸縮;點(diǎn)對(duì)點(diǎn)架構(gòu)。
優(yōu)點(diǎn):高度可伸縮;無(wú)單點(diǎn)故障;Multi-DC復(fù)制;與其他基于JVM的應(yīng)用程序緊密集成;更適合多數(shù)據(jù)中心部署、冗余、故障轉(zhuǎn)移和災(zāi)難恢復(fù)。
缺點(diǎn):對(duì)聚合的有限支持;不可預(yù)知的性能;不支持特別查詢。
3、Redis
Redis是一個(gè)鍵值存儲(chǔ)。此外,它是最著名的鍵值存儲(chǔ)。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C語(yǔ)言編寫(xiě)的。此外,它是根據(jù)BSD授權(quán)的。
特點(diǎn):自動(dòng)故障轉(zhuǎn)移;將其數(shù)據(jù)庫(kù)完全保存在內(nèi)存中;事務(wù);Lua腳本;將數(shù)據(jù)復(fù)制到任意數(shù)量的從屬服務(wù)器;鑰匙的壽命有限;LRU驅(qū)逐鑰匙;支持發(fā)布/訂閱。
優(yōu)點(diǎn):支持多種數(shù)據(jù)類型;很容易安裝;非常快(每秒執(zhí)行約11萬(wàn)組,每秒執(zhí)行約81000次);操作都是原子的;多用途工具(在許多用例中使用)。
缺點(diǎn):不支持連接;存儲(chǔ)過(guò)程所需的Lua知識(shí);數(shù)據(jù)集必須很好地適應(yīng)內(nèi)存。
4、HBase
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于 Fay Chang 所撰寫(xiě)的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。
HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。
5、neo4j
Neo4j被稱為原生圖數(shù)據(jù)庫(kù),因?yàn)樗行У貙?shí)現(xiàn)了屬性圖模型,一直到存儲(chǔ)層。這意味著數(shù)據(jù)完全按照白板的方式存儲(chǔ),數(shù)據(jù)庫(kù)使用指針導(dǎo)航和遍歷圖。Neo4j有數(shù)據(jù)庫(kù)的社區(qū)版和企業(yè)版。企業(yè)版包括Community Edition必須提供的所有功能,以及額外的企業(yè)需求,如備份、集群和故障轉(zhuǎn)移功能。
特點(diǎn):它支持唯一的約束;Neo4j支持完整的ACID(原子性、一致性、隔離性和持久性)規(guī)則;Java API: Cypher API和本機(jī)Java API;使用Apache Lucence索引;簡(jiǎn)單查詢語(yǔ)言Neo4j CQL;包含用于執(zhí)行CQL命令的UI: Neo4j Data Browser。
優(yōu)點(diǎn):容易檢索其相鄰節(jié)點(diǎn)或關(guān)系細(xì)節(jié),無(wú)需連接或索引;易于學(xué)習(xí)Neo4j CQL查詢語(yǔ)言命令;不需要復(fù)雜的連接來(lái)檢索數(shù)據(jù);非常容易地表示半結(jié)構(gòu)化數(shù)據(jù);大型企業(yè)實(shí)時(shí)應(yīng)用程序的高可用性;簡(jiǎn)化的調(diào)優(yōu)。
缺點(diǎn):不支持分片
一般將NoSQL數(shù)據(jù)庫(kù)分為四大類:鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)、列存儲(chǔ)數(shù)據(jù)庫(kù)、文檔型數(shù)據(jù)庫(kù)和圖形(Graph)數(shù)據(jù)庫(kù)。它們的數(shù)據(jù)模型、優(yōu)缺點(diǎn)、典型應(yīng)用場(chǎng)景。
鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)Key指向Value的鍵值對(duì),通常用hash表來(lái)實(shí)現(xiàn)查找速度快數(shù)據(jù)無(wú)結(jié)構(gòu)化(通常只被當(dāng)作字符串或者二進(jìn)制數(shù)據(jù))內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問(wèn)負(fù)載,也用于一些日志系統(tǒng)等。
列存儲(chǔ)數(shù)據(jù)庫(kù),以列簇式存儲(chǔ),將同一列數(shù)據(jù)存在一起查找速度快,可擴(kuò)展性強(qiáng),更容易進(jìn)行分布式擴(kuò)展功能相對(duì)局限分布式的文件系統(tǒng)。
文檔型數(shù)據(jù)庫(kù),Key-Value對(duì)應(yīng)的鍵值對(duì),Value為結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)要求不嚴(yán)格,表結(jié)構(gòu)可變(不需要像關(guān)系型數(shù)據(jù)庫(kù)一樣需預(yù)先定義表結(jié)構(gòu)),查詢性能不高,而且缺乏統(tǒng)一的查詢語(yǔ)法,Web應(yīng)用。
圖形(Graph)數(shù)據(jù)庫(kù),圖結(jié)構(gòu),利用圖結(jié)構(gòu)相關(guān)算法(如最短路徑尋址,N度關(guān)系查找等),很多時(shí)候需要對(duì)整個(gè)圖做計(jì)算才能得出需要的信息,而且這種結(jié)構(gòu)不太好做分布式的集群方案,社交網(wǎng)絡(luò),推薦系統(tǒng)等。
網(wǎng)站欄目:最常用的nosql,最常用的100個(gè)wifi密碼
標(biāo)題鏈接:http://sd-ha.com/article12/hdhegc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、微信小程序、響應(yīng)式網(wǎng)站、定制開(kāi)發(fā)、商城網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)