创建数据表后,您可以通过命令行工具在数据表中插入新数据、更新一行数据、读取数据、删除一行数据、扫描数据以及导入导出数据。
插入新数据
在表中插入新数据。您也可以通过导入JSON格式的配置文件来插入新数据到表中。
命令格式
put --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition配置项说明请参见下表。
| 参数 | 是否必填 | 示例值 | 说明 | 
| -k,--pk | 是 | ["86", 6771] | 数据表主键的值,以数组表示。 重要  
 | 
| -a,--attr | 是 | [{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}] | 数据表属性列,以JSON格式的数组表示。每个属性列包含如下字段: 
 | 
| --condition | 否 | ignore | 使用条件更新,可以设置原行的存在性条件。取值范围如下: 
 关于条件更新的更多信息,请参见条件更新。 | 
| -i, --input | 否 | /temp/inputdata.json | 通过JSON格式的配置文件插入数据。 | 
您也可以通过配置文件插入数据,命令格式如下:
- Windows平台 - put -i D:\\localpath\\filename.json
- Linux和Mac平台 - put -i /localpath/filename.json
配置文件的示例如下:
{
    "PK":{
        "Values":[
            "86",
            6771
        ]
    },
    "Attr":{
        "Values":[
            {
                "C":"age",
                "V":32,
                "TS":1626860801604,
                "IsInt":true
            }
        ]
    }
}示例
- 示例1 - 以下示例用于在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为6771,属性列有name(string类型)和country(string类型)两列。 - put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
- 示例2 - 以下示例用于在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为6771,属性列有name(string类型)和country(string类型)两列。无论此行是否存在均会插入新数据,如果之前行已存在,则写入数据时会覆盖原有数据。 - put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]' --condition ignore
- 示例3 - 以下示例用于在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为6771,属性列有name(string类型)和country(string类型)两列,并且country列的时间戳为15327798534。 - put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}]'
- 示例4 - 当数据表中第二主键列为自增列时,以下示例用于在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为null,属性列有name(string类型)和country(string类型)两列。 - put --pk '["86", null]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
读取数据
读取表中的数据。您也可以将读取的数据导出到本地JSON格式的文件中。
如果读取的数据行不存在,则返回结果为空。
命令格式
get --pk '[primaryKeyValue,primaryKeyValue]'配置项说明请参见下表。
| 配置项 | 是否必填 | 示例值 | 说明 | 
| -k,--pk | 是 | ["86",6771] | 数据表主键的值,以数组表示。 重要  设置的主键个数和类型必须和数据表的主键个数和类型一致。 | 
| -c,--columns | 否 | name,uid | 读取的列集合,列名可以是主键列或属性列。如果不设置返回的列名,则返回整行数据。 | 
| --max_version | 否 | 1 | 最多读取的版本数。 | 
| --time_range_start | 否 | 1626860469000 | 读取版本号范围内的数据。time_range_start和time_range_end分别表示起始时间戳和结束时间戳,范围为左闭右开区间。 | 
| --time_range_end | 否 | 1626865270000 | |
| --time_range_specific | 否 | 1626862870000 | 读取特定版本号的数据。 | 
| -o, --output | 否 | /tmp/querydata.json | 输出查询结果到本地JSON格式的文件中。 | 
示例
以下示例用于读取第一主键列值为“86”,第二主键列值为6771的行数据。
get --pk '["86",6771]'更新一行数据
更新表中的数据。您也可以通过导入JSON格式的配置文件来更新表中数据。
命令格式
update --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition配置项说明请参见下表。
| 参数 | 是否必填 | 示例值 | 说明 | 
| -k,--pk | 是 | ["86", 6771] | 数据表主键的值,以数组表示。 重要  设置的主键个数和类型必须和数据表的主键个数和类型一致。 | 
| --attr | 是 | [{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "ts":15327798534}] | 数据表属性列,以JSON格式的数组表示。每个属性列包含如下字段: 
 | 
| --condition | 否 | ignore | 使用条件更新,可以设置原行的存在性条件。取值范围如下: 
 关于条件更新的更多信息,请参见条件更新。 | 
| -i, --input | 否 | /tmp/inputdata.json | 通过JSON格式的配置文件更新数据。 | 
您也可以通过配置文件更新数据,命令格式如下:
- Windows平台 - update -i D:\\localpath\\filename.json
- Linux和Mac平台 - update -i /localpath/filename.json
配置文件的示例如下:
{
    "PK":{
        "Values":[
            "86",
            6771
        ]
    },
    "Attr":{
        "Values":[
            {
                "C":"age",
                "V":32,
                "TS":1626860801604,
                "IsInt":true
            }
        ]
    }
}示例
以下示例用于更新第一主键列为“86”,第二主键列为6771的行数据。无论此行是否存在均会插入新数据,如果之前行已存在,则写入数据时会覆盖原有数据。
update --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'  --condition ignore删除一行数据
根据主键删除一行数据。
命令格式
delete --pk '[primaryKeyValue,primaryKeyValue]'配置项说明请参见下表。
| 参数 | 是否必填 | 示例值 | 说明 | 
| -k,--pk | 是 | ["86", 6771] | 数据表主键的值,以数组表示。 重要  设置的主键个数和类型必须和数据表的主键个数和类型一致。 | 
示例
以下示例用于删除第一主键列值为“86”,第二主键列值为6771的行数据。
delete --pk '["86", 6771]'扫描数据
扫描获取整表中所有数据或者获取最多指定个数的行数据。
命令格式
scan --limit limit配置项说明请见下表。
| 配置项 | 是否必填 | 示例值 | 说明 | 
| --limit | 否 | 10 | 本次扫描返回的最大行数,可不配置。如果不设置此项,则表示扫描整表中所有数据。 | 
示例
以下示例用于扫描获取数据表中的最多10行数据。
scan --limit 10导出数据
导出表中数据到本地JSON文件中。
命令格式
scan -o /localpath/filename.json -c attributeColumnName,attributeColumnName,attributeColumnName配置项说明请参见下表。
| 配置项 | 是否必填 | 示例值 | 说明 | 
| -c, --columns | 是 | uid,name | 导出的列集合,列名可以是主键列或属性列。如果不设置列名,则导出整行数据。 | 
| --max_version | 否 | 1 | 最多导出的版本数。 | 
| --time_range_start | 否 | 1626865596000 | 导出版本号范围内的数据。time_range_start和time_range_end分别表示起始时间戳和结束时间戳,范围为前闭后开区间。 | 
| --time_range_end | 否 | 1626869196000 | |
| --time_range_specific | 否 | 1626867396000 | 导出特定版本号的数据。 | 
| --backward | 否 | 不涉及 | 导出数据按照主键降序排列。 | 
| -o, --output | 是 | /tmp/mydata.json | 输出查询结果到本地指定路径的JSON格式文件中。 | 
| -l,--limit | 否 | 10 | 本次查询最多返回的行数。 | 
| -b,--begin | 否 | '["86", 6771]' | 导出范围起始点和结束点之间的数据。主键范围为前闭后开的区间。 说明  
 | 
| -e,--end | 否 | '["86", 6775]' | 
示例
- 示例1 - 以下示例用于导出当前表中全部数据到本地文件mydata.json。 - scan -o /tmp/mydata.json
- 示例2 - 以下示例用于导出当前表中uid和name列的数据到本地文件mydata.json。 - scan -o /tmp/mydata.json -c uid,name
- 示例3 - 以下示例用于导出当前表中在指定主键范围内的数据到本地文件mydata.json。其中起始点的第一主键列为“86”,第二主键列为6771,结束点的第一主键列为“86”,第二主键列为6775。 - scan -o D:\\0testreport\\mydata.json -b '["86", 6771]' -e '["86", 6775]'
- 示例4 - 以下示例用于导出当前表中在指定主键范围内的数据到本地文件mydata.json。其中第一主键列为“50”到“100”的数据,第二主键列不指定范围。 - scan -o /tmp/mydata.json -b '["50",null]' -e '["100",null]'
导入数据
导入本地JSON文件中的数据到表中。
如果本地JSON文件所在路径中存在汉字,则导入数据时会出错。
命令格式
import -i /localpath/filename.json --ignore_version配置项说明请参见下表。
| 配置项 | 是否必填 | 示例值 | 说明 | 
| -a,--action | 否 | put | 导入数据的模式。取值范围如下: 
 | 
| -i, --input | 是 | /tmp/inputdata.json | 通过JSON格式的本地文件将数据导入到当前表。 重要  
 | 
| --ignore_version | 否 | 不涉及 | 忽略时间戳检查,使用当前时间作为时间戳。 | 
本地文件的配置示例如下:
{"PK":{"Values":["redchen",0]},"Attr":{"Values":[{"C":"country","V":"china0"},{"C":"name","V":"redchen0"}]}}
{"PK":{"Values":["redchen",1]},"Attr":{"Values":[{"C":"country","V":"china1"},{"C":"name","V":"redchen1"}]}}                              示例
- 示例1 - 以下示例用于导入mydata.json文件的数据到当前表。 - import -i /tmp/mydata.json
- 示例2 - 以下示例用于导入mydata.json文件的数据到当前表,且使用当前时间作为时间戳。 - import -i /tmp/mydata.json --ignore_version