运用分布式计算技术构建公安卡口系统云计算联网平台数据库

2015-12-24 09:15向庭勇梁俊向庭波
中国公共安全 2015年13期
关键词:记录卡卡口车道

□ 文/向庭勇 梁俊 向庭波

现状、背景及设计思路

LZ市公安局卡口系统云计算联网平台于2013年建成并投入使用,该平台系统由我公司和LZ市公安局合作设计开发,在全国首次将云计算技术运用于卡口系统联网中。系统的主要功能:实现了市局以及各县局各自建设的不同厂家、不同品牌型号、不同结构的卡口系统的联网,并在此基础上实现卡口系统的数据整合。平台自建成投入使用后,各项指标达到设计要求,有效的解决了全局市区及各县卡口系统的联网整合问题,目前该系统运行正常稳定,在公安治安、刑侦、交通、情报等各项业务信息化工作中发挥了重要的作用。

随着公安业务的发展,对该LZ市公安局卡口系统云计算联网平台的数据存储和数据服务、运算速度、平台稳定性等提出了新的应用需求。为解决上述问题,需要解决如何基于HBase构建卡口系统云计算联网平台数据库。本方案从卡口系统云计算联网平台的业务和数据特征开始,根据项目需求、对平台新增分布式数据库进行了概要设计和各模块的详细设计。

目前HBase已经在互联网行业大规模应用,公安卡口系统联网的数据每天都是TB级别的,同时对数据分析和行为分析的需求也很迫切,而且还常包含部分对随机读写效率(低延迟)要求比较高的应用,因此HBase作为一个能提供在海量数据前提下读写效率稳定的数据库,成为卡口系统云计算联网平台最恰当的选择。

卡口系统云计算联网平台的特性如下:

● 百万海量的卡口抓拍图片、过车信息资源;

● 每时每刻都有过车信息更新;

● 快速查询卡口的信息,8秒内响应用户的查询;

● 支持图片下载,下载迅速、便利;

● 海量数据库支持(百万量级),过车图片数据同步显示;

● 资源组织形式灵活多样,能提供不同用户的查询使用需求;

● 搜索便捷,支持文字图片搜索。

● 软件小巧,易操作;

● 能支撑pc和移动端应用操作。

由上诉卡口系统云计算联网平台的业务特性,应用特点决定了数据特性,其特性如下:

● 过车数据:包含卡口过车时的过车信息及图片。过车数据包含很多种类信息,主要种类如下:

● 过车时间:车辆通过时间;

● 车道编号:图像拍摄的车道信息;

● 车道方向名称:图像拍摄的车道方向;

● 车辆号牌:所拍摄的车辆的车牌号;

● 号牌颜色:所拍摄的车辆的车牌颜色;

● 车辆速度:所拍摄的车辆的速度;

● 车辆限速:车辆的限速设定;

● 车牌类型:所拍摄的车辆的车牌类型;

● 车辆类型:所拍摄的车辆的类型;

● 车身颜色:所拍摄的车辆的车身颜色;

● 违法类型:所拍摄的车辆的违法类型;

● 正常过车图片:所拍摄的正常过车图片;

● 违法过车图片:所拍摄的违法的车辆图片;

● 卡口属性信息:主要指卡口的位置信息及卡口所用设备属性信息;

● 设备信息:设备所属厂家、型号、品牌等,还有设备是否在线等设备状态信息;

需求概述

随着LZ市公安局各业务工作信息化的发展,各警种应用对海量卡口信息服务的需求越来越大,建立卡口系统云计算联网平台数据库及后台查询系统,将为卡口系统云计算联网平台提供最基本的数据积累,也为以后对这些数据进行深度挖掘、分析,给各警种应用提供更好的海量卡口信息服务。

● 提供海量数据搜索支持,能保存半年卡口数据的存储容量;

● 优化推荐算法;

● 提供实时计算底层支持:实时计算分业务方向和数据分析方向;

● 支持某些具有特殊需求的项目;

● 卡口数据多维度的分析,为各领导提供更准确的决策支持;

● 为数据产品提供底层支持,直接服务各警种的警务人员;

需求范围和系统边界

需求应该包含范围和边界的描述,需求范围是产品或项目的内部,边界是内部和外部的交界。

建立卡口信息库

收集所有卡口信息相关的纪录,包含行政区划代码、卡口编号、卡口经度、卡口纬度、卡口类型、工作模式、测速模式、车道名称、车道编号、车道方向名称、大车限速值、小车限速值、设备名称、设备编号、设备车道编号。

该部分信息用于精分卡口,利用各种属性信息将卡口进行多维度归类。

建立设备状态库

主要是记录所有卡口设备的工作状况。

建立过车数据库

收集所有卡口的过车记录,包含卡口编号、卡口设备编号、过车数据编号、过车时间、车道编号、车道方向名称、车辆号牌、号牌颜色、车辆速度、车辆限速、车牌类型、车辆类型、车身颜色、违法类型、正常过车图片、违法过车图片等信息。

建立后台查询系统

支持查询组合维度下的数据查询、统计和展示。

相关项目接口

支持交警系统的实时查询,并且为这些项目提供API支持。

系统边界

构建卡口系统云计算联网平台数据库旨在为相关警种提供卡口属性,及相关的卡口过车信息的唯一平台,提供便捷API和界面查询,保证海量数据下的查询和插入性能在一定的水平范围,保证高并发范围性能在一定水平范围。

系统包含HBase存储集群、后台管理系统、批量加载、二级索引等模块,不包含SQL引擎层、事务性索引、HBase性能优化等。

系统不包括服务运营、前端开发、运维等人员。

需求分析

卡口信息库

● 行政区划代码:用于区分不同的行政区域,确定卡口位置所属的市县;

● 卡口编号:填写卡口信息时,卡口唯一的编号;

● 卡口经度:卡口的地理位置,经度;

● 卡口纬度:卡口的地理位置,纬度;

● 卡口类型:确定卡口的类型,是车辆卡口还是治安卡口;

● 工作模式 :记录卡口的工作模式

● 测速模式:记录卡口的测速模式,是视频测速、线圈测速、雷达测速;

● 车道名称:记录卡口设备所监控的车道的名称;

● 车道编号:记录卡口设备所监控的车道的名称对应的系统编号;

● 车道方向名称:记录卡口设备所监控的车道方向,如入城方向,由东向西等;

● 大车限速值:确定卡口位置大车的限速值;

● 小车限速值:确定卡口位置小车的限速值;

● 设备名称:记录卡口监控设备的型号,厂家名称;

● 设备编号:记录卡口所用设备的设备编号;

● 设备车道编号:记录卡口监控设备所监控的车道编号,同一卡口可能有不同厂家的卡口设备监控不同的车道或不同的车道方向。

设备状态库

● 设备编号:记录卡口所用设备的设备编号,在整个卡口联网平台中是唯一的;

● 设备状态:记录卡口设备的使用状态,是0-正常,1-故障,2-报废,3-停用,同时对应记录的时间,定时更新;

● 记录时间:设备状态记录生成时的时间,定时更新;

过车数据库

● 卡口编号:填写卡口信息时,卡口唯一的编号;

● 卡口设备编号:记录卡口所用设备的设备编号;

● 过车时间:记录卡口监控设备拍摄过车画面时的时间;

● 车道编号:记录卡口设备所监控的车道的名称对应的系统编号;

● 车道方向名称:记录卡口设备所监控的车道方向,如入城方向,由东向西等;

● 车辆号牌:记录卡口监控设备拍摄过车的车牌号;

● 号牌颜色:记录卡口监控设备拍摄过车的车牌号颜色;

● 车辆速度:记录卡口监控设备拍摄过车的车辆速度;

● 车辆限速:确定卡口位置车辆的限速值;

● 车牌类型:记录卡口监控设备拍摄过车的车牌的类型;

● 车辆类型:记录卡口监控设备拍摄过车的车辆类型;

● 车身颜色:记录卡口监控设备拍摄过车的车辆车身颜色;

● 违法类型:记录卡口监控设备拍摄过车的违法类型;

● 正常过车图片:记录卡口监控设备拍摄过车正常行驶时的图片;

● 违法过车图片:记录卡口监控设备拍摄过车违章行驶时的图片;

后台查询系统

后台查询系统主要用于验证数据准确性,人工维护数据和支持开发测试。主要有查询卡口信息,查询卡口设备状态信息,查询卡口过车数据信息。

概要设计

功能指标

存储能力

为亿级的过车信息建立过车信息库,存储过车数据信息,后续可支持5亿数据量级的信息存储。能存储千万量级的卡口设备及设备状态信息库。

运算和查询能力

支持前端业务至少每秒500量级的实时查询请求,支持每秒10000的写入效率,支持遍历查询,遍历全表在3小时以内。

统计能力

提供后台,支持查询组合维度下的统计数据,查询到结果展现速度不超过8秒。

扩展型

数据存储和计算能够实现可扩展,能够易于通过扩展性解决性能瓶颈问题;后台管理系统实现可扩展,为以后评估数据挖掘算法、实时修改不同警种的业务查询做准备;提供统一接口,支持前端各业务的数据需求。

系统流程

卡口系统云计算联网平台数据库系统可分为以下四个大部分:

数据层:底层数据,包含各卡口设备及卡口服务器产生的各种设备信息、卡口过车数据等信息;

数据处理层:对数据层进行数据预处理、批量加载、增量更新等操作;

数据存储层:HBase核心层,存放处理过的结构化和非结构化数据,如卡口过车图片、车牌号,车辆颜色等信息;

数据应用层:后台查询系统,其他服务采用外部API。

系统整体架构如图所示:

表结构设计

rowkey设计

不同的表对于主键的定义格式不同,表3 过车数据 sendvehicleinfo使用<pointid><deviceid><Long.MAX_VALUE-System.currentTimeMillis()>作为Rowkey,该Rowkey共由三个部分组成:pointid、deviceid、Long.MAX_VALUE-System.currentTimeMillis(),其中Long.MAX_VALUE-System.currentTimeMillis()是为了使得过车数据的最新记录能够按照时间顺序排列。

列族设计

所有表中,最多存在2个列族,因为单个列族在flush的时候,它邻近列族也会触发flush,最终导致系统产生很多i/o,如果列族过多对HBase的集群性能影响很大。

考虑系统运行后应用追求低停顿的特性,可考虑创建一两个扩展列族可有效解决线上添加列族的需求。

优化属性定义

BLOOMFILTER属性(布隆过滤)可以每列族单独启用,ROW行键的哈希在每次插入行时将被添加到布隆;

COMPRESSION属性(压缩)采用LZO模式;

根据项目背景和概要设计中的描述,将业务需求抽象为如下的表:

表1建表语句如下:

create ‘pointinfo’, { NAME => ‘attr’ ,COMPRESSION=> ‘LZO’ , BLOOMFILTER => ‘ ROW’ } , { NAME =>‘device’ ,COMPRESSION => ‘LZO’ , BLOOMFILTER =>‘ ROW’ }

表1 卡口信息 pointinfo

表2建表语句如下:

create ‘devicestatus’ , { NAME => ‘statusattr’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

表2 设备状态 devicestatus

表3建表语句如下:

create ‘sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

表3 过车数据 sendvehicleinf

为提高查询的响应速度,可按行政区域细分过车数据表,把过车数据表分为六个表,建表语句如下:

create ‘ luzhai_sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

create ‘liucheng_sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

create ‘liujiang_sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

create ‘rongan_sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

create ‘rongshui_sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

create ‘sanjiang_sendvehicleinfo’ , { NAME => ‘info’,COMPRESSION => ‘LZO’ , BLOOMFILTER => ‘ ROW’ }

卡口系统云计算联网平台数据库的特性

扩展性强

为卡口系统云计算联网平台设计的数据库采用了HBase技术,去掉了关系型数据库的关系特性,若数据之间是弱关系,则非常容易扩展,非常容易实现支撑数据从TB到PB级别的过度。

容量巨大

HBase的表单可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性。如采用传统的关系型数据库,如Oracle和MySQL等,如果数据记录在亿级别,查询和写入的性能都会呈指数级下降,使用HBase可以大幅缩短亿级数据的查询响应时间。

并发性能好

所设计的数据库具有非常良好的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的弱关系性,数据库的结构简单。HBase的Cache 是记录级的,是一种细粒度的Cache,所以HBase 在这个层面上来说性能要高很多。Region切分、主键索引和缓存机制使得HBase在海量数据下具备一定的随机读取性能,该性能对Rowkey的查询能够达到毫秒级别。

数据模型灵活

所设计的数据库无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系型数据库中,增删字段是一件非常麻烦的事情。对于数据量非常大的表,增加字段简直就是一场噩梦。HBase允许使用者随时随地的添加字段,并且字段类型可以是任意格式。

稀疏性

在大多数情况下,采用传统行式存储的数据往往是稀疏的,即存在大量为空的列(null),而这些列都是占用存储空间的,造成存储空间的浪费。对于HBase来说为空的列并不占用存储空间,表可以设计得非常稀疏。

高可靠性

HBase提供WAL和Replication机制。前者保证了数据写入时不会因集群异常而导致写入数据的丢失;后者保证了在集群出现严重问题时,数据不会发生丢失或损坏。而且HBase底层使用HDFS,HDFS本身的副本机制很大程度上保证了HBase的高可靠性。同时,协调服务的ZooKeeper组件是经过工业验证的,具备高可用性和高可靠性。

结语

为卡口系统云计算联网平台设计的HBase数据库能满足各警种应用对卡口数据查询等提出的需求,一方面提升平台的能力;另一方面将大数据技术(Hadoop技术)应用于该平台系统中,充分发挥云计算系统的潜力,为LZ公安局的卡口查询系统、情报系统、交警的缉查布控系统等应用提供六县卡口的大数据快速查询服务。为卡口系统云计算联网平台设计的HBase数据库满足卡口系统云计算联网平台的如下需求:

1、对现有平台进行扩充,使数据保存能力从十天延长到三个月或者半年;

2、在现有平台基础上,使计算能力在现有基础上提高一倍以上;

3、增加一套基于云计算技术的数据库及相关大数据工具软件,整合各卡口系统数据,并在此基础上由该联网平台提供统一数据查询、检索等应用服务,各厂商系统仅与联网平台对接。

4、数据检索、查询响应时间小于8秒

并且从系统安全、可靠性、计算速度、容量,可扩充性等诸多方面给予全面的考虑:

1、卡口系统云计算联网平台建设应根据实际情况分步实施,且考虑一定的先进性;

2、平台应具备高可靠性,可用性较强,具备较完备的故障恢复能力;

3、提高可管理性,降低运维难度,提高运维效率。

猜你喜欢
记录卡卡口车道
三下第一单元:我的植物朋友
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
试论劳务用工安全档案在建筑施工安全管理中的应用
L卡口“马拉松”联盟的前世今生
小学英语课外阅读记录卡的使用策略
例谈小学英语课外阅读记录卡的使用
低速ETC/MTC混合式收费车道的设计与实现
高速公路车道高清卡口系统实施方案