公司简介元智信息是国内领先的露天矿业项目管理咨询和技术方案提供商。元智公司为全国范围内的工矿企业提供一站式的技术支持服务, 包括可行性研究分析、矿山规划与调度、生产评估、生产优化、业务系统整合、系统集成和软件开发等专项服务。 一、行业背景智慧矿山是以矿山数字化、信息化为前提和基础,对矿山生产、职业健康与安全、技术支持与后勤保障等各方面进行主动感知、自动分析和快速处理。建设智慧矿山,首先以建设和实现矿山在生产、安全、经营与管理等环节的信息化为前提,最终实现”矿山一张图”的系统管理目标,开启矿山“透明+智能+管控”的安全生产新模式。 二、使用场景介绍在整个矿山生产交互管控系统的采运排环节,需要对所有过程设备进行采集、存储、计算和监控。这些数据涵盖范围广,包括挖机、卡车的采集数据、调度管理数据、设备 GPS 信息、以及每一个固定位置工序的采集数据等。 数据类型
数据量级
数据应用 在实际的应用场景中,对车辆的数据应用,其中一个主要维度就是车辆轨迹,特别是车辆的实时位置必须满足矿山生产的车辆调度实时需求。 三、选型对比MySQL MySQL 是我们团队在各种应用开发领域使用最多的数据库,从复用技术经验的角度上考虑,最初考虑过 MySQL 的可行性。但是在经过分析和验证后,我们就排除了使用关系型数据库的方案。主要原因如下:
InfluxDB 其次,我们进行了 InfluxDB 的调研。验证的初级阶段,从查询效率的 QPS 维度看,InfluxDB 的查询问题不大,效率可以满足。但是,在测试智慧矿山的物联网模型查询时,很快遇到了 InfluxDB 对于此类查询实时效率低下的问题,而且设计复杂度也很高。 在 1000 台设备的情况下,需要查所有设备的平均速度,查询实时性要求高。 但 InfluxDB 没有明确的基于设备的建表方式,如果用一张表存所有设备数据,数据量就会很大,查询性能也会下降。比较明显的是,在百万数据量级以内,这种建表方式查询时间在 1 秒左右,而当数据到了千万量级的时候,查询效率下降十分明显。 在我们真实的智慧矿山中、所有设备产生的数据量级条件下,这个查询效率的下降是明显不符合我们要求的。 TDengine 最后,我们调研了 TDengine,这也成了我们最终选型采用的方案。其优势表现如下:
性能表现 我们以智慧矿山业务中的 5000 设备、每天 1000 万采集点的数据量级下,在以车建模和以位置建模结合的数据模型下,TDengine 的性能远没有达到极限,目前系统对于车和位置的查询速度都在毫秒级。 四、方案落地建模思路 在智慧矿山的实际应用场景中,模型是一个关键设计,在我们使用 TDengine 的查询场景中,数据模型的设计跟查询是关联在一起的。 比如在我们的系统中,在更关注单体设备的查询的场景中,我们采用“一个设备一张表”的建模方式;而在智慧矿山的“电子围栏”业务中,我们则采用了以位置建模的方式,这样方便系统基于位置进行统计和查询,具体建模思路参考如下:
方案创新 在涛思数据的工程师的建议下,我们可以在 MySQL 数据库里,把所有的设备表的名字(TDengine 中的 tbname)进行了存储。我们在去 TDengine 中进行设备查询的时候,子表名从关系数据库中直接读取,然后在 TDengine 中针对子表进行查询。这个设计,在系统中针对单个设备进行快速数据回放的时候,也明显提高了查询效率。 技术架构图 最终效果展示 目前,像我们的智慧矿山系统中,TDengine 的应用查询用于监控性能指标,主要查询内容:
基于上面的数据管理,我们的矿山一张图系统,就是把车、铲等时序的数据,以及相关调度的信息,统一管理起来。简单说就是车、铲怎么样达到最优化的配比。 查询结果如下: 五、写在最后对 TDengine 的长远规划 本次在内蒙古露天矿山卡车调度中初次使用 TDengine,我们在构建智慧矿山系统中有了很多新的思路,更让我们对它的简单易用以及令人惊叹的高性能产生了更多期待。基于目前对 TDengine 的理解和使用经验,我们计划在如下场景中进一步使用它来完善我们的系统:
|
|