在车联网场景中车辆的时序数据主要包含了车辆轨迹信息(例如车辆速度、车辆GPS坐标等)。本文介绍如何设计车联网场景下的时序表结构和映射表结构。
时序表结构
假设存储车辆元数据的时序表名称为vehicles_timeseriesdata,表结构请参见下表。
字段名称 | 类型 | 描述 |
_m_name | String | 度量名称,表示时间线数据所度量的物理量或者监控指标的名称。 |
_data_source | String | 数据源,表示产生时间线的数据源标识,可以为空。 |
_tags | String | 时间线的标签信息。您可以自定义多个字符串类型的key-value对。 |
_time | Integer | 数据上报时间。 |
vin_id | String | 车辆识别代码,即车架号,用于唯一标识车辆。 |
mfrs | String | 生产厂商。 |
model | String | 车辆型号。 |
speed | Double | 当前速度。 |
gps | String | 车辆GPS坐标,格式为 |
mileage | Double | 当前里程数。 |
emission | Double | 排放值。 |
映射表结构
根据每个时间线每个时刻对应一个值或者多个值,时序模型分为“单值模型”和“多值模型”。对于同一个时序表,您可以建立三种SQL映射关系用于数据查询。
单值模型映射表结构
时序表创建后,系统会自动创建单值模型映射关系。在SQL中表名与时序表名称相同,用于以单值模型查询时序数据。
单值模型映射表名称为vehicles_timeseriesdata,表结构请参见下表。
字段名称 | 类型 | 描述 |
_m_name | VARCHAR | 度量名称。 |
_data_source | VARCHAR | 数据源。 |
_tags | VARCHAR | 时间线标签,以数组表示。多个标签的格式为 ["tagKey1=tagValue1","tagKey2=tagValue2"] 。 您可以使用tag_value_at函数提取某个标签的值。 |
_time | BIGINT | 数据点的时间戳,单位微秒。 |
_field_name | VARCHAR | 数据列名。 |
_long_value | BIGINT | 整型的数据值。如果该数据列为非整型,则值为NULL。 |
_double_value | DOUBLE | 浮点数类型的数据值。如果该数据列为非浮点数,则值为NULL。 |
_bool_value | BOOL | 布尔类型的数据值。如果该数据列为非布尔值,则值为NULL。 |
_string_value | VARCHAR | 字符串类型的数据值。如果该数据列为非字符串,则值为NULL。 |
_binary_value | MEDIUMBLOB | 二进制类型的数据值。如果该数据列为非二进制,则值为NULL。 |
_attributes | VARCHAR | 时间线属性,格式与标签相同。 |
_meta_update_time | BIGINT | 时间线的元数据更新时间。 当用户更新时间线属性时,系统会自动更新时间线元数据更新时间。此外,如果该时间线的数据持续写入,系统也会定时更新该时间,可用于判断一条时间线是否活跃。 |
多值模型映射表结构
当以多值模型查询时序数据时,您需要执行CREATE TABLE语句来创建多值模型映射关系。在SQL中表名为时序表名称后拼接::后缀
,其中后缀
由用户自定义。一个时序表支持创建多个多值模型映射关系。
假设后缀为multi_model
,则多值模型映射表名称为vehicles_timeseriesdata::multi_model
,表结构请参见下表。
字段名称 | 类型 | 描述 |
_m_name | VARCHAR | 度量名称。 |
_data_source | VARCHAR | 数据源。 |
_tags | VARCHAR | 时间线标签,以数组表示。多个标签的格式为 ["tagKey1=tagValue1","tagKey2=tagValue2"] 。您可以使用tag_value_at函数提取某个标签的值。 |
_time | BIGINT | 数据点的时间戳,单位微秒。 |
vin_id | VARCHAR | 车辆识别代码,即车架号,用于唯一标识车辆。 |
mfrs | VARCHAR | 生产厂商。 |
model | VARCHAR | 车辆型号。 |
speed | Double | 当前速度。 |
gps | VARCHAR | 车辆GPS坐标,格式为 |
mileage | Double | 当前里程数。 |
emission | Double | 排放值。 |
时间线元数据映射表结构
时序表创建后,系统会自动创建时间线元数据映射关系。在SQL中表名为时序表名称后拼接::meta
,用于查询时间线元数据。假如时序表名称为timeseries_table,则时序元数据表的名称为timeseries_table::meta
。
时间线元数据映射表名称为vehicles_timeseriesdata::meta
,表结构请参见下表。
字段名称 | 类型 | 描述 |
_m_name | VARCHAR | 度量名称。 |
_data_source | VARCHAR | 数据源。 |
_tags | VARCHAR | 时间线标签。 |
_attributes | VARCHAR | 时间线属性。 |
_meta_update_time | BIGINT | 时间线的元数据更新时间。 当用户更新时间线属性时,系统会自动更新时间线元数据更新时间。此外,如果该时间线的数据持续写入,系统也会定时更新该时间,可用于判断一条时间线是否活跃。 |