方案背景

本文以车联网场景中车辆元数据为例介绍基于设备接入平台与表格存储Tablestore搭建车辆元数据管理平台的场景需求以及方案架构。

场景需求

车辆在行驶的过程中会定时上报大量的状态数据,例如车辆识别代码、行驶速度、发动机转速、车内温度等。在业务上,用户可以基于这些车辆状态信息来实现车辆行为分析、行驶状态监控、轨迹分析、车辆状态检索等。

通过持久化存储和分析车辆元数据信息,用户可以实现复杂的业务需求,例如统计某一个区域内的车辆数量用于判断道路拥挤程度,通过监测车速、发动机转速等最新数据的实时变化用于判断车辆行为或者状态是否出现了异常等。因此车联网场景下车辆元数据存储与分析的需求如下:

  • 数据存储:车辆元数据定时上报到数据网关并且转发到下游存储,需要支持大规模数据存储。

  • 数据更新:海量车辆元数据会频繁更新,需要支持数据高并发实时更新。

  • 数据检索:根据车辆的参数检索车辆,例如根据车架号查询某辆汽车的当前状态,需要支持任意车辆参数的组合检索。

  • 状态实时监测:实时监测车辆状态的变化,例如保存异常行驶日志以供后续调查,需要支持实时探测数据的变化,并能够对更新后的数据进行实时计算。

说明

车辆元数据包含了车辆的固有属性(例如车辆识别代码、车辆外壳颜色、发动机型号等)和最新状态数据(例如车辆当前GPS坐标、发动机的当前转速、车辆当前运行速度等)。

样例场景

假定某汽车厂商管理一千万台智能汽车,现需要将车辆信息接入到云端,并借助云端的架构来搭建一个车辆管理平台,实现状态汇报、状态检索、车辆检索、车辆监控等业务需求。

方案实现

  • 样例场景的实现过程说明如下

    1. 智能汽车状态数据通过MQTT协议接入到设备接入平台。

    2. 设备接入平台通过与表格存储对接,将数据存储到表格存储宽表模型中。更多信息,请参见宽表模型介绍

      • 表格存储的数据表用于车辆元数据的存储、更新和查询。宽表模型的表结构设计请参见宽表模型设计

      • 多元索引用于车辆检索和圈选。更多信息,请参见多元索引介绍

      • SQL查询用于车辆检索与分析。更多信息,请参见SQL查询

      • 通道服务提供与实时计算Flink对接的能力。更多信息,请参见通道服务

    3. 实时计算Flink通过与表格存储对接,进行数据的实时分析,然后将计算结果写回到表格存储中存储。更多信息,请参见Flink使用教程(宽表模型)

      实时计算Flink主要用于对设备元数据进行流计算作业或者对接Kafka等消息队列订阅消息。

  • 样例场景的架构图如下图所示。

    fig_car

方案优势

  • 数据自动分区和负载均衡。

  • 采用存储计算分离架构,支持动态无感知水平扩展。

  • 单表规模可自动弹性扩展到万亿行、10 PB级存储以及千万级QPS。