时序模型快速入门

更新时间:
复制为 MD 格式

时序模型是针对时间序列数据的特点进行设计,适用于物联网设备监控、设备采集数据、机器监控数据等场景,能提供高并发写入和查询以及PB级海量数据的低成本存储。本文介绍如何使用命令行工具使用时序模型。

本文包含以下操作:

  • 配置命令行工具的实例访问信息

  • 创建时序表并切换到该表

  • 写入、查询和管理时序数据

场景说明: 本文以服务器监控为例,每条数据记录一台主机的 CPU 指标,并附带地域和操作系统等标签信息。

前提条件

已创建实例。具体操作,请参见创建实例

注意事项

目前支持时序模型功能的地域包括华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)。

如果使用过程中遇到问题,请通过钉钉加入用户群44327024(物联网存储 IoTstore 开发者交流群)联系我们。

操作步骤

步骤一:配置接入实例信息

执行 config 命令,配置访问凭证。各参数含义如下:

参数

说明

--endpoint

实例的 Endpoint 地址

--instance

实例名称

--id

AccessKey ID

--key

AccessKey secret

执行前,将命令中的 endpointinstanceidkey 替换为实际的实例 Endpoint、实例名称、AccessKey IDAccessKey secret。
config --endpoint https://myinstance.cn-hangzhou.ots.aliyuncs.com --instance myinstance --id NTSVL******************** --key 7NR2****************************************

步骤二:创建并使用时序表

创建时序表后,切换到该表,以便进行后续的数据操作。

  1. 执行以下命令,创建名为 mytable 的时序表,--ttl -1 表示数据永不过期。

    create -m timeseries -t mytable --ttl -1
  2. 执行以下命令,切换到 mytable 时序表。

    use --ts -t mytable

步骤三:数据操作

根据需要选择对应操作:写入时序数据、查询时序数据或管理时间线元数据。

写入时序数据

使用 putts 写入单行数据,或使用 import_timeseries 从文件批量导入。每行数据通过 --k 参数中的度量名称(measurement)、数据源(data source)和标签(tags)三部分唯一标识一条时间线。

--k 参数格式["<measurement>","<data_source>",["<tag>=<value>", ...]]

字段

说明

示例

measurement

指标名称

cpu

data_source

数据来源标识,如主机名

localhost

tags

标识时间线的键值对标签

region=hangzhouos=ubuntu

  • 插入一行时序数据

    以下示例将一条 CPU 指标写入时序表,数据来自 hangzhou 地域运行 Ubuntu 的 localhost 主机。--field 数组格式为 {"c":"<字段名>","v":<字段值>},整数字段需加 "isint":true

    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 1737451312000000
  • 导入时序数据

    以下示例从 import_timeseries.txt 文件批量导入时序数据。文件中每行数据使用行协议格式:<measurement>,<标签键>=<标签值>,... <字段键>=<字段值>,... <时间戳(纳秒)>

    import_timeseries --input /temp/import_timeseries.txt

    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

查询时序数据

使用 getts 查询指定时间线在某个时间范围内的数据点。

以下示例查询度量名称为 cpu、数据源为 host_0(标签为 hostname=host_0region=cn-hangzhou)的时间线中,时间戳从 01667638230000000 范围内的最多 100 条数据。

如需使用SQL查询表中数据,请参见 SQL查询
getts --k '["cpu","host_0",["hostname=host_0","region=cn-hangzhou"]]' --time_start 0 --time_end 1667638230000000 --limit 100

管理时间线元数据

时间线由度量名称、数据源和标签共同唯一标识。使用以下命令检索、扫描或更新时间线元数据。

  • 检索时间线

    以下示例检索度量名称为 cpu、数据源为 host_0 的时间线。

    query_ts_meta --measurement cpu --datasource host_0 --limit 10
  • 扫描时间线

    以下示例获取时序表中最多 10 条时间线。

    query_ts_meta --limit 10
  • 更新时间线

    以下示例将 host_1 时间线的属性更新为 hostname=host_1region=cn-hangzhou

    update_ts_meta --k '["cpu","host_1",["hostname=host_1","region=cn-hangzhou"]]' --attrs '["hostname=host_1","region=cn-hangzhou"]'