数据表操作

宽表模型使用数据表存储数据。本文介绍了如何通过表格存储的命令行工具进行数据表操作,您可以使用命令行创建表、使用表、列出表名称、更新表、查看表信息以及删除表。

创建表

创建一张数据表,同时指定数据表的主键、数据生命周期(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 时,表示该主键列为自增列。

    关于主键自增列的更多信息,请参见主键列自增

说明

创建数据表时,属性列不需要定义。表格存储每行的属性列都可以不同,属性列的列名在写入数据时指定。

单表最多可设置 4 个主键,第一个主键默认为分区键。主键的配置及顺序设置后不能修改。

--ttl

864000

数据生命周期,即数据的保存时间,单位为秒。

默认值为 -1,表示数据永不过期。

说明

取值必须大于等于 86400(一天)或者等于 -1(数据永不过期)。

--version

1

最大版本数,即数据表中的属性列能够保留数据的最大版本个数。

默认值为 1,表示只保留最新版本的数据。取值必须为非 0 的整数。

重要

当前表格存储未限制最大版本数。但是出于性能与易用性考虑,建议控制版本数在 500 以内。

--read_cu

0

预留读吞吐量和预留写吞吐量,单位为 CU。默认值均为 0,即完全按量计费。

说明
  • CU 模式(原按量模式)下高性能型实例中的数据表支持此功能;其他类型实例中的数据表不允许设置预留读/写吞吐量。

  • 当预留读/写吞吐量不为 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 的整数。

重要

当前表格存储未限制最大版本数。但是出于性能与易用性考虑,建议控制版本数在 500 以内。

--read_cu

0

预留读吞吐量和预留写吞吐量,单位为 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

相关文档

  • 宽表模型(WideColumn)是类 Bigtable/HBase 模型,可应用于元数据、大数据等多种场景。更多信息,请参见宽表模型

  • 除了命令行工具外,表格存储还支持通过控制台和 SDK 的方式进行数据表操作。更多信息,请参见使用控制台使用 SDK