天天看點

大資料學習筆記之三十六 NewSQL相關知識

NewSQL

特點

支援關系資料模型、使用SQL作為其主要接口

類别

1)新的架構

工作在一個分布式叢集的節點上,其中每個節點都擁有一個資料子集,SQL查詢被分成查詢片段發送給自己所在的資料的節點上執行,可以通過添加額外的節點來線性擴充,代表Google spanner

通常有一個單一的主節點的資料源,它們有一組節點來做事務處理,這些節點接到特定SQL查詢後,會把它們所需要的所有資料從主節點上取回來後執行SQL,再傳回結果

2)SQL引擎

高度優化的SQL存儲引擎

3)透明分片

提供了分片的中間件層,這些資料庫可以跨多個節點分片

定義

可擴充、高性能的資料庫的,不僅具有NoSQL對海量資料庫的存儲管理能力,還保持了傳統資料庫支援ACID和SQL等特性

産品

1)spanner

資料模型

傳統資料庫

關系模型,有豐富的功能,支援SQL查詢語句

NoSQL

在key-value存儲之上增加有限功能,如列索引、範圍查詢等,但具有良好的擴充性

spannner

繼承了Megastore的設計,資料模型介于RDBMS和NoSQL之間,提供樹形、階層化的資料Scheme

支援SQL的查詢語言,提供表連接配接等關系資料庫特性,功能上類似RDBMS

整個資料庫所有記錄都存儲在同一個key-value大表中,實作上類似BigTable,具有NoSQL的高擴性

優點

1)一個Directory中所有記錄的主鍵都具有相同字首,在存儲到底層key-value大表時,會被配置設定到相鄰的位置,如果資料量不大,會位于同一個節點上,提高了資料通路的局部性,也保證了在一個Directory中 發生的事務都是單機的

2)Directory還實作了從細粒度上對資料進行分區,整個資料庫被劃分成百萬個甚至更多Directory,每個Directory都可以定制自己的複制政策

3)Directory提供了高效的表連接配接運算方式,在一個Directory中,多張表上的記錄按主鍵排序,交錯存儲在一起,是以進行表連接配接運算是無需排序即可在表間進行歸并

複制和一緻性

Spanner使用Paxos協定在多個副本間同步redo日志,進而保證資料在多個副本上是一緻的

2)MemSQL

特點

1,高效率:是一款記憶體資料庫,它通過将資料存儲在記憶體中,執行效率比傳統基于磁盤的資料庫高30 倍,它優于其他記憶體資料庫,将SQL語句預編譯成C++而獲得急速的執行效率

2,強大的SQL執行能力:支援全功能的關系型資料庫,開發者不必修改現有程式即可獲得NoSQL鍵值存儲系統的效率

3, 橫向和縱向擴充:MemSQL支援縱向擴充,CPU效率越好效率就越高,而且支援CPU擴充,此外,MemSQL還可以與MySQL節點結合起來處理PB級負載

4,預設支援資料持久性:MemSQL預設支援資料從記憶體到磁盤/SSD的同步,保證資料的可靠性

5,安裝簡便:隻要30S即可安裝并使用MemSQL,相容MySQL,學習曲線平滑

6,支援JSON格式的資料處理

架構

Aggregator:存儲中繼資料,負責分發SQL給Leaf,然後綜合Leaf的查詢結果

可以有多個Aggregator節點,但是有一個為主Aggregator

主Aggregator可以執行DDL和負責Leaf的auto-failover

Leaf:存儲真正的資料,資料通過主鍵hash存儲到各Leaf節點,Leaf之間資料均勻分布,不會傾斜

通過參照表實作Aggregator到Leaf節點同步資料,分布表存儲在每個Leaf節點,用來存儲資料