第二章 相關研究與技術背景
2.2 綱要映射技術
Private Table, Shared Schema:因為存放在不同的儲存空間,所以資料區隔性較好,
因此有較佳的安全性,但因為還是Shared Schema,所以還是有缺乏彈性的缺點,由於 儲存空間分開在維護就變得相對困難,難以讓應用程式達到提供給大量租戶使用。
Private Table, Private Schema: Private Table Layout 即屬於為此類 這同時具有高安全 性及可提供租戶們客製化優點,但由於Private Table 所以同樣不適合提供給大量租戶使 用,但在租戶數量不多的情況,會有最佳的效能。
Shared Table, Private Schema:這屬於最多研究在討論的架構,雖然相較 Private Table 安全性較低,需要透過其它機制來補強,但由於共用資源又具有彈性,所以是最被廣
2.2.2 Private Table Layout
每個租戶擁有自己的資料表,實作的方式是將資料表加上代號,或者每個租戶的資料
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
5
圖2.2 Private Table Layout,本圖取自【2】
2.2.3 Extension Table Layout
共用欄位在同一個資料表格,並使用租戶編號的欄位區別是哪個租戶的資料,個別租 戶客製化的欄位,則寫入各自的資料表格中。
圖2.3 Extension Table Layout,本圖取自【2】
2.2.4 Universal Table Layout
這是最多論文研究的綱要映射技術,因為在大量租戶時達到很好的資源共用與效能,
Universal Table Layout 是將租戶的資料全部放置在一個包含大量租戶的大資料表,這個 資料表必須包含租戶編號欄位、邏輯資料表編號與非常多的字串型態欄位,用於儲存 各個租戶邏輯資料表內欄位的資料,不論任何型態都使用字串型態儲存,所以實作時 可能需要做型態轉換,且邏輯資料表的欄位如果不多會造成稀疏矩陣的狀況。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
6
圖2.4 Universal Table Layout,本圖取自【2】
2.2.5 Pivot Table Layout
將不同的欄位型態放置在不同的資料表內,實作時取用資料須將用到的欄位join 起 來。
圖2.5 Pivot Table Layout,本圖取自【2】
2.2.6 Chunk Table Layout
這種設計方式是將Universal Table Layout 與 Pivot Table Layout 的概念結合在一起。
圖2.6 Chunk Table Layout ,本圖取自【2】
‧
2.2.7 Chunk Folding Layout
這種設計方式是將Extension Table Layout 與 Chunk Table Layout 的概念結合在一起,租 戶欄位共用的方式採用Extension Table Layout,每個租戶的客製化欄位則採用 Chunk Table Layout。
圖2.7 Chunk Folding Layout,本圖取自【2】
這七種綱要映射技術各有優缺點,一般來說SaaS 服務提供者應可根據應用程式的特性 選用適合的綱要映射技術,但往往選用表格映射技術的考量點並非在應用程式,而是
在租戶的特性,例如高使用量的VIP 客戶就不適合太多的租戶共用資源,因此可能適
合Private Table Layout,而一般的租戶可能最適合 Universal Table Layout,至於完全不 變動基本規格,無須客製化的租戶最適合的是Basic Layout,因此本研究除了實作出多 租戶軟體框架之外,還賦予框架具有可調性,讓框架可以針對不同租戶選用不同的綱 要映射技術,本研究將以Private Table 與 Universal Table 為例進行說明。