当下,随着物流供应链的不断发展,冷链物流正变得越来越重要。通过数字化、平台化和生态化的智慧冷链监管平台,企业可以更好地掌握运输车辆的位置,及时发现并处理异常事件,有效提升客户满意度和信任度,同时也有助于降低冷链运输成本,提高企业市场竞争力。在这一背景下,某冷链项目利用追溯技术和监控预警功能,可以实现对冷链运输各个环节的高效监管,提高运输安全性和产品质量,为冷链运输行业带来极大的赋能作用。
异常事件预警
在具体业务中,轨迹数据的传输形式主要有两种,正常情况下设备会实时向服务端推送数据,但当设备无信号时就会出现离线数据,车辆联网后会将离线数据再次进行推送。利用这些推送数据,我们需要计算运输车辆超时停车预警。
这一需求实现的难点在于实时数据计算停车停留时间后,离线数据上传,离线数据可能存在实时数据的中间,所以停留时间需要重新计算,数据量大,计算量大,复杂度也高,准确性低。
我们的解决方案是:
-
对于实时数据,可以直接计算每个轨迹点的停留时间,并根据预设的超时阈值进行判断,是否需要发出超时停车预警。同时使用 Redis 内存数据库或者是使用分布式缓存系统进行缓存优化,将计算结果进行缓存,避免重复计算;
-
对于离线数据,可以在车辆重新联网后,将离线数据与实时数据进行合并,并根据时间戳进行排序,从而保证数据顺序的正确性。然后根据新的轨迹点数据重新计算超时停车预警,避免离线数据对预警结果造成影响。
在原有方案中,我们通过对已接收的数据进行实时计算,以此确定每个轨迹点是离线还是在线状态。但这一方案存在两点缺陷:
-
由于计算数据量较大,导致接收数据存在延时问题
-
因有离线数据,需要考虑离线数据与实时数据结合,可能有超时停车的情况出现,导致计算量复杂程度倍增
后面经过数据库选型,我们选择了时序数据库(Time Series Database) TDengine 存储车辆轨迹数据,它能够很好地实时分析并记录车辆的位置、速度和行驶方向等信息,为 B 端客户提供实时车辆运输位置跟踪。
插入实时数据,观察流式计算结果select * from overtime_parking_output_stb;
,如下:
通过应用 TDengine 流式计算功能,我们可以将行驶和超时停车的数据分别存储,并记录对应轨迹和时长,方便查找和分析正常行驶和超时停车的情况。
在车辆行驶过程中,TDengine 流式计算引擎能够实时判断车辆的运行状态,区分出行驶和停车的状态,并将这些数据实时处理并存储到不同的数据库表或者数据流中。在数据存储的过程中,也会记录对应轨迹和时长等信息,为后续的数据分析提供依据。
对于超时停车的情况,通过 TDengine 流式计算可以实时监控车辆的运行状态和位置信息,如果发现车辆停留时间过长,就可以将其标记为超时停车,并及时进行预警和管控。同时,利用这一功能,我们也可以通过对行驶和停车数据进行分析,进一步优化路线规划和运营管理,提升运输效率和安全性。
离线数据分析
插入离线数据(实时数据的中间部分,观察流式计算结果):
插入离线数据,观察流式计算结果select * from overtime_parking_output_stb;
,如下:
在离线数据上传后,TDengine 流式计算引擎会将这些数据在对应的时间点上进行数据计算处理,按照数据的时间顺序进行处理,并且完全满足轨迹按时间排序计算的正常顺序,确保不会出现漏洞或者混乱的情况。这样一来,离线数据与实时数据就不会再出现错误计算的问题,我们也能够为 B 端客户提供更准确、实时、有效的运营数据和报表。
总之,TDengine 流式计算功能不仅帮助我们实现了车辆行驶数据的实时处理和分类,也很好地实现了运输车辆超时停车预警,减轻了服务端的计算压力,满足业务需求的同时帮助我们极大节省了数据处理成本,提高了车辆的运输效率和安全性。
写在最后
在运行 TDengine 过程中,涛思数据团队始终以客户需求为导向,为我们提供高效、可靠的数据处理和分析服务,满足了不断升级的业务需求,我们也非常感谢他们。未来我们还有计划将 TDengine 引入到其他业务中进行时序数据的处理,在实践中推进时序数据库技术的发展,实现共赢。