全部產品
Search
文件中心

Tablestore:寬表模型

更新時間:Nov 30, 2024

寬表模型(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。

使用限制

使用寬表模型時的通用限制,請參見通用限制

  • 如果使用了二級索引或者多元索引加速資料查詢,請參見相應索引的使用限制。更多資訊,請參見二級索引限制多元索引限制

  • 如果使用了SQL查詢與分析資料,請參見SQL查詢的使用限制。更多資訊,請參見SQL使用限制

使用流程

主要步驟說明請參見下表。

步驟

操作

說明

1

配置使用者訪問Table Store許可權

建立RAM使用者後,為RAM使用者配置訪問Tablestore資源所需的最小化許可權。您可以使用系統預設策略或者自訂權限原則為RAM使用者授予訪問Table Store資源的許可權。

如果要使用阿里雲帳號或者要使用的RAM使用者已具有訪問Tablestore儲存資源所需的許可權,請跳過此步驟。

重要

阿里雲帳號預設具有所有雲資源的操作許可權,為了您的資源安全,建議您為阿里雲帳號建立RAM使用者並為其授權,實現不同RAM使用者擁有不同資源存取權限的目的。

2

開通Table Store服務

使用Tablestore功能前,您必須開通Tablestore服務。

服務僅需開通一次,開通過程免費。如果已經開通Table Store服務,請跳過此操作。

3

建立執行個體

重要
  • 建立執行個體前,您需要根據實際業務特點以及業務對讀寫效能和成本要求確定要使用的執行個體模型和執行個體規格。更多資訊,請參見計費模式使用推薦執行個體

  • 目前寬表模型的多元索引、通道服務、SQL查詢、資料湖投遞、資料加密、Control Policy、資料備份和同城冗餘功能未全地區支援,請選擇支援所需功能的地區建立執行個體。更多資訊,請參見功能和地區支援列表

根據確定的執行個體模型和執行個體規格在所需地區中建立相應執行個體。

如果已存在執行個體滿足使用需求,請跳過此步驟。

4

建立資料表

說明

合理的主鍵和分區鍵設計能有效避免資料熱點問題,建議您參考表操作最佳實務文檔進行表設計。

建立資料表用於儲存業務相關資料。建立資料表時,您可以根據業務需求同時配置如下功能。

  • 如果業務中需要使用不同屬性作為查詢條件來執行資料查詢,您可以建立二級索引加速資料查詢。

  • 如果要落盤加密表中資料,您可以配置資料加密。

  • 如果業務中有類似電商網站的商品ID、大型網站的使用者ID、論壇文章的ID、聊天工具的訊息ID等使用主鍵列自增的情境,您可以配置主鍵列自增。

5

基礎資料操作

說明

合理的屬性列設定能提升業務資料使用效率,建議您參考資料操作最新實踐文檔進行屬性列設定。

在資料表中寫入、更新、讀取或者刪除資料。

  1. 寫入資料到資料表。具體操作,請參見寫入資料

  2. 根據表主鍵讀取資料表中的資料。具體操作,請參見讀取資料

如果要刪除資料,您可以直接進行手動刪除或者使用資料生命週期實現自動清理資料。具體操作,請參見刪除資料資料版本和生命週期

6

使用索引加速資料查詢

如果基於資料表主鍵的資料讀取不能滿足業務的查詢需求,您可以使用索引加速資料查詢。Tablestore提供了二級索引和多元索引用於滿足不同情境的資料查詢需求。

  • 二級索引:相當於把資料表的主鍵查詢能力擴充到了不同的列。Tablestore根據使用者對讀取一致性的不同需求提供了全域二級索引和本地二級索引。

    適用於能提前確定待查詢的列,待查詢列數量較少,且可以確定完整主鍵或主鍵首碼的情境。

  • 多元索引:使用倒排索引、BKD樹、列存等結構,具備豐富的查詢能力。

    多元索引適用於除資料表主鍵和二級索引之外的其他所有查詢和分析情境,例如非主鍵列的條件查詢、任意列的自由組合查詢、關係查詢、全文檢索索引、地理位置查詢、首碼查詢、模糊查詢、嵌套結構查詢、Null值查詢等。

7

分析資料

通過SQL查詢或者多元索引統計彙總分析表中的資料。

  • SQL查詢:使用SQL查詢的SELECT語句可以實現Join、全文檢索索引、彙總、算術運算、關係運算、邏輯運算、按欄位分組、多元索引巢狀型別查詢、多元索引資料類型查詢、JSON函數等功能。更多資訊,請參見查詢資料

  • 多元索引統計彙總:使用多元索引統計彙總可以實現求最小值、求最大值、求和、求平均值、統計行數、去重統計行數、百分位統計、按欄位值分組、按範圍分組、按地理位置分組、按過濾條件分組、長條圖統計、日期長條圖統計、擷取統計彙總分組內的行、巢狀查詢等功能。

說明

您也可以通過MaxCompute、Spark、Hive或者HadoopMR、Function Compute、Flink等計算引擎分析Tablestore中的資料。更多資訊,請參見計算與分析概述

計費說明

計費項目包括讀輸送量、寫輸送量、資料存放區量和外網下行流量。更多資訊,請參見計費概述

常見問題

相關文檔

  • 您可以通過控制台、命令列工具快速體驗寬表模型。具體操作,請參見使用寬表模型

  • 如果要實現執行個體資料的機房級容災,您可以通過建立同城冗餘類型的執行個體實現。更多資訊,請參見同城冗餘

  • 如果要保證資料存放區安全和網路訪問安全,您可以使用資料表加密、VPC網路訪問等方式實現。更多資訊,請參見資料加密網路安全管理

  • 如果要防止重要資料被誤刪除,您可以使用資料備份功能實現定期備份重要資料。更多資訊,請參見備份Tablestore資料

  • 如果要對錶中歷史存量和新增資料的消費處理,您可以使用通道服務實現。更多資訊,請參見通道服務概述

  • 如果要為監控指標配置警示通知,您可以使用CloudMonitor實現。更多資訊,請參見監控與警示

  • 如果要以圖表等形式可視化展示資料,您可以使用DataV或者Grafana實現。更多資訊,請參見資料視覺化工具