数据表操作

更新时间: 2024-01-18 17:14:37

创建数据表后,您可以使用表、查询表信息、列出表名称、更新表以及删除表。

说明

关于宽表模型的更多信息,请参见宽表模型

创建表

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

数据表名称。

-p,--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整数。

--read_cu

0

为数据表配置预留读吞吐量或预留写吞吐量。默认值均为0,即完全按量计费。单位为CU。

容量型实例中的数据表的预留读/写吞吐量只能设置为0,不允许预留。

  • 当预留读吞吐量或预留写吞吐量大于0时,表格存储会根据配置为数据表预留相应资源,且数据表创建成功后,将会立即按照预留吞吐量开始计费,超出预留的部分进行按量计费。

  • 当预留读吞吐量或预留写吞吐量设置为0时,表格存储不会为数据表预留相应资源。

--write_cu

0

-i,--input

/tmp/create_table_meta.json

通过JSON格式的配置文件创建数据表。

您也可以通过配置文件创建表,命令格式如下:

  • 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
    }
}

示例

创建名称为mytable的数据表,该数据表有uid(string类型)和pid(integer类型)两个主键列,表中数据永不过期。

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

创建名称为mytable的数据表,该数据表有uid(string类型)和pid(integer类型)两个主键列并设置第二主键列pid(integer类型)为自增列,表中数据永不过期。

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

创建名称为mytable的数据表,该数据表有uid(string类型)和pid(integer类型)两个主键列,表中数据在864000秒(即10天)后过期且只保留最新版本。

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

使用表

选择需要进行操作的表,用于后续表操作或者数据操作。

命令格式

use --wc -t <tableName>

配置项说明请参见下表,

配置项

是否必填

示例值

说明

--wc

不涉及

表示操作的表为数据表或者索引表。

-t,--table

mytable

表名称。

示例

使用mytable数据表。

use -t mytable

列出表名称

列出实例下的所有表名称、所有数据表名称或者所有时序表名称。

  • 列出与当前表类型相同的所有表名称

    list
  • 列出所有表名称

    list -a
  • 列出所有数据表名称

    list -w
  • 列出所有时序表名称

    list -t

配置项说明请参见下表。

配置项

是否必填

示例值

说明

-a,--all

不涉及

列出所有表名称。

-d,--detail

不涉及

列出表的详细信息。

-w,--wc

不涉及

列出所有数据表名称。

-t,--ts

不涉及

列出时序表名称。

更新表

更新数据表的数据生命周期、最大版本数等信息。

命令格式

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

示例

修改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

输出表信息到本地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
阿里云首页 表格存储 相关技术圈