Cyrex Cube是邦格科技自主研發的多維資料庫,與傳統的基於星型或雪花型結構的傳統OLAP架構相比,Cyrex Cube分析模型更加面向業務,同時也具備更強的多維數據分析能力。
Cyrex Cube的邏輯與聚合分離、雙向可擴展分布式、簡單化處理以及常駐內存模型等特點使其可以在無緩存情況下實現百億級數據實時聚合運算的秒級響應。
1、邏輯運算和聚合運算的分離
先以關係型資料庫為例,模擬兩種數據分析情況。第一,資料庫中的表結構非常複雜,各個表之間的關聯關係也很複雜,但是每個表中的數據量非常少,
這時候,在這種情況下進行數據分析,可以進行非常複雜的邏輯查詢,但由於數據量很少,並不會導致效率的降低,所以不太關心性能問題。
第二,關係型資料庫中的表結構非常簡單,邏輯也不複雜,但是表中的數據量非常大,這時候可以針對幾種常用的簡單查詢做一些通用的優化,解決性能問題後,同樣也可以支持上層應用的數據分析需求。
但在某些情況下,如表結構邏輯非常複雜同時數據量很大的情況下,使用傳統的OLAP結構,查詢效率將會大大降低,對於某些查詢則可能是無法實現的(如多個上億級別事實表的關聯查詢)。
我們把上述中針對複雜表結構的查詢稱為邏輯運算,把針對海量數據的查詢稱為聚合運算。
Cyrex Cube的設計理念就是將邏輯運算和聚合運算徹底解耦,使二者完全互不相干,讓Cyrex Cube能夠支持海量數據下的複雜邏輯分析能力。
2、簡單化處理
基于越簡單越穩定可靠的通用原理,Cyrex Cube底層技術採用了更加簡單的結構與算法。
眾所周知,在傳統或分布式關係型資料庫中,查詢記錄的最快方式是基於主鍵,但是即使是主鍵,也會有哈希值的計算過程,針對粗粒度級匯總的計算,會產生大量的哈希計算過程,效率會大打折扣。
而Cyrex Cube採用類似直接尋址的方式進行聚合運算,在一片連續的內存中給出首尾地址,程序指針將遍歷此範圍內的所有值,並返回聚合結果,此種效率是傳統OLAP無法比擬的。
3、基於C語言開發
Cyrex Cube底層有關數據存儲與運算的邏輯基於C語言開發,C語言相較於Java、Python、Go、C#等高級語言更加貼近底層,效率更高,所以在單臺伺服器不配備緩存的情況下Cyrex Cube可以支持上億級數據量的秒級運算響應。
4、可橫向及縱向擴展的高可用分布式
雙向可擴展分布式。Cyrex Cube採用主(Master)從(Work)架構,當數據量不超過百億時,只需採用該橫向擴展即可。採用縱向擴展結構,則可支持千億甚至萬億級別數據量的實時秒級響應。
而且,上述情況都是在無緩存支持的情況下完成的。
5、內存計算
Cyrex Cube採用常駐內存數據結構,存儲效率極為高效,1G內存便可支持五千萬至一億數據量級的存儲。
點讚 + 轉發,然後關注並私信小編,可獲得Cyrex Cube的更多信息。