通过命令行工具您可以在数据表中插入新数据、更新一行数据、读取数据、删除一行数据、扫描数据以及导入导出数据。

插入新数据

在表中插入新数据。您也可以通过导入JSON格式的配置文件来插入新数据到表中。

  • 命令格式
    put --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition

    配置项说明请参见下表。

    参数 是否必填 示例值 说明
    -p,--pk ["86", 6771] 数据表主键的值,以数组表示。
    重要
    • 设置的主键个数和类型必须和数据表的主键个数和类型一致。
    • 当主键为自增列时,只需将自增列的值设置为占位符null。
    --attr [{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}] 数据表属性列,以JSON格式的数组表示。每个属性列包含如下字段:
    • c(必选):属性列名称。
    • v(必选):属性列的值。
    • t(可选):属性列类型,取值范围为integer、string(UTF-8编码字符串)、binary、boolean、double五种。当属性列类型为binary时必须设置此字段不可省略。
    • ts(可选):时间戳即数据的版本号,可以由系统自动生成或者自定义,如果不设置此参数,则默认由系统自动生成。更多信息,请参见数据版本和生命周期
    --condition ignore 使用条件更新,可以设置原行的存在性条件。取值范围如下:
    • ignore(默认):表示无论此行是否存在均会插入新数据,如果之前行已存在,则写入数据时会覆盖原有数据。
    • exist:表示只有此行存在时才会插入新数据,写入数据时会覆盖原有数据。
    • not_exist:表示只有此行不存在时才会插入数据。

    关于条件更新的更多信息,请参见条件更新

    -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
                }
            ]
        }
    }
  • 示例
    在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为6771,属性列有name(string类型)和country(string类型)两列。
    put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
    在数据表中插入一行数据,该行的第一主键列值为“86”,第二主键列值为6771,属性列有name(string类型)和country(string类型)两列。无论此行是否存在均会插入新数据,如果之前行已存在,则写入数据时会覆盖原有数据。
    put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'  --condition ignore
    在数据表中插入一行数据,该行的第一主键列值为“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}]'
    当数据表中第二主键列为自增列时,在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为null,属性列有name(string类型)和country(string类型)两列。
    put --pk '["86", null]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'

读取数据

读取表中的数据。您也可以将读取的数据导出到本地JSON格式的文件中。

说明 如果读取的数据行不存在,则返回结果为空。
  • 命令格式
    get --pk '[primaryKeyValue,primaryKeyValue]'

    配置项说明请参见下表。

    配置项 是否必填 示例值 说明
    -p,--pk ["86",6771] 数据表主键的值,以数组表示。
    重要 设置的主键个数和类型必须和数据表的主键个数和类型一致。
    --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
    配置项说明请参见下表。
    参数 是否必填 示例值 说明
    -p,--pk ["86", 6771] 数据表主键的值,以数组表示。
    重要 设置的主键个数和类型必须和数据表的主键个数和类型一致。
    --attr [{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "ts":15327798534}] 数据表属性列,以JSON格式的数组表示。每个属性列包含如下字段:
    • c(必选):属性列名称。
    • v(必选):属性列的值。
    • t(可选):属性列类型,取值范围为是integer、string(UTF-8编码字符串)、binary、boolean、double五种。当属性列类型为binary时必须设置此字段不可省略。
    • ts(可选):时间戳即数据的版本号,可以由系统自动生成或者自定义,如果不设置此参数,则默认由系统自动生成。
    --condition ignore 使用条件更新,可以设置原行的存在性条件。取值范围如下:
    • ignore(默认):表示无论此行是否存在均会插入新数据,如果之前行已存在,则写入数据时会覆盖原有数据。
    • exist:表示只有此行存在时才会插入新数据,写入数据时会覆盖原有数据。
    • not_exist:表示只有此行不存在时才会插入数据。

    关于条件更新的更多信息,请参见条件更新

    -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]'
  • 示例
    删除第一主键列值为“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 1000 导出范围起始点和结束点之间的数据。
    -e,--end 2000
  • 示例
    导出当前表中全部数据到本地文件mydata.json。
    scan -o /tmp/mydata.json
    导出当前表中uid和name列的数据到本地文件mydata.json。
    scan -o /tmp/mydata.json -c uid,name

导入数据

导入本地JSON文件中的数据到表中。

  • 命令格式
    import -i /localpath/filename.json --ignore_version

    配置项说明请参见下表。

    配置项 是否必填 示例值 说明
    -a,--action put 导入数据的模式。取值范围如下:
    • put(默认):如果某行数据已存在,则先删除原行数据(原行的所有列以及所有版本的数据),再写入新行数据。
    • update:如果某行数据已存在,可以增加和删除一行中的属性列,删除属性列指定版本的数据,或者更新已存在的属性列的值。如果某行数据不存在,则新增一行数据。
    -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"}]}}                              
  • 示例
    导入mydata.json文件的数据到当前表。
    import -i /tmp/mydata.json
    导入mydata.json文件的数据到当前表,且使用当前时间作为时间戳。
    import -i /tmp/mydata.json --ignore_version