vs需要遷移 2020資料庫選型攻略 專用VS多模

2021-10-12 00:03:06 字數 3253 閱讀 6078

資料庫選型越來越難,據db-engines資料庫流行度排行榜顯示,目前全球有多達359個開源和商業的資料庫。

從應用型別看,有oltp事務型資料庫,有olap分析型資料庫,還有htap混合型資料庫。

從儲存方式看,有關係型資料庫和非關係型資料庫(nosql)之分。而nosql資料庫又依據支援的資料模型不同,分為鍵值資料庫、文件資料庫,列式資料庫,圖形資料庫等。

如果從架構型別看,又分share everything、share storage、share nothing。

資料庫市場百花齊放雖然給企業帶來了更多選擇,但也導致選型變得更加困難。

專用 vs 多模

關於專用資料庫與多模資料庫之爭,由來已久。其中,aws屬於專用資料庫派,認為資料庫就應該像汽車一樣,不同的汽車解決不同的運輸需求,不同資料庫去解決不同場景需求,而不是通過關聯式資料庫來一刀切。

因此,aws提供的資料庫產品組合多達十幾種。

aws 資料庫服務一覽圖

而甲骨文、微軟、sap則屬於「瑞士軍刀」派,即多模資料庫派。通過擴充套件其sql查詢功能或新增功能(如r或python支援)來實現多模功能。

去年,developerweek一組調查資料顯示。有將近一半受訪者實際上使用了不止一種資料庫來支援其業務應用程式,而不是單個資料庫!使用多個資料庫的比例為44.3%,使用乙個資料庫的比例為55.7%。雖然看起來使用乙個資料庫的比例還是更多,但不能忽略一點,多資料庫的使用在過去10年出現了**式增長。

資料顯示,75.6%的多資料庫型別組合使用了sql和nosql資料庫。這進一步說明,對於許多企業來說,並不能一刀切。

顯然,資料格式、應用場景紛繁複雜,很多需求已經不是單一資料庫能解決的。同時,微服務架構的崛起,也在推動企業不同業務場景採用不同的資料庫,如果選擇不當,會導致服務的效能上不去。

因此,選型時不要將企業的資料庫限制在一種資料庫上,相互補充才能填補資料庫需求的空白。

選型要點

1、業務場景

任何脫離業務場景需求的資料庫選型都是耍流氓。

資料庫選型的決定性因素是結合業務應用場景,分析目前已有的需求和未來可能會出現的新需求,來考量選擇何種資料庫。

業務用資料庫來做什麼?分析還是交易?或者兩者兼而有之?業務要處理什麼樣的資料?對資料庫效能需求是什麼?

如果是傳統的erp、crm、財務等企業內部應用,需要事務完整性,保證acid事務,那麼,毫無疑問,關係型資料庫是最佳選擇。如果業務要做物聯網資料採集和監控,需要高頻、實時、持續的寫入,那麼,時序資料庫是正確的選擇。

業務要處理什麼樣的資料?結構化?半結構化?非結構化資料?決定需要支援的資料模型。原則上「什麼資料模型,就用什麼庫。」

業務需要處理的多大的資料規模、併發吞吐量、響應時間需求是什麼?決定了對資料庫的效能需求。

如果業務是秒殺,春節火車票等,有超高峰值業務,那麼,分布式資料庫會是乙個不錯的選擇。

不清楚什麼業務場景下應該選用哪種資料庫系統的,可以參考上圖。

2、可運維性

有種說法,資料庫選型不考慮可運維性的都應該槍斃。雖然說法誇張,但也有其道理,畢竟,資料庫買來最後是dba來運維,dba的意見不能忽視。

自身團隊技術儲備如何?選型要考慮現有開發、運維人員的技能,盡量選擇學習曲線短的。

資料庫選型,很多人會忽略生態,乙個好的資料庫不僅自身強大,周邊生態完善很重要。與周邊上下游產品的相容性,配套軟體、工具、技術人才等都對可運維性產生極大影響。

每一種資料庫都不簡單,掌握都需要乙個過程。資料庫發生問題,如何快速定位並解決問題?如果有個活躍的使用者社群,dba會有信心很多。

如果選擇了一種資料庫,但招不到dba,一旦人員流失,讓資料庫處於無人維護的境地,那也挺要命的。

良好的工具生態可以節省企業的開發及運維人員投入。例如:遷移工具,aws dms早在2023年3月就已推出,可以讓使用者輕鬆地將其資料庫遷移過來,同時避免停機。事實證明該服務很受歡迎,aws官方資料顯示,截止到目前,dms已經幫助20萬個資料庫進行遷移。

如果你選擇的是雲資料庫,那麼,有serverless(無伺服器)模式的雲資料庫會讓運維更輕鬆,以aws為例,amazon aurora serverless,amazon dynamodb,amazon timestream,amazon keyspaces,這些都是無伺服器版本的資料庫,資料庫可以根應用程式需求來自動啟動、關閉以及擴充套件或縮減,而無需管理任何資料庫例項,能極大降低資料庫管理的工作量。因為,手動管理資料庫容量需要占用寶貴的時間,也可能導致資料庫資源的使用效率低下。

3、成本

資料庫選型不僅要考慮部署資料庫的硬體資源成本、軟體成本、服務成本和人力成本,還要考慮**的成本,比如遷移成本、維護成本、學習成本,運營成本等。

隨著開源資料庫的流行,存在一種選型誤區,認為開源資料庫省錢。其實,開源資料庫未必就比商業資料庫成本低,雖然沒有license費用,但對技術團隊要求很高,對於一般傳統行業是玩不轉的,如果你的技術團隊不具備這種能力,還不如商用資料庫更省心甚至省錢。

如果想在兩者中取得平衡,那麼,一些結合了新技術新硬體的新興資料庫可能是不錯的選擇。比如:aws aurora,既相容主流的開源資料庫mysql和postgresql,又具備商業資料庫的效能優勢。用大白話說,就是既能省錢,效能又要優於開源資料庫。

分布式資料庫雖然很火,但也不要盲目趕時髦,要用對地方,要清楚什麼場景適合分布式資料庫,什麼場景不適合,否則,不僅達不到預期效果還更費錢。

寫在最後

雖然,資料庫領域各種新技術新概念不斷湧現,但還談不上誰替代誰。

目前,沒有萬能的資料庫,只有最合適的資料庫。資料庫選型還是要根據業務需求來選擇最合適的產品,切勿盲目趕時髦,去追新求熱。

vs需要遷移 2020資料庫選型攻略 專用VS多模

資料庫選型越來越難,據db engines資料庫流行度排行榜顯示,目前全球有多達359個開源和商業的資料庫。從應用型別看,有oltp事務型資料庫,有olap分析型資料庫,還有htap混合型資料庫。從儲存方式看,有關係型資料庫和非關係型資料庫 nosql 之分。而nosql資料庫又依據支援的資料模型不...

資料庫選型

資料處理大致可以分成兩大類 聯機事務處理oltp on line transaction processing 聯機分析處理olap on line analytical processing 1 oltp是傳統的關係型資料庫的主要應用,主要是基本的 日常的事務處理,例如銀行交易。oltp 系統強調...

資料庫選型

mysql 是乙個最流行的關係型資料庫,在網際網路產品中應用比較廣泛。一般情況下,mysql 資料庫是選擇的第一方案,基本上有 80 90 的場景都是基於 mysql 資料庫的。因為,需要關係型資料庫進行管理,此外,業務存在許多事務性的操作,需要保證事務的強一致性。同時,可能還存在一些複雜的 sql...