資料表操作

更新時間:
Copy as MD

通過命令列工具建立、使用、查看、更新和刪除資料表。

前提條件

  • 已完成命令列工具的安裝和訪問憑證配置。具體操作,請參見命令列工具

  • 已建立執行個體。具體操作,請參見執行個體操作

建立表

建立資料表時需指定主鍵列、資料生命週期等配置。也支援通過 JSON 設定檔建立。

create -t tableName --pk '[{"c":"col1","t":"string"},{"c":"col2","t":"integer"}]' [--ttl seconds] [--version max]

參數

必填

說明

-m, --model

表類型,預設 widecolumn(資料表)。如需建立時序表,請參見時序模型

-t, --table

資料表名稱。

-k, --pk

主鍵列定義,JSON 數組格式。每個元素包含:

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

  • t(必選):主鍵列類型,取值 stringintegerbinary

  • opt(可選):預設 none。設為 auto 表示該主鍵列為自增列。關於主鍵自增列,請參見主鍵列自增

說明

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

單表最多 4 個主鍵列,第一個主鍵列預設為分區鍵。主鍵列配置後不可修改。

--ttl

資料生命週期,單位為秒。預設 -1(永不到期)。取值必須大於等於 86400(一天)或等於 -1。

--version

最大版本數,預設 1。取值必須為非 0 的整數。

重要

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

--read_cu

預留讀/寫輸送量,單位為 CU,預設 0(隨用隨付)。

說明
  • 僅高效能型執行個體中的資料表支援此配置。

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

--write_cu

-d, --defined

預定義列,JSON 數組格式。使用二級索引時需指定。每個元素包含:

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

  • t(必選):預定義列類型,取值 stringintegerbinarydoublebool

說明

單個資料表預設最多支援 32 個預定義列。

--stream_enable

是否開啟 Stream,預設 false

--stream_expire

Stream 資料到期時間,單位為小時,預設 24

-i, --input

通過 JSON 設定檔建立表,指定檔案路徑。

建立基本資料表:

create -t mytable --pk '[{"c":"uid","t":"string"},{"c":"pid","t":"integer"}]'

建立帶自增列和 TTL 的資料表:

create -t mytable --pk '[{"c":"uid","t":"string"},{"c":"pid","t":"integer","opt":"auto"}]' --ttl 864000 --version 1

建立帶預定義列的資料表(用於二級索引):

create -t mytable --pk '[{"c":"uid","t":"string"},{"c":"pid","t":"integer"}]' --defined '[{"c":"name","t":"string"},{"c":"age","t":"integer"}]'

通過設定檔建立資料表:

Windows

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

Linux 和 macOS

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

表名稱。

樣本:

use --wc -t mytable

列出表名稱

列出當前執行個體下的表名稱,支援按表類型過濾。

list [--wc | --all] [--detail]

參數

必填

說明

-w, --wc

只列出資料表。

-a, --all

列出所有類型的表。

-d, --detail

顯示錶的詳細資料。

樣本:

list --wc

查看錶資訊

查看資料表或索引表的詳細配置資訊。

desc [-t tableName] [-f json|table] [-o outputFile]

參數

必填

說明

-t, --table

資料表或索引表名稱。省略時查看當前 use 的表。

-f, --print_format

輸出格式,取值 json(預設)或 table

-o, --output

將結果儲存到本地檔案。

樣本:

desc -t mytable

更新表

更新資料表的配置,例如資料生命週期、最大版本數、預留輸送量等。

alter -t tableName [--ttl seconds] [--version max] [--read_cu n] [--write_cu n]

參數

必填

說明

-t, --table

表名稱。如果已通過 use 選擇了表,可省略。

--ttl

資料生命週期,單位為秒。取值必須大於等於 86400(一天)或等於 -1(永不到期)。

--version

最大版本數。取值必須為非 0 的整數。

--read_cu

預留讀/寫輸送量,單位為 CU。僅高效能型執行個體支援。

--write_cu

--stream_enable

是否開啟 Stream。

--stream_expire

Stream 資料到期時間,單位為小時。

--disallow_update

是否禁止更新操作。

修改 TTL 為 1 天,最大版本數為 1:

alter -t mytable --ttl 86400 --version 1

刪除表

刪除指定的資料表。

drop -t tableName [-y]

參數

必填

說明

-t, --table

表名稱。

-y, --yes

跳過確認提示直接刪除。

樣本:

drop -t mytable -y