從業務視角看開源數據存儲技術選型

背景

在業務場景技術選型的過程中,存儲技術通常是必不可少的一環,而當前存儲技術繁雜多樣,如何迅速選擇合適業務的技術非常重要。本文根據業務特點抽象核心需求,根據不同需求採取對應的最佳方案。

業務需求抽象

業務特點抽象由廣到窄分爲如下幾點:

  • 是否結構化數據。這裏非結構化數據主要是圖片、視頻和語音等二進制信息。

  • 是否分析型服務。存儲服務一般分爲在線業務型和分析型。在線業務型用於在線服務增產改查和一些事務性需求;分析型服務一般是運營、產品和分析型對離線數據進行洞察分析。

  • 是否關係型數據。這裏主要區分SQL和NoSQL。關係型數據按結構化關係來存儲(數據存儲模型符合第三範式),其一般是傳統行式數據庫。非關係存儲一般是K-V存儲和文檔存儲。

  • 是否有數據更新和低延遲需求。主要用於對分析型服務分類,數據更新一般是對已有數據進行update修改,低延遲通常是指秒級延遲需求。

  • 是否水平擴展。這裏水平擴展主要對newSQL和SQL進行分類。因爲傳統關係型數據庫的擴展性比較弱,主要通過上層sharding方案實現擴展,其存儲在設計方面的可擴展性很弱,沒有自動數據balance、數據遷移功能。可水平擴展就說明該存儲在設計上就實現了數據自動balance、對新加入節點進行用戶透明的數據遷移。

  • 是否預聚合。這裏主要是對OLAP進行分類,OLAP分爲ROLAP和MOLAP,ROLAP類似傳統關係型數據庫,對分析需求進行adhoc查詢,非常靈活,查詢延遲一般在秒級以上。MOLAP主要是對數據先預聚合再查詢,因爲預聚合要管理員提前定義聚合指標,所以查詢靈活度較低,但是響應非常迅速,一般在亞秒級。

技術選型圖

在這裏插入圖片描述

閉源技術補充

本圖主要劃分了開源數據庫技術選型,但除了開源選型,在當前的雲計算時代,也有很多大廠對應的閉源技術可以選擇,下面列舉一二並給出選擇參考。

非結構化存儲

除了開源的ceph,閉源的有AWS的S3、Google的cloud storage、阿里雲的OSS和百度雲的BOS等。

關係型水平擴展數據庫

除了開源的TiDB,還有AWS的Aurora、Google的cloud spanner、阿里雲的Oceanbase和百度對開源CockroachDB封裝的版本等。

分析型數據庫

開源的分析型數據庫比較豐富,可根據具體團隊狀況、技術棧、社區活躍度情況選擇。閉源方面可以使用AWS的Redshift、Google的BigQuery、阿里雲的ADS和百度雲的Palo等。

總結

開源技術豐富多樣,一般針對不同場景都有對應的實現技術方案,比較靈活多樣,用戶根據需求抽象再參考本文就可以選擇合適的存儲技術。

對於使用雲的用戶,各家廠商都有完備的對應技術方案,開箱即用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章