關(guān)系型數(shù)據(jù)庫到MongoDB的戰(zhàn)略遷移實例分析
CSDN:請先和大家介紹下自己和您目前所從事的工作,以及關(guān)注哪些技術(shù)領(lǐng)域?
唐建法:我目前在MongoDB官方擔任的是負責MongoDB相關(guān)解決方案架構(gòu)師。關(guān)注的領(lǐng)域是新一代數(shù)據(jù)處理的相關(guān)技術(shù)以及更多的是如何與現(xiàn)代軟件架構(gòu)相結(jié)合提供完整的IT解決方案。
CSDN:是什么樣的契機讓您接觸到MongoDB,并最終選擇它作為自己的研究方向?MongoDB吸引您的特性有哪些?
唐建法:我是一個多年的開源軟件受惠者和貢獻者。第一次接觸純屬偶然,那是在2011年,彼時我還在舊金山和幾個朋友創(chuàng)業(yè)。有一天無意中走進了MongoDB主辦的一個技術(shù)大會,抱著試一試的心態(tài),我把代碼遷移到Mongo上來解決困擾我們許久的MySQL性能問題。性能問題確實解決了,但是真正打動我的卻是使用JSON格式來管理數(shù)據(jù)這一煥然一新的概念和非常直觀的持久化API。數(shù)據(jù)還可以這么玩!
CSDN:能否以MongoDB為例,對比分析NoSQL與關(guān)系型數(shù)據(jù)庫,簡要談一談其各有什么優(yōu)缺點及適用場景?
唐建法:這里有一張圖可以幫助大家從3萬尺高空來理解兩者的大致區(qū)別。
圖左側(cè)是關(guān)系型數(shù)據(jù)庫的一些共性。Oracle、SQLServer、MySQL諸如此類的關(guān)系型數(shù)據(jù)庫的優(yōu)勢就是他們使用的SQL查詢語句功能非常強大,表達力很豐富。無論多復(fù)雜的問題,基本上都能夠用一個或幾個SQL語句完成。關(guān)系型數(shù)據(jù)庫的ACID事務(wù)性,雖然各個數(shù)據(jù)庫支持力度不同,但是總體來說都有不錯的能力和應(yīng)用程序服務(wù)器配合為程序員提供較好的事務(wù)模型,保證數(shù)據(jù)庫內(nèi)數(shù)據(jù)及規(guī)則的一致性。而以MongoDB領(lǐng)頭的NoSQL數(shù)據(jù)庫陣營中,則以動態(tài)數(shù)據(jù)模式和橫向擴展能力為主打利器,是針對于現(xiàn)代的數(shù)據(jù)問題提出的解決方案。動態(tài)或者可變模式是處理新一代多變多態(tài)數(shù)據(jù)的最重要能力,否則技術(shù)團隊將淪陷于無休止的關(guān)系型模式設(shè)計、迭代、數(shù)據(jù)遷移的繁瑣工作中。橫向擴展能力則是百度云、京東、360等大型互聯(lián)網(wǎng)公司從MySQL集群遷移到MongoDB的主要誘因:MongoDB的分片技術(shù),借助于數(shù)據(jù)相對獨立,容易分布的JSON文檔模型,在處理海量數(shù)據(jù)能力上具有更可靠的的水平擴展能力和易管理性。
從技術(shù)應(yīng)用場景來說,我認為MongoDB特別適合數(shù)據(jù)量較大(億級以上)、數(shù)據(jù)結(jié)構(gòu)復(fù)雜多變,以及絕大部分的現(xiàn)代Mobile和Web應(yīng)用。對使用Microservices架構(gòu)的同學,更可以大膽考慮MongoD,B因為在微服務(wù)架構(gòu)下對強事務(wù)的需求相對會少很多。
CSDN:請您結(jié)合MongoDB常見的企業(yè)應(yīng)用設(shè)計模式或使用場景,簡要介紹一下實際案例下DaaS這一應(yīng)用模式。
唐建法:MongoDB常見的企業(yè)級應(yīng)用模式有幾種,如DaaS、Single View、ODS、Mainframe Offloading等。其實這幾種都是CQRS設(shè)計模式中的某種體現(xiàn)。在這里,DaaS(Data as a Service) 就像SaaS模式一樣,把數(shù)據(jù)作為一種功能來提供給客戶端,也即應(yīng)用程序。這些數(shù)據(jù)通過API的方式讓應(yīng)用程序可以完成所有數(shù)據(jù)的需求,無論是簡單CRUD(通過REST)還是傳統(tǒng)的報表分析(SQL或Big Data API),抑或是基于事件的Messaging。
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
關(guān)系型數(shù)據(jù)庫到MongoDB的戰(zhàn)略遷移實例分析下載
相關(guān)電子資料下載
- 關(guān)系型數(shù)據(jù)庫的基本原理(什么是關(guān)系型數(shù)據(jù)庫) 264
- 10張圖帶你輕松理解關(guān)系型數(shù)據(jù)庫系統(tǒng)的工作原理 516
- OpenHarmony關(guān)系型數(shù)據(jù)庫概述 393
- OpenHarmony關(guān)系型數(shù)據(jù)庫查詢結(jié)果呈現(xiàn) 995
- 使用關(guān)系型數(shù)據(jù)庫或NoSQL數(shù)據(jù)庫的挑戰(zhàn) 494
- 中國電信發(fā)布行業(yè)首個云原生關(guān)系型數(shù)據(jù)庫 1240
- 傳統(tǒng)關(guān)系型數(shù)據(jù)庫和ES的差別 2050
- 輕松設(shè)計關(guān)系型數(shù)據(jù)庫教程 1175
- 沐融科技正式加入openGauss社區(qū),打造企業(yè)級開源關(guān)系型數(shù)據(jù)庫 1634
- 3種MongoDB的高可用架構(gòu)介紹 2018