创建数据表后,您可以通过命令行工具在数据表中插入新数据、更新一行数据、读取数据、删除一行数据、扫描数据以及导入导出数据。
插入新数据
在表中插入新数据。您也可以通过导入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