编辑: 木头飞艇 | 2017-11-20 |
7 Metric:多表聚合 各个数据采集点的时钟是很难同步的,为保证其时序,而且为保证单一采集点的数据 在存储介质上的连续性,TDengine 要求每个数据采集点单独建表,这样能极大提高 数据的插入速度以及查询速度,但是导致系统表的数量猛增,让应用对表的维护以及 聚合、统计操作难度加大.为降低应用的开发难度,TDengine 引入了 Metric 的概 念. TDengine 白皮书 第9页?北京涛思数据科技有限公司版权所有 Metric 是表的集合,包含多张表,而且这集合里每张表的 schema 是一样的.同一类 型的采集设备可创建一个 Metric.与表一样,包含 Schema,但还包含标签信息. Schema 定义了表的每列数据的属性,如温度、压力等,而标签信息是静态的,属于 Meta Data,如采集设备的型号、位置等.TDengine 扩展了标准 SQL 的table 的定 义,创建时,除指定 Schema 外,还可以带关键词 tags 来指定有哪些标签.如: create table m1(ts timestamp, pressure int, rpm int) tags (model binary(8), color binary(8)) 上述 SQL 创建了一个 Metric m1, 带有标签 model 和标签 color.为某一个具体的采 集点创建表时,可以指定其所属的 Metric 以及标签的值,比如: create table t1 using m1 tags ('
apple'
, '
red'
) 上述 SQL 以Metric m1 为模板,创建了一张表 t1,这张表的 Schema 就是 m1 的Schema,但标签 id 设为 apple,标签 color 设为 red.插入数据时,仍然按照正常的 方式进行插入.但查询时,除传统的表的查询外,还可以基于标签对 Metric 进行各种 聚合查询或统计.如: select avg(pressue) from m1 where model='
apple'
interval(5m) group by color 上面这个 SQL 语句表示将标签 model 值为 apple 的所有采集点的记录的每
5 分钟的 平均值........