宽表模型设计

在车联网场景中车辆的元数据包含了车辆的固有属性(例如车辆识别代码、车辆外壳颜色、发动机型号等)和最新状态数据(例如车辆当前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-pointNested具有各自特定的格式。如果格式不匹配也会被当做脏数据丢弃,则会出现数据在表中能查询到,但是在多元索引中查询不到的情况。关于数据类型映射的更多信息,请参见数据类型映射

字段名称

类型

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