全部產品
Search
文件中心

Tablestore:資料表操作

更新時間:Oct 22, 2024

寬表模型使用資料表格儲存體資料。本文介紹了如何通過Table Store的命令列工具進行資料表操作,您可以使用命令列建立表、使用表、列出表名稱、更新表、查看錶資訊以及刪除表。

建立表

建立一張資料表,同時指定資料表的主鍵、資料生命週期(TimeToLive)等。您也可以通過匯入 JSON 格式的設定檔來建立資料表。

命令格式

create -t tableName --pk '[{"c":"<primaryKeyName>", "t":"<primaryKeyType>"},{"c":"<primaryKeyName>", "t":"<primaryKeyType>","opt":"<options>"}]' --ttl <timeToLive> --version <maxVersion> 

參數說明

參數

是否必填

樣本值

說明

-m,--mode

widecolumn

建立的表類型。取值範圍如下:

  • widecolumn(預設):資料表。

  • timeseries:時序表。

-t,--table

mytable

資料表名稱。

-k,--pk

[{"c":"uid","t":"string"},{"c":"pid","t":"integer"}]

資料表主鍵列,以 JSON 格式的數組表示。包含如下欄位:

  • c(必選):主鍵列名稱。

  • t(必選):主鍵列類型,取值範圍為 string、integer、binary。

  • opt(可選):可選配置,取值範圍為 none 和 auto,預設值為 none。當取值為 auto 時,表示該主鍵列為自增列。

    關於主鍵自增列的更多資訊,請參見主鍵列自增

說明

建立資料表時,屬性列不需要定義。Table Store每行的屬性列都可以不同,屬性列的列名在寫入資料時指定。

單表最多可設定 4 個主鍵,第一個主鍵預設為分區鍵。主鍵的配置及順序設定後不能修改。

--ttl

864000

資料生命週期,即資料的儲存時間,單位為秒。

預設值為 -1,表示資料永不到期。

說明

取值必須大於等於 86400(一天)或者等於 -1(資料永不到期)。

--version

1

最大版本數,即資料表中的屬性列能夠保留資料的最大版本個數。

預設值為 1,表示只保留最新版本的資料。取值必須為非 0 的整數。

重要

當前Table Store未限制最大版本數。但是出於效能與易用性考慮,建議控製版本數在 500 以內。

--read_cu

0

預留讀輸送量和預留寫輸送量,單位為 CU。預設值均為 0,即完全隨用隨付。

說明
  • 僅高效能型執行個體中的資料表支援此功能;其他類型執行個體中的資料表不允許設定預留讀/寫輸送量。

  • 當預留讀/寫輸送量不為 0 時,無論是否有讀/寫請求,均會產生費用。

--write_cu

0

-d,--defined

[{"c":"name","t":"string"},{"c":"age","t":"integer"}]

預定義列及其類型,以 JSON 格式的數組表示。包含如下欄位:

  • c(必選):預定義列名稱。

  • t(必選):預定義列類型。取值範圍為 string、integer、binary、double 和 bool。

說明

單個資料表預設最大支援添加 32 個預定義列。

-i,--input

/tmp/create_table_meta.json

通過 JSON 格式的設定檔建立資料表。

樣本

  • 以下樣本用於建立名稱為 mytable 的資料表,該資料表有 uid 和 pid 兩個主鍵列,表中資料永不到期。

    create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer"}]'
  • 以下樣本用於建立名稱為 mytable 的資料表,該資料表有 uid 和 pid 兩個主鍵列且設定 pid 為自增列。

  • create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer", "opt":"auto"}]'
  • 以下樣本用於建立名稱為 mytable 的資料表,該資料表有 uid 和 pid 兩個主鍵列,表中資料在 864000 秒(即 10 天)後到期且只保留最新版本。

    create -t mytable --pk '[{"C":"uid","t":"string"}, {"c":"pid","t":"integer"}]' --ttl 864000 --version 1
  • 以下樣本通過設定檔的方式建立 mytable 表。該資料表有 uid 和 pid 兩個主鍵列,資料生命週期為 864000 秒(10 天),最大版本數為 3,預留讀寫輸送量均為 0。

    Windows 平台

    create -i D:\\localpath\\filename.json

    Linux 和 Mac平台

    create -i /localpath/filename.json
    • 設定檔內容如下:

      {
          "Name": "mytable",
          "Meta": {
              "Pk": [
                  {
                      "C": "uid",
                      "T": "string",
                      "Opt": "none"
                  },
                  {
                      "C": "pid",
                      "T": "integer",
                      "Opt": "none"
                  }
              ]
          },
          "Option": {
              "TTL": 864000,
              "Version": 3
          },
          "CU": {
              "Read": 0,
              "Write": 0
          }
      }

使用表

選擇需要進行操作的表,用於後續表操作或者資料操作。

命令格式

use --wc -t <tableName>

參數說明

參數

是否必填

樣本值

說明

--wc

不涉及

表示操作的表為資料表或者索引表。

-t,--table

mytable

表名稱。

樣本

以下樣本用於使用 mytable 資料表。

use -t mytable

列出表名稱

列出執行個體下的所有表名稱、所有資料表名稱或者所有時序表名稱。

命令格式

list

參數說明

參數

是否必填

樣本值

說明

-a,--all

不涉及

列出所有表名稱。

-d,--detail

不涉及

列出表的詳細資料。

-w,--wc

不涉及

列出所有資料表名稱。

-t,--ts

不涉及

列出時序表名稱。

樣本

  • 列出與當前表類型相同的所有表名稱。

    list
  • 列出所有表名稱。

    list -a
  • 列出所有資料表名稱。

    list -w
  • 列出所有時序表名稱。

    list -t

更新表

更新資料表的資料生命週期、最大版本數等資訊。

命令格式

alter -t <tableName> --ttl <timeToLive> --version <maxVersion> --read_cu <readCU> --write_cu <writeCU>

參數說明

參數

是否必填

樣本值

說明

-t,--table

mytable

資料表名稱。

--ttl

864000

資料生命週期,即資料的到期時間,單位為秒。

取值最低為 86400 秒(一天),也可設定為 -1(永不到期)。

--version

1

最大版本數,即資料表中的屬性列能夠保留資料的最大版本個數。

預設值為 1,表示只保留最新版本的資料。取值必須為非 0 的整數。

重要

當前Table Store未限制最大版本數。但是出於效能與易用性考慮,建議控製版本數在 500 以內。

--read_cu

0

預留讀輸送量和預留寫輸送量,單位為 CU。預設值均為 0,即完全隨用隨付。

說明
  • 僅高效能型執行個體中的資料表支援此功能;其他類型執行個體中的資料表不允許設定預留讀/寫輸送量。

  • 當預留讀/寫輸送量不為 0 時,無論是否有讀/寫請求,均會產生費用。

--write_cu

0

樣本

以下樣本用於修改 mytable 資料表的資料生命週期為 86400 秒(即 1 天),最大版本數為 1,且預留讀 CU 和預留寫 CU 均為 0。

alter -t mytable --ttl 86400 --version 1 --read_cu 0 --write_cu 0

查看錶資訊

查看錶的資訊。您也可以將表資訊儲存到本地 JSON 格式的檔案中。

命令格式

desc -t <tableName> -o /localpath/filename.json

參數說明

參數

是否必填

樣本值

說明

-t,--table

mytable

資料表或者索引表名稱。

-f,--print_format

json

表資訊的輸出格式。取值範圍為 json(預設)和 table。

-o,--output

/tmp/describe_table_meta.json

指定儲存檔案的目錄和檔案名稱。

樣本

  • 以下樣本用於查看當前表的資訊。

    desc
  • 以下樣本用於查詢當前表的資訊並將表資訊儲存到本地檔案 describe_table_meta.json 中。

    desc -o  /tmp/describe_table_meta.json

刪除表

刪除資料表。

命令格式

drop -t <tableName> -y

參數說明

參數

是否必填

樣本值

說明

-t,--table

mytable

資料表名稱。

-y,--yes

不涉及

顯示確認資訊。命令中必須帶有此參數。

樣本

以下樣本用於刪除 mytable 表。

drop -t mytable -y

相關文檔

  • 寬表模型(WideColumn)是類 Bigtable/HBase 模型,可應用於中繼資料、巨量資料等多種情境。更多資訊,請參見寬表模型

  • 除了命令列工具外,Table Store還支援通過控制台和 SDK 的方式進行資料表操作。更多資訊,請參見使用控制台使用 SDK