在车联网场景中车辆的元数据包含了车辆的固有属性(例如车辆识别代码、车辆外壳颜色、发动机型号等)和最新状态数据(例如车辆当前GPS坐标、发动机的当前转速、车辆当前运行速度等)。本文介绍如何设计车联网场景下的数据表结构和多元索引结构。

数据表结构

假设存储车辆元数据的数据表名称为vehicles_metadata,表结构请参见下表。

说明 关于表设计的更多信息,请参见表设计
字段名称 类型 描述
vin_id(主键列) String 车辆识别代码,即车架号,用于唯一标识车辆。
v_color String 车辆外壳颜色。
license_plate_number String 车牌号码。
mileage Double 当前里程数。
speed Double 当前速度。
pressure_level String 压力值水平。
engine_rpm Integer 发动机转速。
inner_temp Double 车内温度。
outer_temp Double 车外温度。
gps String 车辆GPS坐标,例如30.23,52.78
ignition_state String 点火状态。取值范围如下:
  • 0:未点火
  • 1:已点火
bms_soc Double 排放值。

多元索引结构

假设为vehicles_metadata数据表创建一个多元索引vehicles_metadata_index。多元索引结构请参见下表。请根据实际查询场景选择合适的索引字段以及字段类型。

注意 多元索引和数据表中的数据类型必须相匹配,否则数据会被当做脏数据丢弃,尤其是Geo-point和Nested具有各自特定的格式。如果格式不匹配也会被当做脏数据丢弃,则会出现数据在表中能查询到,但是在多元索引中查询不到的情况。关于数据类型映射的更多信息,请参见数据类型映射
字段名称 类型
vin_id Keyword
v_color Keyword
license_plate_number Text
mileage Double
speed Double
pressure_level Keyword
engine_rpm Long
inner_temp Double
outer_temp Double
gps Geo-point
ignition_state Keyword
bms_soc Double