0 前言
这一个系列是针对SRCC公司的海量传感器数据的存储及处理探索。硬件为戴尔R730xd,系统为Windows Server 2012R,没办法,公司一个程序员都没有。。。
2.1 原始数据格式
2.1.1 软件打开
原始数据为传感器采集到的特殊格式,只有特定软件才能打开,打开后如下图:
一个文件为一行,文件名,格式(是不是很奇怪的格式),类别(时序数据没错了),Data为传感器开始采集的时间,Pointxx就是所谓的各个通道,对关系表熟悉的同学,可以当做table的不同属性。
其中每个Point就是一个波形图,例如前4个Point:
大家也看到了,这就是时间为横坐标,幅值为纵坐标的波形图,只不过这个横坐标长度为14400(4*3600s),纵坐标单位不一定相同(有的为加速度传感器)。
原始数据肯定是无法存进数据库的,该软件支持导出位.xlsx
和.asc
两种格式文件,这两种格式利用一下,就可以作为.csv
和.txt
文件来处理,这也是目前我的基本思路。
先来看看导出的数据是啥样的。(预警。。。大片大片的草原色即将来袭)
这里做一个说明
该传感器没有绝对时间(如
2018-11-27 14:25:56
这种),只有相对时间,即从传感器打开,记为0时刻,采样率为1024Hz,每个文件为4h的时间跨度,所以各个数据点的timestamp其实应该是从文件修改日期开始来计算的,而不是真的横坐标0开始。这点在后面的数据导入中会采取措施。
可以看到,每个文件为4h的时间跨度。
2.2 导出为文本文件
导出来就是这个样子,前面第一行的BEGIN
开始,到大片草原色之前的END
,这中间都是表头,里面大概的就是一些元信息,可以看出来,大概的分为三个部分:
- #Created by xxx
名称 | 含义 |
---|---|
LENGTH | 时间跨度,即上述波形图的横坐标长度 |
UNIT | 各个通道(属性)的单位 |
MININUM / MAXINUM | 各个通道的最小/大值 |
START / DELTA | 横坐标的起始位置 和 时间间隔(不到1ms) |
-
#descriptive data
这里面其实是一些对地铁车辆运行过程的数据记录(暴露了我这个数据来源了),比如操作员(Operator),车辆类型(Vehicle Type),车辆编号(Vehicle ID),行驶距离(Distance)等。
但是由于没有这个实验条件,这些数据都没有,或者说,这种文件里面没有,直接忽略掉就行了。 -
descriptive data for channel
名称 | 含义 |
---|---|
Absolute time | 传感器开始采集的绝对时间,也是该文件的修改时间 |
channel id / name / unit | 就是字面的意思 |
… | … |
从END之后,就是各个通道的数据了,就是一张行数超级多的表:
前面说明了,采样率为1024,也就是说,一秒会产生1024行记录,而每个文件又是4h的时间跨度,所以,理论上,每个文件都有 4*3600*1024=14745600
行记录。。。。所以,我第一次用记事本打开,毫无疑问的把电脑卡死了。
但是,换个角度,这个文件中的没有time的,也就是没有横坐标,但是可以将行数,作为横坐标,经过换算一下就行了。
2.3 导出为excel文件
导出为.xlsx
文件后,和文本文件差不多,只是没有表头,就只有第一行,大概如下这种:
大家也看到了,第一列其实就是波形的横坐标,后面为各个通道及其值,典型的excel表格。
2.x 后记
这只是关于数据格式的一些思路,还有很多细节,后面遇到了再来补充。