什麼情況下,需要使用分布式資料庫?

時間 2021-05-06 11:39:49

1樓:NebulaGraph

首先,分布式資料庫的優勢大致上概括為三種:

1,資料分布儲存在不同的節點上,解決了單機下資料量的限制問題;

2,分布式計算,均衡了計算負載;

3,從資料安全性考慮,分布式資料庫一般都有多副本機制,以此保證了某乙個節點資料壞掉後能正常提供服務。

基於以上三點,我認為海量資料的高併發業務是分布式資料庫的強項。

2樓:

凡事都是能簡則簡,雖然分布式資料庫是資料庫發展的方向,但並不是說一定要用分布式。例如,很多NoSQL都是分布式的,但是很多中小型系統的都沒用用到分布式的特性。

但對於大型應用來說分布式資料庫就非常有優勢。現在比較流行的說法「金融級」的資料庫產品面向銀行等大型企業的大量高頻的資料處理,則都需要分布式資料庫,幾十個節點到1-2百的節點也非常多。

規模、效能、高併發、資料拆分、降低索引層次高度等都需要綜合考慮來決定是否使用分布式資料庫。分布式架構不是乙個新鮮事務,因為現在網路頻寬(萬兆以上頻寬)、儲存、x86的低成本才給了分布式資料庫大力發展的條件。

技術產品採用主要是價效比,在海量資料處理情況下,分布式資料庫的價效比特別明顯:

效能:能輕鬆面對海量資料和高併發的請求處理,好的分布式資料庫能做到90%以上的線性增長能力;

靈活性、彈性:現代的系統的業務和使用場景變化很快,使用者的增長也有很多不確定因素。彈性擴容就非常重要。

分布式資料庫本身有Cloud-Ready的特性,能很容以通過新增裝置擴容滿足需求,而不需要影響開發;

多中心、多活:這點在大型應用中很常見,分布式資料庫就更容易實現這個功能,當然這裡涉及到分布式資料庫的同步和一致性的能力,這也是判斷分布式資料庫好壞的乙個重要指標。

讀寫分離:主從節點都能發揮作用;例如巨杉SequoiaDB資料庫,能在一組三副本的複製組上實現OLTP,NoSQL應用,OLAP多種應用場景同時使用。

低成本:x86伺服器,SATA儲存(部分可以用SSD),加上較好的網路頻寬就可以了。

更多的特性也不再一一描述了。分布式資料庫核心之一就是對資料的精細顆粒度管理,資料拆分後,命令下壓能否在精準定位到相應的資料節點來做計算。

資料拆分有三大類:

水平分割槽:基本對1個或多個鍵的水平雜湊,增強資料的並行處理能力來提高效能;

垂直分割槽:和過去的Partition很像,對資料進行有含義的拆分;

混合分割槽:水平分割槽和垂直分割槽共同使用。

所以分布式資料庫非常需要架構師和工程師對業務理解能力和資料規劃能力。

和選擇產品有關的另一點就是產品化和成熟度,如果您是企業採購資料庫,這點就尤為重要。資料庫是否有「原廠」的技術服務能力也是大型企業選擇資料庫重點。

3樓:

簡單點說: 分布式資料庫首先提供多副本高可用,然後就是當單機處理資料的時間大於rpc時候,分布式資料庫多個資料分片並行算就會好點。

4樓:熱臺

DATAHEKR 資料庫中介軟體,支援讀寫分離,效能優於MAXSCALE。

近期我們將發布自定義PLUGIN功能,可以定製你的專屬資料庫中介軟體。

分布式資料庫的分布式事務?

NebulaGraph 業務系統往往是通過子系統組合的模式來完成,這些子系統很可能是不同的資料庫,甚至可能是 友商 的,互相直接無法保證事務,還是得業務自身保證。 codingfor 你說的單機事物,我的理解其實是指single threaded excution,而不是指在單台機器上做事物 暗含了...

為什麼分布式資料庫這麼喜歡用kv store?

NebulaGraph 採用鍵值對儲存主要還是出於資料模型和效能角度考慮的。目前比較流行的方案有 Google 開源的 LevelDB 和 FaceBook 開源的 RocksDB。鍵值型儲存模型比較簡單,LSM 模型將隨機寫轉換為順序寫,在隨機讀方面也可以優化,效能比較有保障。分布式系統往往根據 ...

在分布式資料庫儲存中,資料分割槽和資料放置有什麼區別?

楊東東 資料分割槽和資料放置是邏輯和物理的關係,邏輯是頂層設計,物理是具體實現,邏輯設計決定物理實現,物理約束反過來影響邏輯設計。舉個例子,給你10個桌球,要求放入3個盒子裡。如何決定哪個球放入哪個盒子?比如 按照編號大小 0 2放入盒子A,3 5放入盒子B,6 9放入盒子C 按照編號特徵 對3取餘...