首页 > 编程语言 >车辆碰撞程序

车辆碰撞程序

时间:2023-06-13 23:34:10浏览次数:44  
标签:stream 碰撞 程序 t1 车辆 vehicle id

车辆碰撞程序

总体概述

简单介绍

车辆在发生对应的异常情况时,产生事件数据,实时程序消费通过OGG 推送至Kafka的数据进行事件判断,并将消息通过Rabbit推送至业务端。

  • 碰撞告警:车辆发生碰撞事件并有气囊、车胎、翻滚等状态。
  • 低等级碰撞告警:车辆发生轻微碰撞,产生低等级碰撞计数
  • 故障告警:车辆发生故障事件

涉及组件

组件名称 说明
Kafka 消息中间件
Hbase 数据库
RabbitMq 消息中间件
flink 1.12.1 大数据计算框架

程序设计

程序需要根据监测碰撞事件发生,并获取到事件发生的位置,根据车辆号查询到对应的车架号,将结果实时发送给下游。

 * SQL 逻辑
 -- 碰撞事件位置表  VEHICLE_LOCATION
 -- 碰撞事件主表    INTERACTION
 SQL 逻辑:
     SELECT
         cast(t1.interaction_id as varchar(47)) CONTCT_ID,
         cast(t2.vehicle_vin as varchar(17))    VIN_ID,
         t3.location,
         cast(t1.aacn_data as varchar(1500))    RAW_DATA,
         t1.created_on as                       CREATE_TIMSTM
     from interaction t1
           inner join vehicle t2                               > Part II
                   on t1.vehicle_id = t2.vehicle_id             > Vehicle中查询
           left join vehicle_location t3
                   on t1.interaction_id = t3.owner_id
           where t1.interaction_type = 'crash'
           and t1.created_on >= to_date('20191226', 'yyyymmdd')
           and t1.created_on < to_date('20191227', 'yyyymmdd')

1.位置与事件信息流Join
 /**
    * Join elements of this [[KeyedStream]] with elements of another [[KeyedStream]] over
    * a time interval that can be specified with [[IntervalJoin.between]].
    *
    * @param otherStream The other keyed stream to join this keyed stream with
    * @tparam OTHER Type parameter of elements in the other stream
    * @return An instance of [[IntervalJoin]] with this keyed stream and the other keyed stream
    */
acrInterStream
      .intervalJoin(acrLocStream)
      .between(Time.minutes(-10), Time.minutes(10))
      .process(new AcrJoinProcessFunction())// Join, (vehicleId, ObjectNode)
2. 根据车辆号查询车架号

对应关系为Hbase表,通过异步算子使用Hbase Api Get出对应值。

  AsyncDataStream
        .unorderedWait(
                   acrJoinStream,
                   new AsyncAcrGetVinFromHbaseFunction(HbaseConfig),
                   3000,
                   TimeUnit.SECONDS,
                   20) //异步查询Hbase 获取vin号

标签:stream,碰撞,程序,t1,车辆,vehicle,id
From: https://www.cnblogs.com/lvdoiu/p/17478984.html

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:被围绕的区域
    题目:给你一个mxn的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的 'O'用'X'填充。 示例1:输入:board=[["X","X","X","X"],["X","O","O",&quo......
  • .NET 使用ILPack组件将程序集保存成dll
    本文介绍使用ILPack组件将程序集保存成dll.netcore版本不再支持使用AssemblyBuilder.Save的方式将程序集保存成dll具体讨论https://github.com/dotnet/runtime/issues/15704可以使用ILPack组件将程序集保存成dll,以下为官方案例varassembly=Assembly.GetAssembly(t);......
  • iOS程序运行生命周期
    iOS程序运行生命周期  在文件AppDelegate.m中定义了iOS程序运行的各个生命周期,清楚了解程序运行中的每个生命周期,对于我们的开发工作将提供极大的帮助。下面代码就是AppDelegate.m中各生命周期对应的方法。 -(BOOL)application:(UIApplication*)applicationdidFinishLaunch......
  • Windows系统提示“不是内部或外部命令,也不是可运行的程序或批处理文件”怎么办?
    Windows系统电脑/服务器在运行CMD命令提示符时提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,遇到这种情况怎么办呢?今天我和你们分享解决办法。方法一:重新配置系统环境变量(演示的是Windows10系统)1、开始——控制面板——系统2、高级系统设置——高级——环境变量(快捷......
  • 碰撞测试
    <script>constdiv1=document.getElementById('div1')constdiv2=document.getElementById('div2')functionmove(domElement){domElement.onmousedown=function(e){constmouseX=e.clientX,mouseY=e.clientY,oldLeft=domEle......
  • 浅聊一下 C#程序的 内存映射文件 玩法
    一:背景1.讲故事前段时间训练营里有朋友问内存映射文件是怎么玩的?说实话这东西理论我相信很多朋友都知道,就是将文件映射到进程的虚拟地址,说起来很容易,那如何让大家眼见为实呢?可能会难倒很多人,所以这篇我以自己的认知尝试让大家眼见为实。二:如何眼见为实1.我想象的文件映射......
  • [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
    [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)——通过知识共享树立个人品牌。继上六篇:       [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)      [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不......
  • Linux系统下如果在编译时指定程序运行时动态链接库相对目录,及为程序收集默认不安装动
    1、在编译中指定编译的程序去查找的动态链接库目录qmake是这样指定运行时动态库目录的:  QMAKE_LFLAGS+=-Wl,-rpath=/usr/local/ultrasec/policyfilter/lib/ 2、用lddPROG  查看程序的动态链接库,如果没有的动态链接库,就从其它计算机或者网络上找这个库,然后拷贝到指......
  • [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
    [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)——通过知识共享树立个人品牌。继上六篇:       [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)      [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不......
  • c# 将指定文件名和路径的txt文档内容读出来并写到Excel中—winform程序
    使用C#中的`System.IO`和`Microsoft.Office.Interop.Excel`库来实现读取文本文件和写入Excel文件。以下是一个示例代码:1usingSystem;2usingSystem.IO;3usingSystem.Windows.Forms;4usingMicrosoft.Office.Interop.Excel;56namespaceWinFormDemo......