宽表模型使用数据表存储数据。本文介绍了如何通过表格存储的命令行工具进行数据表操作,您可以使用命令行创建表、使用表、列出表名称、更新表、查看表信息以及删除表。
创建表
创建一张数据表,同时指定数据表的主键、数据生命周期(TimeToLive)等。您也可以通过导入 JSON 格式的配置文件来创建数据表。
命令格式
create -t tableName --pk '[{"c":"<primaryKeyName>", "t":"<primaryKeyType>"},{"c":"<primaryKeyName>", "t":"<primaryKeyType>","opt":"<options>"}]' --ttl <timeToLive> --version <maxVersion>
参数说明
参数 | 是否必填 | 示例值 | 说明 |
-m,--mode | 否 | widecolumn | 创建的表类型。取值范围如下:
|
-t,--table | 是 | mytable | 数据表名称。 |
-k,--pk | 是 | [{"c":"uid","t":"string"},{"c":"pid","t":"integer"}] | 数据表主键列,以 JSON 格式的数组表示。包含如下字段:
说明 创建数据表时,属性列不需要定义。表格存储每行的属性列都可以不同,属性列的列名在写入数据时指定。 单表最多可设置 4 个主键,第一个主键默认为分区键。主键的配置及顺序设置后不能修改。 |
--ttl | 否 | 864000 | 数据生命周期,即数据的保存时间,单位为秒。 默认值为 -1,表示数据永不过期。 说明 取值必须大于等于 86400(一天)或者等于 -1(数据永不过期)。 |
--version | 否 | 1 | 最大版本数,即数据表中的属性列能够保留数据的最大版本个数。 默认值为 1,表示只保留最新版本的数据。取值必须为非 0 的整数。 重要 当前表格存储未限制最大版本数。但是出于性能与易用性考虑,建议控制版本数在 500 以内。 |
--read_cu | 否 | 0 | 预留读吞吐量和预留写吞吐量,单位为 CU。默认值均为 0,即完全按量计费。 说明
|
--write_cu | 否 | 0 | |
-d,--defined | 否 | [{"c":"name","t":"string"},{"c":"age","t":"integer"}] | 预定义列及其类型,以 JSON 格式的数组表示。包含如下字段:
说明 单个数据表默认最大支持添加 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 的整数。 重要 当前表格存储未限制最大版本数。但是出于性能与易用性考虑,建议控制版本数在 500 以内。 |
--read_cu | 否 | 0 | 预留读吞吐量和预留写吞吐量,单位为 CU。默认值均为 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