在很多资料反复而冗长的去讲了TimeSeries的使用,按照步骤创建完毕都没有明白TimeSeries到底是个什么意思。
后来通过琢磨,发现TimeSeries其实是一个很简单的东西。时间序列的主要目的是解决设备或其他对象按照时间产生的数据的存储和读取问题。
心得如下:
在传统方式中 描述设备按照时间产生数据的方式如下:
dev1|attr1|attr2|time1|...|...|...|
dev1|attr1|attr2|time2|...|...|...|
dev1|attr1|attr2|time3|...|...|...|
dev2|attr1|attr2|time1|...|...|...|
dev2|attr1|attr2|time2|...|...|...|
dev2|attr1|attr2|time3|...|...|...|
dev3|attr1|attr2|time1|...|...|...|
dev3|attr1|attr2|time2|...|...|...|
dev3|attr1|attr2|time3|...|...|...|
TimeSeries存放的方式为:
dev1|attr1|attr2|日历|...|...|...|
dev2|attr1|attr2|日历|...|...|...|
dev3|attr1|attr2|日历|...|...|...|
每个设备或对象为一行数据,在这行数据中特点如下:
1、dev1|attr1|attr2 只出现一次;
2、日历部分存储的是日历定义的规则和起始时间,所有的数据的对应时间都是相对于日历规则定义的时间点的数据,时间字段需要重复出现,所以会节省空间;
3、|...|...|...| 是设备或对象对应于日历上出现的数据;
此存储结构的优势:
1、节省了N倍的dev1|attr1|attr2空间;
2、节省了存储时间字段的空间,值需要用一条日历规则即可;
3、在数据读取的时候读入内存的空间相对较小(省去了dev1|attr1|attr2和时间的重复部分);
需要考虑的部分:
1、目前看到的时间序列的案例都是|...|...|...|很短的,比如只有几个列的请;
2、比如在记录通信设备的性能数据的时候,每个网元是按照时间规则产生性能数据的,理论上可以使用时间序列,但是现有的网元有通常有几十个甚至几百个性能指标,不知道时间序列是否给力了。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论