支持數據多樣性的多模型數據庫的興起
在管理數據多樣性方面,數據庫世界變得有些混亂。
不久前,除了少數領先的數據庫管理系統(DBMS)平臺外,數據庫僅支持單個數據模型。而多模型數據管理的復興正在改變這種情況,并為數據庫架構師帶來好處。
多樣化數據結構帶來的挑戰
存儲和處理不同結構的數據是一項挑戰,這里沒有放之四海而皆準的標準。數據有多種形式,一些最受歡迎的數據模型包括關系、文檔、鍵值和圖形。
在過去,當處理新的數據結構時,我們要么將數據強加到現有DBMS的數據模型中,要么購買支持該新結構的新DBMS。
在最長的時間里,我們使用的是關系(SQL)DBMS及其前身來解決結構化數據需求。事實證明,這對于我們的大部分數據都適用。盡管沒有進行優化,但是我們仍然使用這些傳統數據庫用于(應用程序中)少量的非結構化數據。
隨著新數據源(大數據和實時處理)帶來的半結構化和非結構化數據的增加,我們看到大家開始對專用非關系型DBMS選項感興趣。這些數據庫(通常稱為NoSQL數據庫)以非表格結構對數據進行建模。
然而,數據模型和新的DBMS模型的普及帶來困境。使用多種數據庫技術管理不同的數據模型帶來優化,但增加了復雜性。
解決單模型困境
專用的單模型DBMS產品優化了數據存儲和處理。但是,在架構中添加其他DBMS會增加復雜性,包括增加集成、開發、維護和操作。這迫使企業尋求更好的方法來處理各種數據模型。
幸運的是,SQL和NoSQL DBMS供應商都互相學習彼此功能(包括多數據模型),希望企業合理化其DBMS技術到單個數據存儲。數據模型支持曾經是DBMS之間的差異因素,而現在它成為共同因素。
什么是多模型數據庫
單個數據管理系統內數據模型的融合催生了一種新的DBMS類,稱為多模型數據庫。一些領先的DBMS選項已經支持多種模型已有一段時間,但目前我們還沒有看到快速部署。
部署方法可能會有所不同。我更喜歡這樣的架構:在單個集成數據庫引擎中,以本機數據類型和結構存儲支持的模型。這樣可在所有模型之間提供一致的數據管理,并允許在單個接口內中對數據進行多模型訪問。
從哪里開始使用多模型數據庫
初看之下,面對多語言持久性,多模型數據庫似乎飛速發展,多語言持久性主張根據其數據用途將數據存儲在多種數據存儲技術中。但是,如果可在同一個DBMS中處理不同的數據模型會如何?
如果你已經投資于多模型DBMS,并且它滿足或超過了你的數據和應用程序的功能性和非功能性要求,那么,更好的做法是利用企業的現有技術,而不是引入新技術。
隨著多模型數據庫的出現,我們現在可以將數據模型和DBMS分為兩個方面的決策:
首先,確定最適合你的數據結構和使用的數據模型。
然后,確定哪些DBMS選項支持該數據模型和應用程序的需求。實際上,你可以期望技術架構中同時具有單模型和多模型DBMS選項。
對于應用程序的特殊用途組件,單模型DBMS可能會提供最佳的數據管理。對于所有其他組件,多模型DBMS將合理化和簡化你的技術架構。
當涉及到數據多樣性時,并沒有適用于所有情況的數據模型。無論你選擇使用單模型數據庫還是多模型數據庫,現在都沒有理由將數據強制為非優化數據模型。