寬表模型(WideColumn)是類Bigtable/HBase模型,可應用於中繼資料、巨量資料等多種情境。寬表模型通過資料表格儲存體資料,單表支援PB級資料存放區和千萬QPS。資料表具有Schema-Free、寬行、多版本資料以及生命週期管理特點,支援主鍵列自增、局部事務、原子計數器、過濾器、條件更新等功能。
模型介紹
Tablestore寬表模型是類Bigtable/HBase模型,通過資料表採用三維結構(行、列和時間)儲存資料。資料表的每一行可以有不同的列,可以動態增加或者減少屬性列,建立表時無需為表的屬性列定義嚴格的Schema。
模型構成
寬表模型如上圖所示,由以下幾個部分組成。
組成部分 | 描述 |
主鍵(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會非同步刪除較早版本的資料。更多資訊,請參見最大版本數。 |
核心組件
資料表、行、主鍵和屬性是Table Store寬表模型的核心組件。資料表是行的集合,而每個行是主鍵和屬性的集合。組成主鍵的第一個主鍵列稱為分區鍵。
主鍵、屬性和分區鍵的具體說明請參見下表。
關於主鍵列和屬性列的資料類型的更多資訊,請參見命名規則和資料類型。
組件 | 說明 |
主鍵 | 主鍵是資料表中每一行的唯一標識,主鍵由1到4個主鍵列組成。建立資料表時,必須指定主鍵的組成、每一個主鍵列的名稱、資料類型以及主鍵的順序。 Tablestore根據資料表的主鍵索引資料,資料表中的行預設按照主鍵進行升序排序。 |
分區鍵 | 組成主鍵的第一個主鍵列稱為分區鍵。Tablestore會根據資料表中每一行分區鍵的值所屬範圍自動將一行資料分配到對應的分區和機器上來達到負載平衡的目的。具有相同分區索引值的行屬於同一個資料分區,一個分區可能包含多個分區索引值。Tablestore服務會自動根據特定的規則對分區進行分裂和合并。 說明 分區索引值是最小的分區單位,相同的分區索引值的資料無法再做切分。為了防止分區過大無法切分,單個分區索引值所有行的大小總和建議不超過10 GB。關於分區鍵選擇的更多資訊,請參見表操作篇。 |
屬性 | 屬性由多個屬性列組成。每行的屬性列個數無限制,且每行的屬性列可不同。屬性列在某一行的值可以為空白。同一個屬性列的值可以有多種資料類型。 屬性列具有版本特徵,屬性列的值可以根據需求保留多個版本,用於查詢和使用;屬性列的值可以設定生命週期(TTL)。更多資訊,請參見資料版本和生命週期。 |
與關聯式模式區別
寬表模型和關聯式模式的區別請參見下表。
模型 | 特點 |
寬表模型 | 三維結構(行、列和時間)、Schema-Free、寬行、多版本資料以及生命週期管理。 |
關聯式模式 | 二維(行、列)以及固定的Schema。 |
使用限制
使用寬表模型時的通用限制,請參見通用限制。
使用流程
主要步驟說明請參見下表。
步驟 | 操作 | 說明 |
1 | 建立RAM使用者後,為RAM使用者配置訪問Tablestore資源所需的最小化許可權。您可以使用系統預設策略或者自訂權限原則為RAM使用者授予訪問Table Store資源的許可權。 如果要使用阿里雲帳號或者要使用的RAM使用者已具有訪問Tablestore儲存資源所需的許可權,請跳過此步驟。 重要 阿里雲帳號預設具有所有雲資源的操作許可權,為了您的資源安全,建議您為阿里雲帳號建立RAM使用者並為其授權,實現不同RAM使用者擁有不同資源存取權限的目的。 | |
2 | 使用Tablestore功能前,您必須開通Tablestore服務。 服務僅需開通一次,開通過程免費。如果已經開通Table Store服務,請跳過此操作。 | |
3 | 根據確定的執行個體模型和執行個體規格在所需地區中建立相應執行個體。 如果已存在執行個體滿足使用需求,請跳過此步驟。 | |
4 | 說明 合理的主鍵和分區鍵設計能有效避免資料熱點問題,建議您參考表操作最佳實務文檔進行表設計。 建立資料表用於儲存業務相關資料。建立資料表時,您可以根據業務需求同時配置如下功能。
| |
5 | 說明 合理的屬性列設定能提升業務資料使用效率,建議您參考資料操作最新實踐文檔進行屬性列設定。 在資料表中寫入、更新、讀取或者刪除資料。 如果要刪除資料,您可以直接進行手動刪除或者使用資料生命週期實現自動清理資料。具體操作,請參見刪除資料或資料版本和生命週期。 | |
6 | 使用索引加速資料查詢 | 如果基於資料表主鍵的資料讀取不能滿足業務的查詢需求,您可以使用索引加速資料查詢。Tablestore提供了二級索引和多元索引用於滿足不同情境的資料查詢需求。 |
7 | 分析資料 | 通過SQL查詢或者多元索引統計彙總分析表中的資料。
說明 您也可以通過MaxCompute、Spark、Hive或者HadoopMR、Function Compute、Flink等計算引擎分析Tablestore中的資料。更多資訊,請參見計算與分析概述。 |
計費說明
計費項目包括讀輸送量、寫輸送量、資料存放區量和外網下行流量。更多資訊,請參見計費概述。
常見問題
相關文檔
您可以通過控制台、命令列工具快速體驗寬表模型。具體操作,請參見使用寬表模型。
如果要實現執行個體資料的機房級容災,您可以通過建立同城冗餘類型的執行個體實現。更多資訊,請參見同城冗餘。
如果要保證資料存放區安全和網路訪問安全,您可以使用資料表加密、VPC網路訪問等方式實現。更多資訊,請參見資料加密和網路安全管理。
如果要防止重要資料被誤刪除,您可以使用資料備份功能實現定期備份重要資料。更多資訊,請參見備份Tablestore資料。
如果要對錶中歷史存量和新增資料的消費處理,您可以使用通道服務實現。更多資訊,請參見通道服務概述。
如果要為監控指標配置警示通知,您可以使用CloudMonitor實現。更多資訊,請參見監控與警示。
如果要以圖表等形式可視化展示資料,您可以使用DataV或者Grafana實現。更多資訊,請參見資料視覺化工具。