首页 自动驾驶

岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案

分类:自动驾驶
字数: (7112)
阅读: (1091)
内容摘要:岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案,

随着智能汽车的普及,海量的车联网数据以前所未有的速度涌现。对于岚图汽车而言,如何高效地对这些数据进行实时分析,从中挖掘出有价值的信息,成为了提升用户体验、优化产品设计和改进运营策略的关键。传统的数据仓库方案在面对高并发、低延迟的需求时往往捉襟见肘。因此,我们需要一个高性能、可扩展的实时分析解决方案,这就是 岚图汽车 x Apache Doris 实践的背景。

传统方案的痛点

在没有引入 Apache Doris 之前,我们尝试过多种传统方案,但都存在一些难以克服的痛点:

岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案
  • 查询延迟高:传统关系型数据库在处理大规模数据时,查询性能往往难以满足实时性要求,无法支持秒级甚至亚秒级的响应。
  • 数据存储成本高:传统数据仓库通常采用昂贵的存储设备,随着数据量的不断增长,存储成本会呈指数级上升。
  • 系统扩展性差:传统数据库的扩展性存在瓶颈,难以应对车联网数据的高速增长。
  • 实时性不足:无法满足实时监控、实时预警等对实时性要求较高的应用场景。

Apache Doris 的优势

Apache Doris 是一款高性能、实时分析型数据库,具有以下显著优势:

岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案
  • 极致性能:基于 MPP 架构和向量化执行引擎,Doris 能够实现亚秒级的查询响应,满足实时分析的需求。
  • 高并发:Doris 支持高并发查询,能够同时处理大量的分析请求,保证系统的稳定性和可用性。
  • 高扩展性:Doris 采用分布式架构,可以轻松地进行横向扩展,应对数据量的快速增长。
  • 易用性:Doris 支持标准的 SQL 语法,学习成本低,方便开发人员快速上手。

架构设计

我们的 岚图汽车 x Apache Doris 实时分析平台架构设计如下:

岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案
  1. 数据采集:使用 Kafka 等消息队列系统,实时采集来自车辆的各种数据,例如车辆状态、行驶轨迹、传感器数据等。
  2. 数据清洗:使用 Flink 等流处理引擎,对采集到的数据进行清洗、转换和过滤,去除无效数据和异常数据。
  3. 数据存储:将清洗后的数据存储到 Apache Doris 集群中,利用 Doris 的高性能存储和索引能力,实现高效的数据查询。
  4. 数据分析:使用 SQL 或 BI 工具,对 Doris 中的数据进行实时分析,生成各种报表和可视化结果。
  5. 应用场景:将分析结果应用于各种应用场景,例如实时监控、故障诊断、用户画像等。

代码示例:创建 Doris 表

以下是一个创建 Doris 表的 SQL 示例:

岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案
CREATE TABLE IF NOT EXISTS `vehicle_data` (
  `event_time` DATETIME COMMENT '事件时间',
  `vehicle_id` VARCHAR(64) COMMENT '车辆ID',
  `speed` DOUBLE COMMENT '速度',
  `longitude` DOUBLE COMMENT '经度',
  `latitude` DOUBLE COMMENT '纬度',
  `engine_temperature` INT COMMENT '引擎温度'
)
ENGINE=OLAP
DUPLICATE KEY(`event_time`, `vehicle_id`)
DISTRIBUTED BY HASH(`vehicle_id`) BUCKETS 32
PROPERTIES (
  "replication_num" = "3",  -- 副本数量
  "storage_medium" = "SSD"  -- 存储介质,可选择 HDD 或 SSD
);

性能优化

为了进一步提升 岚图汽车 x Apache Doris 实时分析平台的性能,我们采取了以下优化措施:

  • 选择合适的数据模型:Doris 支持多种数据模型,例如 Aggregate 模型、Duplicate 模型、Unique 模型等。根据不同的应用场景,选择最合适的数据模型可以有效地提高查询性能。
  • 合理设置分区和分桶:分区和分桶是 Doris 中重要的数据组织方式。合理设置分区和分桶可以有效地减少查询扫描的数据量,提高查询效率。
  • 使用物化视图:物化视图是一种预计算的查询结果,可以显著地提高复杂查询的性能。
  • 优化 SQL 查询:编写高效的 SQL 查询语句可以有效地减少查询时间和资源消耗。例如,避免使用 SELECT *,尽量使用索引,避免在 WHERE 子句中使用函数等。

避坑指南

在实际应用中,我们也遇到了一些问题,总结如下,希望能帮助大家避免踩坑:

  • 数据倾斜:在分布式系统中,数据倾斜是一个常见的问题。如果某个分桶中的数据量远大于其他分桶,会导致查询性能下降。可以通过调整分桶策略或使用动态分桶来解决数据倾斜问题。
  • 内存不足:Doris 的查询过程需要占用一定的内存。如果内存不足,会导致查询失败或性能下降。可以通过增加内存或优化查询语句来解决内存不足问题。
  • 网络问题:Doris 集群中的各个节点之间需要进行数据传输。如果网络不稳定,会导致数据传输失败或性能下降。可以通过优化网络配置或使用专线来解决网络问题。

总结

Apache Doris 在 岚图汽车 的车联网数据实时分析中发挥了关键作用,有效解决了传统方案的痛点,显著提升了数据分析的效率和实时性。通过合理的架构设计、性能优化和避坑经验总结,我们成功构建了一个高性能、可扩展的实时分析平台,为岚图汽车的业务发展提供了强有力的支持。选择合适的中间件产品如 Redis、RocketMQ 等,结合 Nginx 进行流量控制,同时关注服务器 CPU 利用率、磁盘 IO 等指标,可以进一步提升系统的稳定性。

岚图汽车:基于 Apache Doris 的车联网数据实时分析解决方案

转载请注明出处: 代码一只喵

本文的链接地址: http://m.acea1.store/blog/255162.SHTML

本文最后 发布于2026-04-14 22:16:20,已经过了13天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 柠檬精 3 天前
    感谢分享,最近也在调研 Doris,正好可以参考一下你们的实践经验。
  • 接盘侠 4 天前
    请问在数据清洗环节,你们是如何处理车辆上传的异常数据的?