车辆信号回传中使用 IoTDB 的经历

237 阅读5分钟

第一次接触 IoTDB 是在上海的一个人工智能展会上看到了 IoTDB 的展位,后续在公众号上看到了一篇关于长安汽车使用 IoTDB 的文章。文章详细介绍了长安汽车如何利用 IoTDB 处理海量车况数据,使我对其产生了浓厚的兴趣。因为在新能源车企工作时,我们部门也需要处理大量的车辆信号回传和处理,而新能源网联汽车比传统油车的本地处理能力和信号数量又上了一个量级,一个域控的信号数量可能达到数万个,这些信号具有明显的时序特征,也占据了大量的上传流量和存储空间。

IoTDB 是一种专门为物联网设计的数据库,能够高效处理大规模时序数据。车联网中的各类国标和内部信号数据也可以使用 IoTDB 来提高数据处理效率。

IoTDB 设计的数据结构非常优异,能够支持高速信号采集和低延迟数据查询。而且,IoTDB 还具有高扩展性、低成本和高稳定性的特点,这使得它非常适合用于存储和处理大规模时序数据。

在实际的环境中,车辆数据回传面临着大量的实时数据采集和存储问题。我们需要在车内就把数据压缩到极小,传统的数据库无法满足我们的需求,不然各个车辆花费的流量费就将是一个天文数字。而 IoTDB 提供了一种新的解决方案。Poc 项目验证过程中,我们首先将 IoTDB 部署在我们的服务器上,并根据蓄电池的车辆信号建立了相应的数据存储模型。然后,我们将车联网设备采集的数据实时传输到 IoTDB 中进行存储和处理。通过使用 IoTDB,大量的实时数据处理效率比原来在 MYSQL 上明显变快了,并进行了一些小型的快速的数据查询和分析模型验证通过了。

有几个关键点是我们在使用 IOTDB 的时候认为将来可以利用好的特性:

  1. 历史数据分析:在处理车辆故障或性能下降的问题时,分析历史数据是关键。IoTDB 支持高效的历史数据查询,后续将数据放在内部服务上,让用户可以通过查询特定时间段的数据来识别问题模式或趋势,从而更快地诊断和解决问题。
  2. 多维度数据查询:IoTDB 支持多维度数据查询,这意味着可以同时根据多个参数(如时间、地点、车辆类型等)进行数据检索。这种能力在分析复杂问题时尤为有用,因为它可以快速识别不同参数之间的相关性。这种模式匹配的能力对于车内各个专业不同的工程师是必要的。
  3. 数据聚合和降采样:在处理大规模数据集时,IoTDB 的数据聚合和降采样功能可以帮助减少数据量,同时保持数据的整体趋势。这有助于在保持查询效率的同时,快速识别数据的长期模式或异常。
  4. 故障预测和健康管理:通过分析历史时序数据,IoTDB 可以辅助实现故障预测和健康管理。例如,通过分析车辆的维护记录和性能数据,可以预测潜在的故障并提前采取措施,减少意外停机时间。
  5. 高效的数据压缩和存储:IoTDB 使用高效的数据压缩算法,减少了存储空间的需求,同时提高了数据的访问速度。这意味着在查询数据时,系统可以更快地检索到所需的信息,加快问题解决的过程。

尤其是最后一点,数据压缩和存储,车辆硬件的存储能力有限,而 IoTDB 采用列式存储和压缩技术,这使得它能够高效地存储大量的时序数据。这意味着可以在相同的硬件资源下存储更多的数据,从而减少了硬件的采购和运维成本。在这之前我们还尝试了常用的 gzip 等通用压缩格式,游标编码和 Facebook 开源时序数据压缩方法,其中 iotdb 和 Facebook 的技术在压缩比率和后续处理方面都是很方便的,可以支持随用随解,而且基本上压缩比率可以达到上百倍。

IoTDB 提供了灵活的数据模型,支持多维度和多层次的时序数据管理。这种模型简化了数据结构的维护工作,使得数据的组织和管理更加高效,降低了维护成本。这和汽车信号数据是十分契合的,大量双精度,整形,无符号数据,他们的信号频率也不相同,iotdb 可以完成这个场景。

总的来说,使用 IoTDB 的经历让我们看到了 IoTDB 的高效性、稳定性和易用性,也让我们看到开源软件也能为我们的车联网项目提供强大的支持。

在未来,等公司经济压力减小后,我们计划使用 IoTDB 来优化我们的车联网项目。我们相信,随着 IoTDB 技术的不断发展和完善,它将能够为我们的项目带来更多的价值。同时,我们也期待 IoTDB 能够推出更多的功能和特性,以满足我们不断变化的需求。

原创文字,IoTDB 社区可进行使用与传播。