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