深度 | 流式计算轻松搞定智能交通,你需要了解下KVDB!
Posted 太极计算机股份有限公司
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度 | 流式计算轻松搞定智能交通,你需要了解下KVDB!相关的知识,希望对你有一定的参考价值。
在世界范围内,堵车发生的情况越来越严重。据统计,全球每人每天平均至少因堵车浪费15分钟,北京居民因拥堵造成的损失为30元/半小时,而交通堵塞让美国司机每年损失千余美元。传统的解决方案已经无法满足,此时智能交通应运而生。
智能交通
实时监测城市交通状况
预测未来的交通状况
智能信号灯
智能交通实时管理
...
想要轻松搞定智能交通
你需要了解下KVDB
KVDB
KVDB是人大金仓基于视频图像智能应用场景打造的一款更轻量开放的物联数据存储计算平台。产品使用单一组件,提供应用场景需要的感知计算、实时计算、多维查询、数据挖掘等多重计算能力,在中小数据规模下,产品具有性能更强、开发维护成本更低的优势。
KVDB使用流式计算满足实时统计需求
视频图像数据在商业、金融、平安城市、无人驾驶、智能交通等领域均有应用,流式的实时计算是其重要的功能。
以智能交通为例,在其领域目前电警、卡口设备被广泛地布设在城市道路上,通过从设备获取的视频图像信息及通过车牌识别技术获取的对应过车信息,可以应用于车辆研判、稽查布控等智能交通管控业务。
交通流量采集功能是智能交通中的重中之重,其通过汇总过车信息获得设备、路口、路段的交通流数据,以直观的方式实时监测城市交通状况。
通过对交通流数据的统计分析、深挖数据的变化规律,提供实时路况展示、拥堵报警、拥堵分析、高峰时段分析、交通指数等数据,即可用于分析历史的交通效率、预测未来的交通状况,帮助用户掌握道路交通总体运行情况,从而制定较合理的交通设施规划,使人、车和路能够紧密的配合,改善交通运输环境来提高资源利用率。
数据处理解决方案
KVDB在智能交通领域的技术解决方案
一般来说,交通流量采集功能的基础是实时获取设备、路口、路段的过车汇总数据,往往会忽略各类加权统计的计算区别,其实路段、路口的统计都可转化为特定设备的过车统计。
基础版:通过SQL获取汇总数据
用于统计流量的过车数据包括 (抓拍时间,设备号,过车车牌号)
1 |
过车总数统计 SELECT COUNT(*) FROM 过车数据 |
2 |
分时段设备过车数统计 SELECT COUNT(*) FROM 过车数据 GROUP BY 设备号, 抓拍日期, 抓拍小时 |
3 |
过去5分钟平均每分钟的过车数据 SELECT COUNT(*) / 5 FROM 过车数据 WHERE (抓拍时间 > 当前时间 - interval ‘5’ minute) |
上述统计面临的挑战在于随着数据量的增长,统计效率会越来越低、系统资源占用会越来越高。即便使用CUBE做预计算可以解决数据量增长带来的效率降低问题,却需要定时处理,实时性稍差,并且无法解决类似统计3的计算。
升级版:KVDB使用流式计算的方式解决问题
KVDB流式计算处理过程通常包括如下环节
1 |
数据接入 KVDB支持从各类向表中写入数据的操作写入STREAM,例如INSERT、COPY。同时支持从数据管道(ETL、KAFKA等)中获取数据写入STREAM。数据被分发到各个计算节点,再分别写入节点的STREAM中。 |
2 |
STREAM STREAM是流式视图的数据源,可以理解为内存表,表内的数据来自对STREAM的写入。当STREAM内的数据被所有引用该STREAM的流式视图消费后,被处理的数据会从STREAM内移除。 |
3 |
流式视图 使用CREATE CONTINUOUS VIEW关键字和创建普通VIEW的语法创建流式视图,视图的range table包括STREAM用于实现流式的计算STREAM中的数据。 |
4 |
消费进程 消费进程不断从STREAM中批量获取一定数量的数据,并执行流式视图中的查询获取中间结果。 |
5 |
合并进程
将中间结果和之前的视图结果集合并生成最终结果。 |
6 |
返回流式视图结果 支持使用标准SQL像使用普通视图一样查询流式视图的结果。各个计算节点返回合并后的结果将最终合并返回给客户端。 |
为了更直观的感受使用KVDS处理的优势,还可以通过分时段设备过车数的统计来细看
数据按STREAM的分布分发到各个计算节点上并写入各个节点的STREAM缓冲区,可以选择异步写入或同步写入。
节点上的消费进程从STREAM缓冲区中获取数据并标记被消费的数据,之后在数据上执行流式视图的查询获取结果。
根据分组条件查询之前的结果并做合并,获取结果。
流式计算除实时的汇总统计以外,还可用于实现其他功能,例如:
1 |
利用流式处理和普通表的连接实现实时的黑名单报警: SELECT 过车数据.车牌号, FROM 过车数据 JOIN 黑名单 ON 过车数据.车牌号 = 黑名单.车牌号; |
2 |
利用topk算法统计入城次数最多的50辆车: SELECT topk_agg(车牌号, 50) FROM 过车数据 WHERE 设备号 IN (a, b, c, d); |
实时统计是视频图像智能应用场景中常用的功能,KVDB内置基于SQL的流式计算高效实现实时统计,不仅可以应用在智能交通场景,还可以满足智能商场、停车场、写字楼等多个场景的需求,为其提供更轻量的数据存储和处理平台。
以上是关于深度 | 流式计算轻松搞定智能交通,你需要了解下KVDB!的主要内容,如果未能解决你的问题,请参考以下文章