雲架構那些事兒:數據層存儲雲化的實踐

雲架構那些事兒:數據層存儲雲化的實踐

業務上雲,在面臨海量的業務數據,如何在層出不窮的數據庫中選擇適合自身業務應用的解決方案,成為架構設計的難點。

傳統的集中化存儲,如將所有數據存儲在Oracle中的方式已經沒有辦法滿足現在多樣的數據類型與使用要求。採用“分而治之”的方式,更符合現在雲化架構的整體實現思路。

這裡為大家分享一下數據庫的選型原則,並提供一個真實的案例給大家作為參考。

選型原則:

雲架構那些事兒:數據層存儲雲化的實踐

如何選擇合適的數據存儲


數據層選型時,要考慮一下六個數據特點,選擇合適的數據存儲解決方案。

  • 數據類型 , 關係型數據、KV數據、視頻、圖片、文件
  • 數據量 , 萬級、百萬級、千萬級、億級別
  • 實時性/一致性 , 實時訪問、準實時訪問、分鐘級延遲、小時級延遲、天級查詢
  • 併發度 , QPS、TPS、響應時間
  • 使用場景 , 實時業務、報表分析、歷史歸檔數據、多維查詢、正則查詢
  • 數據來源 , 文件、數據同步、消息隊列、數據庫

結合以上六點,選擇合適的數據存儲技術形成數據層解決方案。

這裡舉幾個選型的例子:

  • 海量關係型數據+實時性高+高併發:可以選擇分佈式關係型數據庫,商業的如阿里雲DRDS、POLARDB,開源的如MyCAT等。
  • 多維度查詢+正則查詢+準實時+海量數據存儲:可選擇搜索引擎,如Elasticsearch
  • 規則類數據/高併發KV類數據:Redis/Redis Cluster
  • 歷史歸檔數據:阿里DRDS/Hbase
  • 視頻圖片文件:可選擇分佈式文件系統或對象存儲,商業的如阿里OSS,開源的HDFS、FastDFS、GlusterFS、CephFS

真實案例

以下是我們在某大型企業使用的數據存儲及使用方案:

雲架構那些事兒:數據層存儲雲化的實踐

某大型企業數據存儲解決方案


首先對數據存儲解決方案形成三層架構:

  • 第一層,實時數據層

使用Redis實現高併發KV數據的緩存、Session共享。

使用阿里OSS作為大批量文件的存儲。

使用阿里DRDS作為核心業務數據庫。

使用ElasticSearch實現多維數據查詢與正則查詢。

  • 第二層,數據傳輸層

使用阿里DTS作為數據同步通道,當然你可以選擇開源的如Otter/Canal來構建自己的數據同步通道,實現近實時的數據同步。

使用DTS-writer,將數據同步至異構數據庫,實現異構數據庫的數據同步,可大幅降低將由應用將數據存儲在各個獨立產品的研發代價。

  • 第三層,離線數據層

使用HBASE作為歸檔數據存儲,實現數據挖掘與報表功能

使用阿里DRDS為生產提供離線/冷數據的查詢

使用阿里RDS作為同步部分關鍵數據,為打造業務生態提供個性業務數據

最後,從設計本身的角度,任何得到認可的數據庫產品都有價值,都可以作為數據存儲架構選型的備選項,但由於數據庫本身的重要性,使用團隊熟悉的技術往往可以降低整體風險。選擇使用新技術務必要進行大量驗證。

仔細思考,你一定會有所收穫。

歡迎關注:雲架構那些事兒,專注實用性雲架構分享與IT技術分享。

相關推薦

推薦中...