通过命令行工具写入、导入、查询时序表数据以及管理时间线。
前提条件
执行数据操作前,先通过以下命令选定目标时序表。
use --ts -t <tableName>
写入时序数据
向指定时间线写入一行时序数据。
putts --k '<timeseriesKey>' --field '<fields_json>' --time <timestamp>
|
参数 |
必填 |
说明 |
|
--k |
是 |
时间线标识,以 JSON 数组表示,格式为
|
|
--field |
是 |
数据列,以 JSON 数组表示。每个数据列包含如下字段:
|
|
--time |
是 |
该行时序数据对应的时间,格式为时间戳,单位为微秒(us)。 |
示例
插入一行时序数据。
putts --k '["cpu","localhost",["region=hangzhou","os=ubuntu"]]' --field '[{"c":"usage_user","v":58,"isint":true},{"c":"usage_idle","v":24,"isint":true}]' --time 1635162859000000
导入时序数据
将本地文件中的时序数据导入到时序表。
Windows
import_timeseries --input D:\\localpath\\filename.txt
Linux 和 macOS
import_timeseries --input /localpath/filename.txt
|
参数 |
必填 |
说明 |
|
-i,--input |
是 |
指定数据文件路径,从文件导入时序数据。 |
数据文件中每行代表一行时序数据,格式为measurement_name,tags fields timestamp。
|
字段 |
必填 |
说明 |
|
measurement_name |
是 |
度量名称(measurement)。 |
|
tags |
是 |
每个标签格式为 tagKey=tagValue。第一个标签的 tagValue 作为数据源标识。 |
|
fields |
是 |
数据列,格式为 columnKey=columnValue。数值结尾加 i 表示整型,否则表示浮点数。 |
|
timestamp |
是 |
时间戳,单位为纳秒(ns)。导入到时序表后自动转换为微秒。 |
数据文件示例:
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
示例
import_timeseries --input /tmp/import_timeseries.txt
查询时序数据
查询指定时间线在指定时间范围内的时序数据。
getts --k '<timeseriesKey>' --time_start <start> --time_end <end> --limit <n>
|
参数 |
必填 |
说明 |
|
--k |
是 |
时间线标识,格式与写入时序数据中的 --k 参数相同。 |
|
--time_start |
是 |
查询的起始时间,格式为时间戳,单位为微秒。 |
|
--time_end |
是 |
查询的结束时间,格式为时间戳,单位为微秒。 |
|
--limit |
否 |
最多返回的行数,取值范围为 1~5000。 |
示例
getts --k '["cpu","localhost",["region=hangzhou","os=ubuntu"]]' --time_start 0 --time_end 1667638230000000 --limit 100
检索时间线
检索满足指定条件的时间线。命令可简写为qtm。
query_ts_meta --measurement <measurement> --datasource <dataSource> --limit <n>
|
参数 |
必填 |
说明 |
|
--measurement |
否 |
度量名称。 |
|
--datasource |
否 |
数据源标识。 |
|
--limit |
否 |
最多返回的行数,取值范围为 1~1000。实际返回行数由服务端决定。 |
|
-e,--edit |
否 |
以 JSON 格式配置复杂查询条件。支持 COMPOSITE(组合条件)、MEASUREMENT、SOURCE、TAG 等条件类型。 |
示例
检索度量名称为 cpu 且数据源标识为 localhost 的时间线。
query_ts_meta --measurement cpu --datasource localhost --limit 10
通过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"
}
}
]
}
}
扫描时间线
获取时序表中所有时间线或指定个数的时间线。命令可简写为qtm。
query_ts_meta --limit <n>
|
参数 |
必填 |
说明 |
|
--limit |
否 |
本次扫描返回的最大行数。不设置则扫描所有时间线。 |
示例
query_ts_meta --limit 10
更新时间线
更新时间线的属性。如果目标时间线不存在,则自动新增。命令可简写为utm。
update_ts_meta --k '<timeseriesKey>' --attrs '<attributes>'
|
参数 |
必填 |
说明 |
|
--k |
是 |
时间线标识,格式与写入时序数据中的 --k 参数相同。 |
|
--attrs |
否 |
时间线的属性,以 JSON 数组表示。每个属性为 key=value 格式。 |
示例
更新指定时间线的属性。
update_ts_meta --k '["cpu","localhost",["region=hangzhou","os=ubuntu"]]' --attrs '["city=nanjing","region=jiangning"]'