实时即未来,大数据项目车联网之驾驶行程采样实时分析(17)

142 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

1. 驾驶行程采样实时分析

了解:讲义关联资料驾驶行程采样分析.md

总结:驾驶行程采样分别对采样5、10、15、20min,分析四种采样样本数据,通过电量、里程、速度、gps等信息,可视化展示,得出一组最可靠的驾驶行程时间间隔。

2. 驾驶行程指标分析

创建驾驶行程视图,自动关联 hbase 驾驶行程表

讲义关联资料驾驶行程Phoenix创建视图trip_division.md

2.1 里程、SOC、行程消耗时间分析

驾驶行程行驶里程(mileage)、soc消耗(soc_comsuption)、行程时间消耗(time_comsuption),需添加上车架号,服务器时间,指标分析时间这三项基本字段

行程划分指标名称分析指标1分析指标2分析指标3分析类型
里程-soc-行程消耗时间分析mileagesoc_comsuptiontime_comsuption1
高速-中速-低速socHigh_BMS_SOCMedium_BMS_SOCLow_BMS_SOC2
高速-中速-低速里程分析High_BMS_MileageMedium_BMS_MileageLow_BMS_Mileage3
高速、中速、低速次数分析total_high_speed_numstotal_medium_speed_numstotal_low_speed_nums4

创建mysql结果表

create table vehicle_networking.t_division_result(
    `id` int auto_increment comment '主键' primary key,
    `vin` varchar(25) not null comment '车架号',
    `name` varchar(225) not null comment '行程划分指标名称',
    `analyze_value1` varchar(25) not null comment '分析指标1',
    `analyze_value2` varchar(25) not null comment '分析指标2',
    `analyze_value3` varchar(25) not null comment '分析指标3',
    `analyze_type` int(2) not null comment '分析类型:1:里程-soc-行程消耗时间分析,2:高速-中速-低速里程soc消耗分析,
3:高速-中速-低速里程分析,4:高速、中速、低速次数分析,5:其他业务指标分析',
    `terminalTime` varchar(25) not null comment '终端采集数据时间',
    `processTime` varchar(25) not null comment '指标分析执行时间'
) comment '行程划分指标统计结果表';
  • 插入数据语句
insert into vehicle_networking.t_division_result(vin, name, analyze_value1, analyze_value2, analyze_value3, analyze_type, terminalTime, processTime) VALUES (?,?,?,?,?,?,?,?)
  • 创建结果表java对象
public class DivisionAnalysis {
    private String vin;
    private String name;
    private String analyzeValue1;
    private String analyzeValue2;
    private String analyzeValue3;
    private float analyzeType;
    private String terminalTime;
    // 省略getter、setter、construct、toString方法
}

phoenix sql查询

select "rowNum","mileage","soc_comsuption","time_comsuption" from TRIPDB."trip_division"

结果:

img

phoenix jdbc程序实现当前指标分析,并把结果写入mysql表中

讲义关联资料\TripDivisionPhoenixAnalysis.java

执行结果

img

2.2 高速、中速、低速soc消耗分析

驾驶行程高速soc消耗:High_BMS_SOC、驾驶行程中速soc消耗:Medium_BMS_SOC、驾驶行程低速soc消耗:Low_BMS_SOC

phoenix sql查询

select "rowNum","High_BMS_SOC","Medium_BMS_SOC","Low_BMS_SOC" from TRIPDB."trip_division"

结果:

img

phoenix jdbc程序实现当前指标分析,并把结果写入mysql表中

/**
 * @desc 驾驶行程高速、中速、低速soc消耗分析
 * @throws SQLException
 */
private static void tripDivisionAnalysis2() throws SQLException {
    tripDivisionAnalysis("select \"rowNum\",\"High_BMS_SOC\",\"Medium_BMS_SOC\",\"Low_BMS_SOC\" from TRIPDB.\"trip_division\"", "驾驶行程高速-中速-低速soc消耗分析", 2);
}

执行结果

img

2.3 高速、中速、低速里程分析

驾驶行程高速里程:Medium_BMS_Mileage、驾驶行程中速里程:High_BMS_Mileage、驾驶行程低速里程:Low_BMS_Mileage

phoenix sql查询

select "rowNum","Medium_BMS_Mileage","High_BMS_Mileage","Low_BMS_Mileage" from TRIPDB."trip_division"

结果:

img

phoenix jdbc程序实现当前指标分析,并把结果写入mysql表中

/**
 * @desc 驾驶行程高速、中速、低速里程分析
 * @throws SQLException
 */
private static void tripDivisionAnalysis3() throws SQLException {
    tripDivisionAnalysis("select \"rowNum\",\"Medium_BMS_Mileage\",\"High_BMS_Mileage\",\"Low_BMS_Mileage\" from TRIPDB.\"trip_division\"", "驾驶行程高速-中速-低速里程分析", 3);
}

执行结果

img

2.4 高速、中速、低速车次分析

驾驶行程车辆总高速次数:total_high_speed_nums,驾驶行程车辆总中速次数:total_medium_speed_nums,驾驶行程车辆总低速次数:total_low_speed_nums

phoenix sql查询

select "rowNum","total_high_speed_nums","total_medium_speed_nums","total_low_speed_nums" from TRIPDB."trip_division";

结果:

img

phoenix jdbc程序实现当前指标分析,并把结果写入mysql表中

/**
 * @desc 驾驶行程高速、中速、低速车次分析
 * @throws SQLException
 */
private static void tripDivisionAnalysis4() throws SQLException {
    tripDivisionAnalysis("select \"rowNum\",\"total_high_speed_nums\",\"total_medium_speed_nums\",\"total_low_speed_nums\" from TRIPDB.\"trip_division\"", "驾驶行程高速-中速-低速车次分析", 4);
}

执行结果

img

2.5 驾驶行程剩余指标业务

驾驶行程剩余指标分析包含:行程开始soc、结束soc、开始位置,结束位置、行程时间消耗、电量消耗、行程状态是否异常等等。

3. 总结

项目数据存储分层

image-20221025200817178

驾驶行程采样分析业务逻辑

驾驶行程分析流程

image-20221025200832432

驾驶行程分析任务实现逻辑

image-20221025200852605

驾驶行程车辆指标分析