本文导读 :随着消费者更安全、更舒适、更便捷的驾驶体验需求不断增长,汽车智能化已成必然趋势。长安汽车智能化研究院作为长安汽车集团有限责任公司旗下的研发机构,专注于汽车智能化技术的创新与研究。为满足各业务部门的数据分析需求,长安汽车基于 Apache Doris 升级了车联网数据分析平台,支撑单日百亿级别数据实时处理,并实现十亿级别数据查询秒级响应,为长安汽车在提升用户用车体验、实时预警车辆故障、保证车辆安全驾驶等方面带来显著成果,为其在智能化方向的技术创新提供了有力支持。
作者|长安汽车智能化研究院
智能化是汽车工业进程中的一场革命,它旨在利用大数据、人工智能、云计算、物联网等前沿数字技术,对汽车设备和系统的运行状态进行全方位的感知、分析、决策和控制,从而提高汽车的安全性、舒适性、便捷性和节能性。
近些年来,长安汽车取得了令人瞩目的销量增长成绩。1-8 月,长安汽车自主乘用车累计销量超百万辆、保持持续上升的发展势头,以深蓝、阿维塔、启源为代表的新能源系列品牌力和产品竞争力不断提升,自主新能源车累计销量约为 25.6 万辆、同比增长 102.44%,成为销量增长新动能。
在汽车销量快速攀升的背后,车联网数据更是呈现爆发式增长的态势,其中最为核心的即车辆 CAN 总线数据。CAN 即 Controller Area Network,通过 CAN 总线可以对车辆上的各类电子控制系统进行统一通信,在实际车辆运行过程中 ,CAN 总线数据是车辆安全性、可靠性和高性能的重要保证:
-
车辆系统监测和控制:CAN 总线数据可用于监测和控制系统中的各种设备和组件。传感器通过 CAN 总线发送其测量值,如温度、压力、位置等,以便其他设备或控制器实时监测和采取相应的措施。同时,控制器可以通过 CAN 总线向执行器发送控制指令,如调节阀门、驱动电机等,以实现对系统的控制。
-
车辆信息实时反馈: CAN 总 线数据可用于提供实时反馈信息。例如在车辆控制系统中,传感器通过 CAN 总线传输车速、转向角度、制动状态等数据,控制器可以根据这些数据进行实时决策和调整,以确保车辆的安全性和性能。
-
数据共享和协调: CAN 总线数据允许不同设备之间进行数据共享和协调。 通过 CAN 总线,不同的控制器和设备可以交换信息,共享状态和控制命令,有利于提高系统的整体性能和效率。
-
网络管理和故障诊断: CAN 总线数据用于网络管理和故障诊断。 通过 CAN 总线,可以进行设备的自动识别、配置和监控,以便进行网络管理和故障排查,提高系统的可靠性和可维护性。
-
大规模数据实时写入及处理 :为实现智能化,汽车的车门、座椅、刹车灯设备被设置了大量的传感器,每个传感器收集一种或者多种信号数据,数据被汇聚后进一步加工处理。目前长安汽车需要支持至少 400 万辆车的链接,车联网数据每秒吞吐量已达百万级 TPS ,每日新增数据规模高达数十 TB ,且还在持续增长中。如何对数据进行实时写入成为了长安汽车首要面临的挑战。
-
准确及时的实时数据分析需求 :车联网场景下数据分析通常要求实时性,快速获取分析结果是实时监控、故障诊断、预警和实时决策等服务的重要保障。例如在智能诊断中,车企需要近实时地收集相关信号数据,并快速定位故障原因。通过分析车辆传感器数据、行驶记录等,可以提前发现潜在故障,进行预防性维护,提高车辆的可靠性和安全性。
-
更加低廉的数据存储和计算成本 :面对快速增长的的数据以及日益强烈的全量写入和计算需求,导致数据存储和计算成本不断攀升。这就要求数据平台具备低成本存储和计算的能力,以降低使用成本;同时需具备弹性伸缩能力,以便用户在业务高峰期快速扩容,提升海量数据计算场景的分析效率。
为给用户提供更优质的驾车体验、为业务部门提供更准确高效的数据支持,长安汽车开始对大数据平台的建设进行探索和实践。

-
数据时效性无法保证 :Hive 的导入速度较慢,尤其在处理大规模数据时,导入时间明显增加;同时部分业务依赖 T+1 离线任务,无法满足实时数据处理需求;此外, Hive 只支持分区覆盖,不支持主键级别的数据更新,无法满足特殊场景的数据更新需求。
-
数据查询分析延迟较高 :对于 10 亿级别以上大规模表查询,Hive 查询性能较慢。通过 SparkSQL 进行数仓分层运算时,启动和任务执行时间较长,对查询响应也会产生影响。此外,数据看板、BI 展示应用无法直接从 Hive 中查询,需要将 Hive 中数据导出到 MySQL 中,由 MySQL 提供服务,受限于 Hive 导数性能,当数据量较大时,导出到 MySQL 耗时大幅增加,进而导致查询响应时间变长。此外,通过 Java 后端查询 MySQL 时,数据量过大也会影响数据的响应时间。
-
丰富的数据导入方式 :Doris 提供了丰富的内置导入方式,如 Broker Load 和 Stream Load 等,可以满足实时和离线场景中数据导入需求。
-
支持实时查询分析 :Doris 大表 Join 能力突出,提供了多种分布式 Join 方式,使 Join SQL 编写具备高度灵活性,极大提升数据分析的效率。此外, Doris 支持单节点上万 QPS 的超高并发,可解决早期架构由于前端并发量过大导致查询失败的问题。
-
较低的使用成本 :Doris 兼容 MySQL 协议,开发人员可以更高效便捷的使用 MySQL 编写和执行查询语句,有效提高开发效率。基于 Doris 极简的架构,不仅让部署运维更加简单,也让扩缩容操作变的更加方便弹性。同时,Doris 拥有良好的上下游生态,可为用户提供灵活高效的数据管理和分析体验。这些优势和特性都极大的降低了 Doris 的使用成本。

-
便捷进行数据写入和迁移 :Doris 支持丰富的数据导入形式,可轻松从不同的数据源中导入数据。其次,Doris 支持通过 insert into select 快速导入数据,无需进行繁重的数据迁移配置以及引入外部同步组件。
-
统一数据服务,秒级查询响应 :通过 Doris Multi-Catalog 功能,实现数据服务的统一, 数据分析师可在 Doris 中 直接查询 外部数据源(如 MySQL、Iceberg、Hive 等 )数据,提高查询效率,实现秒级别查询响应。其次,Doris Join 能力优异,对于超过 1000 万的结果表查询也可实现秒级返回结果。
-
降低存储和计算成本 :在早期架构中,使用 Flink 实时写入数据并进行压缩时需要消耗大量的计算资源。而引入 Apache Doris 后,借助 Doris ZSTD 压缩算法(3-5 倍压缩率提升),可有效降低计算和存储所需的资源,还可以将压缩处理流程放到 Doris 内部进行,无需消耗 Flink 计算资源。
REPLACE_IF_NOT_NULL
定义。具体如下:

-
面对 10 亿级数据量的表,难以将其导入 MySQL 进行实时查询。如果直接查询 Hive,则查询反馈时间会非常长,难以满足业务需求。 -
由于无法直接关联 MySQL 的配置表,不得不定时将配置表导入 Hive 数仓。这样做虽然能够满足数据处理的需求,但却丢失了 DTC 配置的实时性。

-
自动识别冷热数据:将热数据存储在 Apache Doris 中,冷数据存储在 Hive 中,通过这种方式实现更高效的数据访问和管理。
-
扩大业务范围: 对现有的 Doris 业务 SQL 代码进行优化,利用 Doris 的某些特性和功能,将适合这些特性的业务迁移到 Doris 中,从而提高数据处理和查询的效率。
-
共建社区:积极尝试使用 Doris 最新版本及新功能,在与社区保持同步的同时,不断探索和应用新的技术,反哺社区、为社区发展做出贡献。