在车联网场景中,智能车辆会通过各类传感器定时采集车身状态信息,比如行驶速度、发动机转速、轮胎压力值、里程数等,此外,还会由某个事件触发产生车辆事件数据,比如门锁上防、撤防、车辆碰撞、异常移动等,在每次上报数据时都会带有时间戳,这是非常典型的时序数据场景。在这类场景下,高写入、高压缩率、快速查询是对于数据处理最基本的要求。
但一直以来,在应对车联网场景下时序数据的存储时,企业大多选择的都是 MongoDB 或 Apache HBase,这两大数据库技术相对更加成熟,在业务规模尚未扩张之前,因为设备不多、数据量不大,加上查询场景单一,尚且可以满足业务需求。随着业务的加速扩张,写入速度太慢、支撑成本过高等问题也逐渐显现。本文将会从四个典型的车联网案例出发,给到你数据架构升级思路。
TDengine x 大疆车载
“在大疆车载当前的云端平台中,TDengine 的应用不仅节约了存储成本和开发学习成本,同时也表现出了很好的写入读取性能,满足了智能驾驶云端平台海量时序数据的处理需求。在查询方面,不管是选择特定数据的查询还是轻量的查询,都是毫秒级返回数据。”
业务背景
由于当前的智能驾驶业务还是新的业务场景,所以大疆车载在选型上的历史负担相对较轻。在数据库选型要求上,从业务需求出发,主要聚焦在两点:首先,结合当下的业务场景,需要满足单台车辆的高频消息上报频率;其次,支持在数据量大的时候,通过聚合函数,或选择函数来快速筛选出需要的数据。此外,对数据库要求支持集群部署的同时,也要求更低的查询语句编写上手难度;而且需支持单表千万量级,在海量数据并发场景下,需要有较高的统计报表能力和较好的查询 SQL 效率。
架构图