近期,Jesse也在一直学习和拓展知识中,看到了《中国修船》期刊上一篇《基于TSDB的船舶风险管理系统的数据预处理》的文章,因此本期也想以此文为基础,和大家简单聊聊TSDB在船舶风险管理领域的应用。
本文仅代表个人观点,如有偏颇之处,还请海涵~
🤠🤠🤠
时序数据库在船舶风险管理领域的应用
现今,科技的进步使船舶的设备更加先进,船员接受的知识更加丰富,但事故率却有增无减。多米诺骨牌理论认为,伤亡事故的发生不是一个孤立的事件,尽管伤害可能在某瞬间突然发生,却是一系列事件相继发生的结果。我们认为,导致事故发生主要因素是人的不安全行为、物的不安全状态和管理上的缺陷。也正因事故的多发,对船舶进行安全管理就是必须之选。船舶安全管理是围绕船舶性能、技术安全、货物安全以及相关人员的生命财产安全所进行的领导、组织和控制等一系列管理工作。为了实现全面和科学的风险管理,搭建船舶风险管理系统也是重中之重。我们需要对船舶机舱重要设备和系统的相关参数进行实时监控,并分析相关参数变化与船机故障的关系,明确造成风险的具体机制和影响后果。
既然船舶风险管理系统如此的重要,那么其整体设计又是怎样的呢?从整体角度来看,船舶风险管理系统如下图所示。船舶实时数据通过公网传输至岸端,其中数据包括主机负荷、转矩、转速、燃油温度等多个参数,通过接收与解析、异常数据剔除及缺失数据补充的数据预处理后,将数据存入TSDB中; 后续读取TSDB中数据,实现实时监测、超限报警、数据分析及风险预警等功能; 并搭建相应的数据平台,将监测内容与后续分析结果进行可视化展示。我们可以看到TSDB在整体设计中处于相对核心的位置。
同时,在上述设计中,尤其是在数据传输过程中我们也需要注意一些问题。比如,数据发送装置将实时数据发送至岸端时,我们在保证数据可读性的同时,也要防止他人窃取或篡改数据,这就需要通过统一协议进行发送。再比如,由于网络等问题,数据会出现错误或者缺失。因此在接收到数据后,需先进行数据解析,然后进行异常值的剔除与缺失值的填充。
那么为什么又要选择TSDB作为船舶风险管理系统的数据库存储选项呢?一般而言,传统DBMS(数据库管理系统)有两种类型。一种是关系型数据库,比如SQL Server、MySQL等,此种类型的数据库的问题是其结构复杂,数据不好扩展,如果大量数据实时写入其难以承受。另一种类型是非关系型数据库,比如MongoDB、Redis等,此类数据库的问题是开发与维护成本相对较高。在船舶航行中,各类数据具有实时性高,数据量大,且均是按时间序列进行排序的特点。在风险管理系统数据查询方面,其也是以时间段查询为主,致使传统数据库无法满足船舶风险管理系统使用要求。无论是由于结构问题还是开发与维护成本问题,其均不适用于作为船舶风险管理系统的数据库。因此,要想解决相关问题,应用TSDB还是大家最适合的选择。
本期我们就到这里,感谢大家对CnosDB社区的持续关注,大家如果有任何问题可以通过GitHub提Issues或者Discussions等方式来给我们提意见,CnosDB也会第一时间给与大家反馈。
参与CnosDB社区交流群:
扫描下方二维码,加入CC进入CnosDB社区进入社区交流,CC也会在群内分享直播链接哒