真實場景下Oracle Sharding的優勢比較和選擇
編輯手記:Oracle Sharding是為OLTP應用程序定製設計的一種可擴展、支持高可用功能的架構,能夠在不具有共享硬件或軟件的Oracle數據庫池中分發和複製數據。事實上基於高可用和易擴展性開發的係統或數據庫架構並不僅僅是Oacle Sharding 一個,我們來通過不同產品的對比來認識,sharding到底強大在哪裏。
相關文檔推薦:
1、Oracle 12.2 Sharding技術揭秘
2、Oracle 12.2新特性-Sharding 的增強
3、針對Sharding單點故障的HA架構
4、Oracle 12.2的Sharding基礎概念解讀
1、Oracle Sharding與Microsoft Azure彈性數據庫的比較
Microsoft提供了一個分片式數據庫架構,具有與Oracle Sharding相同的許多目標,其產品是僅限雲上部署的,稱為Azure彈性數據庫。 Oracle Sharding與Microsoft Azure相比有很多優勢:
-
Microsoft Azure將碎片作為外部表並對其協調器節點執行所有查詢處理來處理多碎片查詢。這種設計導致係統難以擴展並且需要在分片和協調器節點之間進行大量的網絡數據移動。相比之下,Oracle Sharding多分片查詢被下推到每個分片,從而提高性能並減少網絡上傳輸的數據量。
-
Microsoft Azure要求客戶明確配置和維護在多分片查詢中使用的分片列表。如果配置更改,則需要由客戶端更新映射。而Oracle Sharding自動為客戶維護此元數據,由Oracle Sharding維護此類列表,不需要客戶端的幹預。
-
Microsoft Azure僅限於副本碎片上的隻讀查詢。更新必須通過數據庫鏈接返回到協調器數據庫。 Oracle Sharding支持對Active Data Guard分片上的臨時表的任何表和DML更新的隻讀查詢,以及對Oracle GoldenGate分片上的所有表的完全讀寫訪問。
2、Oracle Sharding與NoSQL數據存儲的比較
NoSQL數據存儲無法提供應用程序透明的可伸縮性,但Oracle可以為使用Oracle RAC和Active Data Guard的任何應用程序執行此操作。 與Oracle Sharding類似,NoSQL數據存儲也可以使用分片式架構來實現可擴展性和高可用性的組合。 更喜歡為分片式架構明確設計應用程序的客戶可能會認為他們可以選擇將Oracle Sharding與Oracle Enterprise Edition結合使用,或者使用NoSQL數據存儲庫。
客戶將選擇Oracle Sharding與Oracle企業版,原因如下:
-
NoSQL數據存儲器缺乏企業RDBMS的功能,包括:關係模式,SQL和其他編程接口,支持複雜數據類型,在線模式更改,多核可擴展性,高級安全性,高級可擴展性,ACID屬性,一致性讀取,JSON的開發人員敏捷性等。例如,Oracle對事務的固有支持意味著並發更新/讀取從不會獲得不一致的結果; NoSQL數據存儲不能這樣做。 Oracle還將讀一致性擴展到多分片操作,以及使用全局一致性讀取,這是NoSQL數據存儲不可能實現的。
-
Oracle Sharding將Oracle企業版與用於部署分片式架構的全麵解決方案相結合,包括自動化以簡化生命周期管理的多個方麵,提高靈活性的高級分區方法以及基於智能數據的路由以實現卓越的運行時性能。
Oracle Sharding和Oracle RDBMS的結合為客戶提供了兩個方麵的優勢:能夠大規模使用分片式數據庫架構,而不會犧牲NoSQL數據存儲的特點。
3、Oracle Sharding和Oracle NoSQL使用場景的選擇
評估簡單鍵值的客戶NoSQL數據存儲架構選擇:
-
選擇Oracle Sharding,如果他們在Oracle企業版和一組全麵的功能的組合中看到價值,部署一個分片式架構,實現極高的可擴展性和可用性。
-
選擇Oracle NoSQL,如果他們不把價值放在Oracle企業版的功能,而是尋求降低NoSQL解決方案的所有權成本,旨在提供高可靠性,可擴展和可用的數據存儲跨可配置的係統集 存儲節點。
4、其他NoSQL數據庫對Oracle Sharding有什麼優勢?
NoSQL競爭對手,例如Cassandra,MongoDB等已經使可擴展性和可用性的分片成為其產品的核心價值主張。與Oracle Sharding相比,他們享有以下優勢:
-
低成本 - 它們是Oracle數據庫企業版和更簡單的基礎架構(盡管功能越少,企業級功能越少)的成本的一小部分。 NoSQL是為不受益於企業RDBMS的簡單工作負載而設計的。
-
開發人員共享 - 分片的決定由架構師和開發人員進行,而不是數據庫管理
-
更簡單的HA複製機製 - 直接寫入每個副本對數據庫複製從主機到其副本。
-
用於執行多分片查詢的多個協調器 - 可以比第一版Oracle Sharding支持的單個協調器更具擴展性(請注意,多分片查詢不是Oracle Sharding的主要用例,並且多個協調器計劃用於下一版本)。
當客戶重視與企業RDBMS的分片的好處時,Oracle Sharding將擊敗NoSQL數據庫。如果一個低成本的NoSQL解決方案更適合客戶的需求,銷售Oracle NoSQL。 Sharding是Oracle EE和Oracle NoSQL都支持的一流的HA架構。
5、COTS應用程序(如SAP或Oracle電子商務套件)是否可以使用Sharding?
不能,Sharding是明確地用於專門為了利用分片式數據庫架構的應用程序。 沒有任何應用程序提供商已經認證他們的應用程序用於Oracle Sharding。
文章轉自數據和雲公眾號,原文鏈接
最後更新:2017-07-18 10:03:02