表格存储的时序模型是针对时间序列数据的特点进行设计,适用于物联网设备监控、设备采集数据、机器监控数据等场景,支持自动构建时序元数据索引、丰富的时序查询能力等功能。时序模型通过时序表存储时间序列数据,能提供高并发写入和查询以及PB级海量数据的低成本存储。您还可以通过SQL查询与分析时序数据。
模型介绍
表格存储的时序模型是针对时间序列数据的特点进行设计,适用于物联网设备监控、设备采集数据、机器监控数据等场景。
在表格存储的时序模型中,采用一张二维的时序表来存储时序数据。每行代表一个时间线在某个时间点的数据,该行的主键部分为时间线标识和时间戳,该行的数据列部分为该时间线在该时间戳下的数据点,可以有多个数据列。主键结构和数据列的结构无须用户进行预先定义,用户仅需要在写入时指定数据列的列名即可。
一个时序表支持存储不同度量类别的时序数据。以下图为例,时序表中存储了温度(temperature)和湿度(humidity)两种度量类别的数据。
图中度量名称(measurement)、数据源(data source)和标签(tags)组成了一个时间线标识。此外,您还可以通过接口更新某个时间序列的元数据属性(attributes),该元数据信息可以用于时间线的检索。
数据写入后,系统会自动提取该时间线的元数据信息并自动构建索引,支持按照度量名称、数据源以及标签的组合条件进行时间线检索。
表格存储时序模型的主要优势如下:
通用的时序数据建模方式,用户无须预定义表结构。
支持自动构建时间序列的元数据索引,支持按照多种组合条件检索时间序列。
支持SQL查询以及通过SQL进行聚合统计操作。
服务能力自动水平扩展、支持高并发写入和查询以及PB级海量数据的低成本存储。
基础概念
概念 | 描述 |
时序数据 | 由多个时间序列组成,每个时间序列表示一组按照时间顺序排列的数据点。除了数据点之外,还需要一些元数据用来标识一个时间序列。因此时序数据由元数据和数据两部分组成。
|
时间线 | 在时序数据场景中,常用时间线来代指一个时间序列。在表格存储时序模型中,时间线与时间序列也是等价的说法。 |
时间线元数据 | 时间线元数据也称为时间序列元数据,表示一条时间线的标识和属性信息。时间线标识用来唯一确定一条时间线,属性信息支持修改,可用于时间线检索。 |
时间线标识 | 时间线标识也称为时间序列标识,用来唯一标识一条时间线。在表格存储的时序模型中,时间线标识由度量名称、数据源和标签三部分组成。 |
度量名称 | 时间线数据所度量的物理量或者监控指标的名称,例如cpu或net,用于表示该时间序列记录的是cpu或者网络使用率等。 |
数据源 | 产生时间线的数据源标识,可以为空。 |
标签 | 时间线的标签信息。您可以自定义多个字符串类型的key-value对。 |
属性 | 属性属于时间线元数据的一部分,可用于记录该时间线的一些可变属性信息,但不作为时间线的标识,不用于唯一确定一个时间序列。时间线的属性在格式上类似于标签,为多个字符串类型的key-value对。您可以设置或者更新某个时间线的属性,用于后续通过属性进行时间线的检索。 |
时间线数据 | 一条时间线的数据点由产生数据的时间和数据值两部分组成。如果每个时间线每个时刻仅产生一个值,则为单值模型;如果每个时刻对应多个值,则为多值模型。 表格存储的时序模型为多值模型,在一个时间点上可以设置多个数据值。每个值对应数据库中的一列,包括列名和列值。列值支持多种数据类型,包括布尔、整型、浮点数、字符串和二进制。 |
功能特性
创建和管理时序表
通过控制台、SDK、CLI工具等方式列出实例中的全部时序表、创建一张时序表、查询时序表的配置信息、更新时序表的配置信息以及删除一张时序表。
在创建或者更新时序表的配置信息时,您可以设置时序表中数据的自动过期时间(TimeToLive),系统将自动判断当前时间与时序数据中用户写入的时间戳,超过过期时间后数据会被自动删除。
读写时序数据
通过控制台、SDK、CLI工具等方式将时序数据批量写入一张时序表中。数据写入后,您可以通过指定时间线标识来查询一条时间线在某段时间范围内的数据。
时间序列检索
通过控制台、SDK、CLI工具等方式检索一张时序表中的时间线。检索条件支持多种条件组合,例如查询“度量名称为cpu”、“标签中包含名称为region和值为hangzhou的标签”且“属性中包含名称为status和值为online”的所有时间线。检索到时间线后,可以通过调用接口进一步查询该时间线中的数据。
SQL查询分析
时序表支持通过SQL进行查询,SQL中支持通过指定时间线的元数据条件筛选时间线以及通过统计聚合操作按照不同维度对数据进行聚合操作,例如查询某一批设备采样数据的平均值、将秒级数据聚合为分钟级数据等。
此外,SQL还支持仅对时间线的元数据进行查询,方便通过SQL进行时间线的元数据管理。
使用限制
更多信息,请参见时序模型限制。
注意事项
目前支持时序模型功能的地域包括华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)、沙特(利雅得)。
接口说明
分类 | 接口 | 描述 |
时序表管控接口 | 创建一张时序表。 | |
获取当前实例下的时序表列表。 | ||
获取一个时序表的信息。 | ||
更新时序表的配置信息。 | ||
删除一个时序表。 | ||
时间序列操作接口 | 写入时序数据。 | |
查询某个时间线的数据。 | ||
检索时间线的元数据。 | ||
更新时间线的元数据。 | ||
删除时间线的元数据。 |
使用流程
步骤 | 操作 | 说明 |
1 | 创建RAM用户后,为RAM用户配置访问表格存储资源所需的最小化权限。您可以使用系统默认策略或者自定义权限策略为RAM用户授予访问表格存储资源的权限。 如果要使用阿里云账号或者要使用的RAM用户已具有访问表格存储存储资源所需的权限,请跳过此步骤。 重要 阿里云账号默认具有所有云资源的操作权限,为了您的资源安全,建议您为阿里云账号创建RAM用户并为其授权,实现不同RAM用户拥有不同资源访问权限的目的。 | |
2 | 使用表格存储功能前,您必须开通表格存储服务。 服务仅需开通一次,开通过程免费。如果已经开通表格存储服务,请跳过此操作。 | |
3 | 根据确定的实例模型和实例规格在所需地域中创建相应实例。 如果已存在实例满足使用需求,请跳过此步骤。 | |
4 | 创建时序表用于存储时间序列数据。创建时序表时,您可以根据是否需要清理历史业务数据配置时序表的数据生命周期。 | |
5 | 批量写入时序数据到时序表。时序数据由元数据和数据两部分组成,如果未预先新建元数据,则系统会根据写入的数据自动提取元数据。 说明 您也可以使用kafka-connect-tablestore包将Kafka中数据写入Tablestore的时序表中。更多信息,请参见同步数据到时序表。 | |
6 | 重要 查询时序数据前,如果不确定要查询时间线信息(例如度量名称、数据源信息),您可以指定多种条件检索时间线。更多信息,请参见管理时间线元数据。 确定要查询的时间线后,根据时间范围等条件查询指定时间线中符合条件的时序数据。 | |
7 | 对于同一个时序表,您可以建立三种SQL映射关系用于数据查询。
|
使用方式
您可以使用控制台、命令行工具或者SDK使用时序模型。
计费说明
时序模型计费项包括时间线数据和时间线元数据的读吞吐量、写吞吐量、数据存储量和外网下行流量。更多信息,请参见时序模型计量计费。
常见问题
相关文档
如果需要删除历史时序数据,您可以通过配置时序表的数据生命周期实现。更多信息,请参见时序数据生命周期。
如果要以更低成本备份表格存储中的时序数据或者以文件形式导出时序数据到本地,您可以通过DataWorks数据集成服务将表格存储中的时序数据导出到OSS后进行存储或者下载。更多信息,请参见将表格存储数据同步到OSS。
如果要可视化展示时序数据,您可以通过对接Grafana实现。更多信息,请参见对接Grafana。
通过Flink计算与分析数据后,您可以使用Tablestore时序表存储输出结果。更多信息,请参见使用时序表存储Flink输出结果。