數(shù)據(jù)統(tǒng)一平臺(tái)的選型
時(shí)間:2022-04-26 22:39:01 | 來(lái)源:行業(yè)動(dòng)態(tài)
時(shí)間:2022-04-26 22:39:01 來(lái)源:行業(yè)動(dòng)態(tài)
雖然數(shù)據(jù)中臺(tái)是近幾年才有的概念,但其實(shí)業(yè)界一直在數(shù)據(jù)匯集的道路上探索,從早期的數(shù)據(jù)庫(kù)到后來(lái)的數(shù)據(jù)倉(cāng)庫(kù),到后來(lái)的Hadoop以及今天的NoSQL。
用傳統(tǒng)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)多個(gè)數(shù)據(jù)源的匯集是很自然的一個(gè)思路,占據(jù)了市場(chǎng)的主流地位Oracle數(shù)據(jù)庫(kù)就被廣泛應(yīng)用。為了支持對(duì)海量數(shù)據(jù)量的存儲(chǔ)和管理,Oracle還推出了Oracle RAC。不過(guò),傳統(tǒng)數(shù)據(jù)庫(kù)主要場(chǎng)景是傳統(tǒng)交互式業(yè)務(wù)。另外,在大數(shù)據(jù)時(shí)代傳統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)模式不夠靈活,很難支持新興的數(shù)據(jù)結(jié)構(gòu),還有其難以橫向擴(kuò)展、成本高等弱點(diǎn)影響了其普及和使用。
后來(lái),為了應(yīng)對(duì)數(shù)據(jù)庫(kù)的擴(kuò)展難和性能瓶頸,市場(chǎng)出現(xiàn)了數(shù)據(jù)倉(cāng)庫(kù),Teradata、Greenplum等正是在這個(gè)時(shí)代興起。但是數(shù)據(jù)倉(cāng)庫(kù)依然有傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的一些弱點(diǎn),比如不支持非結(jié)構(gòu)化數(shù)據(jù),解決不了移動(dòng)時(shí)代的大數(shù)據(jù)問(wèn)題,成本高。這給Hadoop留下的市場(chǎng)空間。
近十年來(lái)以Hadoop為代表的大數(shù)據(jù)平臺(tái)迅速崛起。Hadoop雖然支持海量的擴(kuò)展,但不具有實(shí)時(shí)性。Hadoop難以落地的另一個(gè)問(wèn)題是其體系架構(gòu)復(fù)雜,對(duì)人才技能要求高。NoSQL出現(xiàn)彌補(bǔ)了Hadoop的不足。NoSQL普遍采用分布式架構(gòu),可以支持大數(shù)據(jù),支持橫向擴(kuò)展,具有靈活的模型(支持JSON),能支持實(shí)時(shí)場(chǎng)景(如Redis、Elastic Search等)。但NoSQL大多數(shù)針對(duì)特定應(yīng)用場(chǎng)景,功能并不全面,不支持事務(wù)。
不過(guò),作為NoSQL的代表,MongoDB是一個(gè)例外。MongoDB有最像關(guān)系型數(shù)據(jù)庫(kù)的NoSQL數(shù)據(jù)庫(kù)之稱(chēng),它同時(shí)兼具關(guān)系數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)的特點(diǎn),其還具有對(duì)事務(wù)的支持能力,使其成為數(shù)據(jù)中臺(tái)中的數(shù)據(jù)平臺(tái)的首選。
眾所周知,MongoDB 是多模數(shù)據(jù)庫(kù),能支持各種數(shù)據(jù)格式,無(wú)論是結(jié)構(gòu)化數(shù)據(jù)還是各種非結(jié)構(gòu)化數(shù)據(jù),包括各種IOT數(shù)據(jù)、圖片、日志等都可以通過(guò)MongoDB統(tǒng)一實(shí)現(xiàn)存儲(chǔ)和管理。MongoDB還是一個(gè)全功能的數(shù)據(jù)存儲(chǔ)平臺(tái),這是與其他NoSQL數(shù)據(jù)庫(kù)的一大區(qū)別。大多數(shù)NoSQL是為特定應(yīng)用場(chǎng)景設(shè)計(jì)的,比如,Redis用作緩存非常高效,Elastic Search做全文搜索非常好用,但換到其他應(yīng)用場(chǎng)景就不太適用,因此,它們一般要搭配其他數(shù)據(jù)平臺(tái)使用,而MongoDB的功能非常全面,可以廣泛適用各種應(yīng)用場(chǎng)景。
MongoDB還具有同時(shí)支持分析性應(yīng)用(OLAP)和事務(wù)性應(yīng)用(OLTP)的全渠道支持能力。MongoDB采用的是分布式架構(gòu),支持讀寫(xiě)分離,其主節(jié)點(diǎn)完成數(shù)據(jù)的寫(xiě)入,從節(jié)點(diǎn)負(fù)責(zé)讀,在需要時(shí)很容易實(shí)現(xiàn)擴(kuò)展,從而保證數(shù)據(jù)庫(kù)的讀寫(xiě)性能。另外,MongoDB可以在從節(jié)點(diǎn)中配置一些節(jié)點(diǎn)專(zhuān)門(mén)負(fù)責(zé)數(shù)據(jù)的分析,從而同時(shí)支持交互性應(yīng)用和支持分析型應(yīng)用。而且,與數(shù)據(jù)倉(cāng)庫(kù)需要定時(shí)抽取數(shù)據(jù)不同,MongoDB所分析的數(shù)據(jù)都是實(shí)時(shí)的、新鮮的,無(wú)需做專(zhuān)門(mén)的ETL。
MongoDB對(duì)程序員的友好也是其一大亮點(diǎn)。傳統(tǒng)數(shù)據(jù)庫(kù)建模一般經(jīng)過(guò)概念建模、邏輯建模,最后通過(guò)物理建模轉(zhuǎn)化成數(shù)據(jù)庫(kù)中的各種關(guān)系表,而MongoDB所使用的數(shù)據(jù)模型非常接近邏輯模型,少了復(fù)雜的物理建模過(guò)程,很多業(yè)務(wù)人員就可以完成。而且,MongoDB對(duì)象模型非常接近于對(duì)象,建模后可以直接以Restful API交付,非常好地支持?jǐn)?shù)據(jù)中臺(tái)中以API形式交付數(shù)據(jù)服務(wù)。
另外,MongoDB還有一些貼心的功能可以進(jìn)一步簡(jiǎn)化開(kāi)發(fā)人員的工作。比如,MongoDB提供有觸發(fā)器API,特別是適合發(fā)生某個(gè)事件后觸發(fā)后續(xù)的動(dòng)作,如出現(xiàn)故障后發(fā)出報(bào)警、在大屏上點(diǎn)亮警報(bào)燈等。開(kāi)發(fā)人員可以通過(guò)訂閱該API進(jìn)行實(shí)時(shí)的、響應(yīng)式的處理,簡(jiǎn)化了編程工作。還有,過(guò)去NoSQL數(shù)據(jù)庫(kù)普遍不支持事務(wù),但MongoDB從4.2版本開(kāi)始具有了完備的事務(wù)支持能力,從而進(jìn)一步加大了NoSQL的應(yīng)用范圍。
實(shí)際上,近幾年越來(lái)越多的企業(yè)開(kāi)始選擇MongoDB。根據(jù)MongoDB官方的數(shù)據(jù),目前在全球100多個(gè)國(guó)家擁有正式付費(fèi)客戶(hù)17,000多家客戶(hù),在MongoDB的社區(qū)服務(wù)器總下載量超過(guò)9000萬(wàn)(中國(guó)是全球下載最多的國(guó)家)。更多人使用反過(guò)來(lái)促使MongoDB不斷完善和改進(jìn)其功能,也帶動(dòng)了MongoDB生態(tài)的完善,這些為用戶(hù)在數(shù)據(jù)中臺(tái)中選擇MongoDB進(jìn)一步增添了信心,從而幫助MongoDB成為數(shù)據(jù)中臺(tái)的首選數(shù)據(jù)平臺(tái)。
關(guān)鍵詞:平臺(tái),統(tǒng)一,數(shù)據(jù)