介紹節點、數據庫、表、分區表和二級分區的概念。

節點

在HybridDB for MySQL中,節點是一個資源單位(比如當前C2規格對應:8 Core 32GB Memory 512GB SSD)。 當前在阿里云的控制臺中最多能夠購買64個節點,如果有需要更多節點,可以通過購買后再擴容的方式完成。HybridDB for MySQL的存儲容量和計算性能隨著節點的增加而線性提升。

數據庫

在HybridDB for MySQL中,數據庫是用戶的邏輯概念,用戶通過阿里云控制臺購買實例后會自動建好指定名稱的邏輯庫(Database),該邏輯庫在后端是會被切分成多個物理分庫(Shard),這些物理分庫對于用戶是不可見的。這就是通常說的分庫分表(Sharding)技術。通過Sharding技術,可以將用戶數據打散到多個節點上,這樣可以利用分布式的特性來進行并行計算,極大地提升性能。

在HybridDB for MySQL中,表是一個邏輯概念。用戶創建的表會根據分區key拆分到不同的分庫中,每個分表就是通常我們所說的表的分區。對于用戶來說,分區不可見,用戶只需要指定合適的分區鍵即可。

分區表(一級分區)

HybridDB for MySQL中的表從建模的維度看,可以分為事實表(fact table)和維度表(dimension table), 事實表是指分區表(通常是一級分區表),即需要被拆分到不同節點去存儲的表,在建表的時候指定分區鍵就可以生成一級分區表。 維度表是指冗余表/廣播表,通常存儲維度信息比如城市信息表,部門表等類似,維度表的行數一般在10000行以內為宜;維度表會被冗余存儲到每個節點中,有利于分布式join的性能提升,也是OLAP的常用優化手段。

二級分區

在HybridDB for MySQL中表按照分布鍵進行一級分區后(變為事實表),可以再按照比如時間維度進行二級分區。例如在歷史交易分析的場景,通常分區鍵設置為交易ID(trad_id),二級分區鍵設置為日期。這樣就可以存儲一個月或者一年的周期數據進行實時分析計算。一級分區將表切分為shard(分片),二級分區則是在每個shard內再進行分區。 目前HybridDB最多只支持兩級分區。