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

写入时序数据

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

  • 命令格式
    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):以数组表示,每个标签由tagKey和tagValue组成,表示为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,取值范围为true和false。默认值为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
    • Linux和Mac平台
      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 每个标签由tagKey和tagValue组成,表示为tagKey=tagValue的格式。

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

    fields usage_user=58i,usage_system=2i,usage_idle=24i 时序数据的数据列。每个数据列由columnKey和columnValue组成,表示为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):以数组表示,每个标签由tagKey和tagValue组成,表示为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):以数组表示,每个标签由tagKey和tagValue组成,表示为tagKey=tagValue的格式。
    --attrs '["city=nanjing","region=jiangning"]' 时间线的属性,以数组表示。每个标签由key和value组成,表示为key=value格式。
  • 示例

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

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