數(shù)據(jù)表操作
寬表模型使用數(shù)據(jù)表存儲數(shù)據(jù)。本文介紹了如何通過表格存儲的命令行工具進行數(shù)據(jù)表操作,您可以使用命令行創(chuàng)建表、使用表、列出表名稱、更新表、查看表信息以及刪除表。
創(chuàng)建表
創(chuàng)建一張數(shù)據(jù)表,同時指定數(shù)據(jù)表的主鍵、數(shù)據(jù)生命周期(TimeToLive)等。您也可以通過導(dǎo)入 JSON 格式的配置文件來創(chuàng)建數(shù)據(jù)表。
命令格式
create -t tableName --pk '[{"c":"<primaryKeyName>", "t":"<primaryKeyType>"},{"c":"<primaryKeyName>", "t":"<primaryKeyType>","opt":"<options>"}]' --ttl <timeToLive> --version <maxVersion>
參數(shù)說明
參數(shù) | 是否必填 | 示例值 | 說明 |
-m,--mode | 否 | widecolumn | 創(chuàng)建的表類型。取值范圍如下:
|
-t,--table | 是 | mytable | 數(shù)據(jù)表名稱。 |
-k,--pk | 是 | [{"c":"uid","t":"string"},{"c":"pid","t":"integer"}] | 數(shù)據(jù)表主鍵列,以 JSON 格式的數(shù)組表示。包含如下字段:
說明 創(chuàng)建數(shù)據(jù)表時,屬性列不需要定義。表格存儲每行的屬性列都可以不同,屬性列的列名在寫入數(shù)據(jù)時指定。 單表最多可設(shè)置 4 個主鍵,第一個主鍵默認為分區(qū)鍵。主鍵的配置及順序設(shè)置后不能修改。 |
--ttl | 否 | 864000 | 數(shù)據(jù)生命周期,即數(shù)據(jù)的保存時間,單位為秒。 默認值為 -1,表示數(shù)據(jù)永不過期。 說明 取值必須大于等于 86400(一天)或者等于 -1(數(shù)據(jù)永不過期)。 |
--version | 否 | 1 | 最大版本數(shù),即數(shù)據(jù)表中的屬性列能夠保留數(shù)據(jù)的最大版本個數(shù)。 默認值為 1,表示只保留最新版本的數(shù)據(jù)。取值必須為非 0 的整數(shù)。 重要 當前表格存儲未限制最大版本數(shù)。但是出于性能與易用性考慮,建議控制版本數(shù)在 500 以內(nèi)。 |
--read_cu | 否 | 0 | 預(yù)留讀吞吐量和預(yù)留寫吞吐量,單位為 CU。默認值均為 0,即完全按量計費。 說明
|
--write_cu | 否 | 0 | |
-d,--defined | 否 | [{"c":"name","t":"string"},{"c":"age","t":"integer"}] | 預(yù)定義列及其類型,以 JSON 格式的數(shù)組表示。包含如下字段:
說明 單個數(shù)據(jù)表默認最大支持添加 32 個預(yù)定義列。 |
-i,--input | 否 | /tmp/create_table_meta.json | 通過 JSON 格式的配置文件創(chuàng)建數(shù)據(jù)表。 |
示例
以下示例用于創(chuàng)建名稱為 mytable 的數(shù)據(jù)表,該數(shù)據(jù)表有 uid 和 pid 兩個主鍵列,表中數(shù)據(jù)永不過期。
create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer"}]'
以下示例用于創(chuàng)建名稱為 mytable 的數(shù)據(jù)表,該數(shù)據(jù)表有 uid 和 pid 兩個主鍵列且設(shè)置 pid 為自增列。
create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer", "opt":"auto"}]'
以下示例用于創(chuàng)建名稱為 mytable 的數(shù)據(jù)表,該數(shù)據(jù)表有 uid 和 pid 兩個主鍵列,表中數(shù)據(jù)在 864000 秒(即 10 天)后過期且只保留最新版本。
create -t mytable --pk '[{"C":"uid","t":"string"}, {"c":"pid","t":"integer"}]' --ttl 864000 --version 1
以下示例通過配置文件的方式創(chuàng)建 mytable 表。該數(shù)據(jù)表有 uid 和 pid 兩個主鍵列,數(shù)據(jù)生命周期為 864000 秒(10 天),最大版本數(shù)為 3,預(yù)留讀寫吞吐量均為 0。
Windows 平臺
create -i D:\\localpath\\filename.json
Linux 和 Mac平臺
create -i /localpath/filename.json
配置文件內(nèi)容如下:
{ "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 } }
使用表
選擇需要進行操作的表,用于后續(xù)表操作或者數(shù)據(jù)操作。
命令格式
use --wc -t <tableName>
參數(shù)說明
參數(shù) | 是否必填 | 示例值 | 說明 |
--wc | 否 | 不涉及 | 表示操作的表為數(shù)據(jù)表或者索引表。 |
-t,--table | 是 | mytable | 表名稱。 |
示例
以下示例用于使用 mytable 數(shù)據(jù)表。
use -t mytable
列出表名稱
列出實例下的所有表名稱、所有數(shù)據(jù)表名稱或者所有時序表名稱。
命令格式
list
參數(shù)說明
參數(shù) | 是否必填 | 示例值 | 說明 |
-a,--all | 否 | 不涉及 | 列出所有表名稱。 |
-d,--detail | 否 | 不涉及 | 列出表的詳細信息。 |
-w,--wc | 否 | 不涉及 | 列出所有數(shù)據(jù)表名稱。 |
-t,--ts | 否 | 不涉及 | 列出時序表名稱。 |
示例
列出與當前表類型相同的所有表名稱。
list
列出所有表名稱。
list -a
列出所有數(shù)據(jù)表名稱。
list -w
列出所有時序表名稱。
list -t
更新表
更新數(shù)據(jù)表的數(shù)據(jù)生命周期、最大版本數(shù)等信息。
命令格式
alter -t <tableName> --ttl <timeToLive> --version <maxVersion> --read_cu <readCU> --write_cu <writeCU>
參數(shù)說明
參數(shù) | 是否必填 | 示例值 | 說明 |
-t,--table | 是 | mytable | 數(shù)據(jù)表名稱。 |
--ttl | 否 | 864000 | 數(shù)據(jù)生命周期,即數(shù)據(jù)的過期時間,單位為秒。 取值最低為 86400 秒(一天),也可設(shè)置為 -1(永不過期)。 |
--version | 否 | 1 | 最大版本數(shù),即數(shù)據(jù)表中的屬性列能夠保留數(shù)據(jù)的最大版本個數(shù)。 默認值為 1,表示只保留最新版本的數(shù)據(jù)。取值必須為非 0 的整數(shù)。 重要 當前表格存儲未限制最大版本數(shù)。但是出于性能與易用性考慮,建議控制版本數(shù)在 500 以內(nèi)。 |
--read_cu | 否 | 0 | 預(yù)留讀吞吐量和預(yù)留寫吞吐量,單位為 CU。默認值均為 0,即完全按量計費。 說明
|
--write_cu | 否 | 0 |
示例
以下示例用于修改 mytable 數(shù)據(jù)表的數(shù)據(jù)生命周期為 86400 秒(即 1 天),最大版本數(shù)為 1,且預(yù)留讀 CU 和預(yù)留寫 CU 均為 0。
alter -t mytable --ttl 86400 --version 1 --read_cu 0 --write_cu 0
查看表信息
查看表的信息。您也可以將表信息保存到本地 JSON 格式的文件中。
命令格式
desc -t <tableName> -o /localpath/filename.json
參數(shù)說明
參數(shù) | 是否必填 | 示例值 | 說明 |
-t,--table | 否 | mytable | 數(shù)據(jù)表或者索引表名稱。 |
-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
刪除表
刪除數(shù)據(jù)表。
命令格式
drop -t <tableName> -y
參數(shù)說明
參數(shù) | 是否必填 | 示例值 | 說明 |
-t,--table | 是 | mytable | 數(shù)據(jù)表名稱。 |
-y,--yes | 是 | 不涉及 | 顯示確認信息。命令中必須帶有此參數(shù)。 |
示例
以下示例用于刪除 mytable 表。
drop -t mytable -y