数据操作

通过命令行工具您可以在时序表中写入时序数据、导入时序数据、查询时序数据、检索时间线、扫描时间线以及更新时间线。

说明

在对时序表进行数据操作前,请先使用表。更多信息,请参见使用表

写入时序数据

写入时序数据到时序表中。

命令格式

putts --k '["measurement_name","data_source",["tagKey1=tagValue1","tagKey2=tagValue2"]]' --field '[{"c":"fieldname","v":"fieldvalue"},{"c":"bool_field","v":true},{"c":"double_field","v":1.1},{"c":"int_value","v":10,"isint":true}]' --time 1635162859000000

配置项说明请参见下表。

配置项

是否必填

示例值

说明

--k

'["cpu","localhost",["region=hangzhou","os=ubuntu"]]'

时间线标识,以数组格式表示。包括以下内容:

  • 度量名称(measurement name):表示度量值的类型,示例中为cpu。

  • 数据源标识(data source):表示产生数据的数据源,示例中为localhost。

  • 标签(tags):以数组表示,每个标签由tagKeytagValue组成,表示为tagKey=tagValue的格式。

--field

'[{"c":"fieldname","v":"fieldvalue"},{"c":"bool_field","v":true},{"c":"double_field","v":1.1},{"c":"int_value","v":10,"isint":true}]'

时序数据的数据列,以JSON数据格式表示。每个数据列包含以下内容:

  • c(必选):数据列名。

  • v(必选):数据列值,类型可选字符串、数值和Bool。

  • isint(可选):数值类型的数据列值是否按照整型处理,类型为Bool,取值范围为truefalse。默认值为false,表示数值类型的数据列值按照浮点数处理。

    当设置为true时,表示数据类型的数据列值按照整型处理。

--time

1635162859000000

该行时序数据对应的时间,格式为时间戳,单位为微秒(us)。

示例

插入一行时序数据。

putts --k '["cpu","localhost",["region=hangzhou","os=ubuntu"]]' --field '[{"c":"fieldname","v":"fieldvalue"},{"c":"bool_field","v":true},{"c":"double_field","v":1.1},{"c":"int_value","v":10,"isint":true}]' --time 1635162859000000

导入时序数据

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

命令格式

Windows平台

import_timeseries --input D:\\localpath\\filename.txt

LinuxMac平台

import_timeseries --input /localpath/filename.txt
  • 配置项说明请参见下表。

    配置项

    是否必填

    示例值

    说明

    -i,--input

    /temp/import_timeseries.txt

    通过配置文件导入时序数据。

  • 配置文件的示例如下。

    cpu,hostname=host_0,region=cn-hangzhou usage_user=58i,usage_system=2i,usage_idle=24i 1609459200000000000
    cpu,hostname=host_1,region=cn-hangzhou usage_user=58i,usage_system=2i,usage_idle=24i 1609459200000000000

    示例文件中的每一行代表一行时序数据,每一行的数据格式为measurement_name,tags fields timestamp,各字段说明请参见下表。

    配置项

    是否必填

    示例值

    说明

    measurement

    cpu

    度量值的类型。

    tags

    hostname=host_0,region=cn-hangzhou

    每个标签由tagKeytagValue组成,表示为tagKey=tagValue的格式。

    其中第一个标签的tagValue会作为产生数据的数据源,例如示例值中的host_0为产生该行时序数据的数据源。

    fields

    usage_user=58i,usage_system=2i,usage_idle=24i

    时序数据的数据列。每个数据列由columnKeycolumnValue组成,表示为columnKey=columnValue的格式。

    columnValue支持为整型或者浮点数。如果在数值结尾加i,则表示整型,否则表示浮点数。

    timestamp

    1609459200000000000

    该行时序数据对应的时间,格式为时间戳,单位为纳秒(ns)。

    重要

    数据导入到时序表后,配置文件中数据的纳秒单位时间戳会自动转换为微秒单位时间戳。

示例

导入import_timeseries.txt文件中的时序数据到时序表中。

import_timeseries --input /temp/import_timeseries.txt

查询时序数据

查询指定范围内的时序数据。

命令格式

getts --k '["measurement_name","data_source",["tagKey1=tagValue1","tagKey2=tagValue2"]]' --time_start 0 --time_end 1635162900000000 --limit 100

配置项说明请参见下表。

配置项

是否必填

示例值

说明

--k

'["cpu","localhost",["region=hangzhou","os=ubuntu"]]'

时间线标识,以数组格式表示。包括以下内容:

  • 度量名称(measurement name):表示度量值的类型,示例中为cpu。

  • 数据源标识(data source):表示产生数据的数据源,示例中为localhost。

  • 标签(tags):以数组表示,每个标签由tagKeytagValue组成,表示为tagKey=tagValue的格式。

--time_start

0

要查询的时序数据的起始时间。

--time_end

1667638230000000

要查询的时序数据的结束时间。

--limit

100

最多返回条数,取值范围为1~5000。实际返回条数由服务端决定。

示例

查询度量名称为cpu,数据源标识为localhost,且标签为"region=hangzhou"和"os=ubuntu"的时间线中1667638230000000之前产生的所有时序数据。

getts --k '["cpu","localhost",["region=hangzhou","os=ubuntu"]]' --time_start 0 --time_end 1667638230000000 --limit 100

检索时间线

检索满足指定条件的时间线。

命令格式

说明

您可以将命令中的query_ts_meta简写为qtm。

query_ts_meta --measurement measurement_name --datasource data_source --limit 10

配置项说明请参见下表。

配置项

是否必填

示例值

说明

--measurement

cpu

度量名称。

--datasource

localhost

数据源标识。

--limit

100

最多返回条数。取回范围为1~1000。实际返回条数由服务端决定。

-e,--edit

{"measurement":"cpu","data_source":"localhost"}

通过输入JSON格式的内容配置查询条件。

您也可以通过执行qtm -e命令后,手动输入查询条件来实现复杂查询,查询条件示例如下:

{
    "Type":"COMPOSITE",
    "QueryCondition":{
        "Operator":"AND",
        "SubConditions":[
            {
                "Type":"MEASUREMENT",
                "QueryCondition":{
                    "Operator":"EQUAL",
                    "Value":"CPU"
                }
            },
            {
                "Type":"SOURCE",
                "QueryCondition":{
                    "Operator":"EQUAL",
                    "Value":"127.0.0.1"
                }
            },
            {
                "Type":"TAG",
                "QueryCondition":{
                    "Operator":"GREATER_EQUAL",
                    "TagName":"Region",
                    "Value":"Jiangning"
                }
            }
        ]
    }
}

示例

检索度量名称为cpu且数据源标识为localhost的时间线。

query_ts_meta --measurement cpu --datasource localhost --limit 10

扫描时间线

获取时序表中所有时间线或者指定个数的时间线。

命令格式

说明

您可以将命令中的query_ts_meta简写为qtm。

query_ts_meta --limit limit

配置项说明请见下表。

配置项

是否必填

示例值

说明

--limit

10

本次扫描返回的最大行数。如果不配置此项,则表示扫描整表中所有数据。

示例

query_ts_meta --limit 10

更新时间线

更新时间线的属性。

命令格式

说明

您可以将命令中的update_ts_meta简写为utm。

update_ts_meta --k '["measurement_name","data_source",["tag1=value1","tag2=value2"]]' --attrs '["key1=value1","key2=value2"]' 

配置项说明请参见下表。

配置项

是否必填

示例值

说明

--k

'["cpu","localhost",["region=hangzhou","os=ubuntu"]]'

时间线标识,以数组格式表示。包括以下内容:

  • 度量名称(measurement name):表示度量值的类型,示例中为cpu。

  • 数据源标识(data source):表示产生数据的数据源,示例中为localhost。

  • 标签(tags):以数组表示,每个标签由tagKeytagValue组成,表示为tagKey=tagValue的格式。

--attrs

'["city=nanjing","region=jiangning"]'

时间线的属性,以数组表示。每个标签由keyvalue组成,表示为key=value格式。

示例

更新指定时间线的属性为"city=nanjing"和"region=jiangning"。

update_ts_meta --k '["cpu","localhost",["city=hangzhou","region=xihu"]]' --attrs '["city=nanjing","region=jiangning"]'