寬表(WideColumn)模型是Tablestore採用的模型之一。通過本文您可以瞭解寬表模型的構成以及與關聯式模式的區別。
模型構成
寬表模型如上圖所示,由以下幾個部分組成。
組成部分 | 描述 |
---|---|
主鍵(Primary Key) | 主鍵是資料表中每一行的唯一標識,主鍵由1到4個主鍵列組成。 |
分區鍵(Partition Key) | 主鍵的第一列稱為分區鍵。Tablestore按照分區鍵對資料表的資料進行分區,擁有相同分區鍵的行會被劃分到同一個分區,實現資料訪問負載平衡。 |
屬性列(Attribute Column) | 一行中除主鍵列外,其餘都是屬性列。屬性列會對應多個值,不同值對應不同的版本,每行的屬性列個數沒有限制。 |
版本(Version) | 每一個值對應不同的版本,版本的值是一個時間戳記,用於定義資料的生命週期。 |
資料類型(Data Type) | Tablestore支援多種資料類型,包含String、Binary、Double、Integer和Boolean。 |
生命週期(Time To Live) | 每個資料表可定義資料生命週期。例如生命週期配置為一個月,則Tablestore會自動清理一個月前寫入資料表的資料。 |
最大版本數(Max Versions) | 每個資料表可定義每個屬性列的資料最多儲存的版本個數,用於控制屬性列資料的版本個數。當一個屬性列資料的版本個數超過Max Versions時,Tablestore會非同步刪除較早版本的資料。 |
寬表模型與關聯式模式
寬表模型和關聯式模式有不同的特點請參見下表。
模型 | 特點 |
---|---|
寬表模型 | 三維結構(行、列和時間)、Schema-Free、寬行、多版本資料以及生命週期管理。 |
關聯式模式 | 二維(行、列)以及固定的Schema。 |