400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
快速上手
SQL参考
工具指南
数据库最终存储的是数据,所以首先要知道现实世界中时序数据都包括哪些,形式是怎样的。
时序数据最基本的信息就是指标。如下所示:
27.5
27.6
27.3
......
但是只有指标还不行,因为指标只是一堆数值,这些数值又是什么含义呢?这就引出了另外一个维度,指标名。指标名即指标的含义,如:温度、转速、湿度等等。
所以,重建模后的时序数据如下所示:
温度:27.5℃
温度:27.6℃
温度:27.3℃
......
有了指标名和指标值后,又带来了新问题,即该指标是什么时间的值。因为时序数据就是基于时间序列的数据,没有时间的话是没有意义的。每个指标值都是某个时间点的采集结果,所以还要带有时间戳信息。
所以,更新后时序数据如下所示:
时间:2021-11-16 13:57:13,温度:27.5℃
时间:2021-11-16 13:57:14,温度:27.6℃
时间:2021-11-16 13:57:15,温度:27.3℃
......
有了时间,还剩最后一个问题,即该指标是谁发来的。指标数据由采集设备产生,而采集设备本身又会带有许多标识与标签,所以时序数据完整的形式如下:
气象传感器,型号1,编号0001,北京市,怀柔区,时间:2021-11-16 13:57:13,温度:27.5℃
气象传感器,型号1,编号0001,北京市,怀柔区,时间:2021-11-16 13:57:14,温度:27.6℃
气象传感器,型号1,编号0001,北京市,怀柔区,时间:2021-11-16 13:57:15,温度:27.3℃
......
知道了时序数据的形式后,下面需要考虑时序数据如何存储。目前,时序数据存储方案概况起来又两种:
关系模型基于传统的关系型数据库。在关系模型中,需要先定义模式,即数据表。表的模式确定下来后,修改成本较高。以刚才的时序数据为例,在关系模型中,可以建如下模式的数据表:
设备标识 | 温度 | 风力 | 湿度 | 时间戳 |
---|---|---|---|---|
气象传感器,型号1,编号0001,北京市,怀柔区 | 29.2 | 3.2 | 55 | 2021-11-16 13:57:13 |
气象传感器,型号2,编号0010,上海市,崇明区 | 21.5 | 8.5 | 35 | 2021-11-16 13:57:13 |
MatrixDB采用的是关系模型。
非关系模型通常使用Key-Value模式,将指标值作为Value,其他的作为Key。以刚才的时序数据为例,在非关系模型中,可以按如下方式存储:
Key | Value |
---|---|
气象传感器,型号1,编号0001,北京市,怀柔区,时间2021-11-16 13:57:13,温度 | 29.2 |
气象传感器,型号1,编号0001,北京市,怀柔区,时间2021-11-16 13:57:13,风力 | 3.2 |
气象传感器,型号1,编号0001,北京市,怀柔区,时间2021-11-16 13:57:13,湿度 | 55 |
气象传感器,型号2,编号0010,上海市,崇明区,时间2021-11-16 13:57:13,温度 | 21.5 |
气象传感器,型号2,编号0010,上海市,崇明区,时间2021-11-16 13:57:13,风力 | 8.5 |
气象传感器,型号2,编号0010,上海市,崇明区,时间2021-11-16 13:57:13,湿度 | 35 |
...... |
非关系模型的时序数据库代表产品有:OpenTSDB、InfluxDB等。
关系模型与非关系模型对比起来有如下差别: