GPS监控车台上报数据大规模入库的处理方法技术

技术编号:10979582 阅读:104 留言:0更新日期:2015-01-30 16:20
本发明专利技术的GPS监控车台上报数据大规模入库的处理方法主要用于GPS数据集中监控平台,由于车台数量成千上万,每台设备每个周期都有数据上报,一般每个周期几秒到几十秒不等。这些车台全天候大密度上报数据,给数据库造成了很大的压力。本发明专利技术特别适用于同时处理大量客户端同时数据入库问题,为服务器的稳定、及时响应提供了一种高效的处理方法。

【技术实现步骤摘要】
【专利摘要】本专利技术的GPS监控车台上报数据大规模入库的处理方法主要用于GPS数据集中监控平台,由于车台数量成千上万,每台设备每个周期都有数据上报,一般每个周期几秒到几十秒不等。这些车台全天候大密度上报数据,给数据库造成了很大的压力。本专利技术特别适用于同时处理大量客户端同时数据入库问题,为服务器的稳定、及时响应提供了一种高效的处理方法。【专利说明】GPS监控车台上报数据大规模入库的处理方法
本专利技术属于信息
数据库技术的一个优化方案,提出一种采用缓冲列表设计,高效可靠的解决瞬间大规模车台上报数据入库引起的数据丢失问题。
技术介绍
GPS监控平台上有成千上万台监控终端,它们不停的向监控中心发送数据报文,报文经过解析后插入到数据库中,由于报文解析和插入数据库的工作量非常大,经常导致系统瘫痪,主要故障有:1、服务器的解析跟不上客户端上报的速度,造成服务器停止响应。 2、由于数据不能及时入库,造成服务端缓存溢出。 如何有效保证报文正确及时入库,避免数据丢失以及服务器超负荷不能及时响应是摆在我们面前的难题。目前的解决方法主要有:1、将这些数据形成固定格式的文件,存入数据库的IMAGE字段,等不忙时,解析该IMAGE字段后,存入数据库各结构表。 2、利用公文包模式,客户端取数据并缓存在客户端,等到客户端不忙时再和服务器同步。 这些方法能解决一部分问题,但是会带来额外的系统开销,总体上效率不高。
技术实现思路
本专利技术的一个目的在于为GPS监控车台上报数据的大规模入库提供一种高效的方法。为了实现该入库优化方法,首先需要初始化缓冲队列,客户端发送过来的数据经过服务器解析后形成固定格式数据记录,存放到缓冲队列。同时对数据入库队列记录进行计数,每达到指定数目(如2000条)时会同时创建一个异步入库线程,该线程负责从队列里逐条取出这些数据形成数据库插入语句,写入数据库内存,指定数目(如2000条)的数据记录全部写入内存区后,集中一次提交,提交完成后线程终止。这样服务器不停接收和解析数据写入缓冲队列,同时又不断有数据被成批取出写入数据库内存区并提交到实体表中。 所述方法包括如下步骤:1、在服务端建立缓冲队列并初始化;2、将接收过来并解析后的数据放到缓冲队列中;3、创建入库线程;4、入库线程从缓冲队列提取指定数目的数据,写入其独占的临时队列,同时再创建新的入库线程,新的入库线程重复步骤3和步骤4 ;5、入库线程提取指定数目的数据,写入临时队列后,组织形成入库语句,写到数据库内存区,直到其独占的临时队列的数据全部取完,集中提交入库后,该入库线程退出。 本专利技术相对于现有技术的创新点是:1、上报数据先进入缓冲队列; 2、异步并行多个入库线程,每个入库线程独占一个临时队列;3、数据先写入数据库内存,集中提交。 【专利附图】【附图说明】 图1是服务器的初始化流程图;图2是服务器接收数据入库前准备流程图;图3是服务器接创建入库线程流程图;图4是服务器线程入库工作流程图。 【具体实施方式】 本专利技术的GPS监控车台上报数据大规模入库的处理方法主要用于GPS数据集中监控平台,由于车台数量成千上万,每台设备每个周期都有数据上报,一般一个周期几秒到几十秒不等。这些车台全天候大密度上报数据,给数据库造成了很大的压力。本专利技术特别适用于同时处理多客户端的数据入库问题,为服务器的稳定、及时响应提供了一种高效的处理方法。 具体流程如下:1、在步骤101中,服务器进行初始化工作,获取数据库主机地址和端口以及发送和接收数据的编码,建立客户端连接对象。 2、在步骤102中,初始化缓冲队列,用于存放解析后的上报记录。 3、在步骤103中,初始化数据读取时钟周期,时钟周期的设置依据上报数据的频率,上报频率越快,读取的时钟周期就越短,反之就越长。 4、在步骤201中,服务器接收客户端的数据并解析,提取需要的数据。 5、在步骤202中,服务器将提取的数据按照固定的格式进行组织形成新的待入库记录。 6、在步骤203中,服务器将形成的新的格式的待入库记录推进缓冲队列,为入库线程提供数据。 7、在步骤301中,服务器创建入库线程,用于从缓冲队列读取数据并写入数据库。 8、在步骤302中,入库线程创建临时入库队列。在每个时钟周期从缓冲队列读取数据并推入临时入库队列。临时入库队列的记录数小于2000条时,继续读取。 9、达到2000条时,进入步骤305,创建新的入库线程。 10、在步骤306中,创建临时入库队列,然后原有入库线程开始执行步骤401到405的数据入库工作。新的入库线程则继续执行步骤301到306,然后执行步骤401到405的数据入库工作。 11、在步骤401中,入库线程读取其创建的临时入库队列的数据。 12、在步骤402中,入库线程将读取的数据,组织成标准的入库语句。 13、在步骤403中,入库线程执行入库指令,并将结果写入数据库内存区,暂不提交。 14、在步骤404中,缓冲队列读取结束后,入库线程将数据库内存区的数据一次性提交。 15、在步骤405中,提交结束后,线程退出并释放临时入库队列。【权利要求】1.本专利技术的一个目的在于为GPS监控车台上报数据的大规模入库提供一种高效的方法。2.为了实现该入库优化方法,首先需要初始化缓冲队列,客户端发送过来的数据经过服务器解析后形成固定格式数据记录,存放到缓冲队列。3.同时对数据入库队列记录进行计数,每达到指定数目(如2000条)时会同时创建一个异步入库线程,该线程负责从队列里逐条取出这些数据形成数据库插入语句,写入数据库内存,指定数目(如2000条)的数据记录全部写入内存区后,集中一次提交,提交完成后线程终止。4.这样服务器不停接收和解析数据写入缓冲队列,同时又不断有数据被成批取出写入数据库内存区并提交到实体表中。5.所述方法包括如下步骤: I)、在服务端建立缓冲队列并初始化; .2 )、将接收过来并解析后的数据放到缓冲队列中; .3)、创建入库线程; .4)、入库线程从缓冲队列提取指定数目的数据,写入其独占的临时队列,同时再创建新的入库线程,新的入库线程重复步骤3和步骤4 ; .5)、入库线程提取指定数目的数据,写入临时队列后,组织形成入库语句,写到数据库内存区,直到其独占的临时队列的数据全部取完,集中提交入库后,该入库线程退出。【文档编号】G06F17/30GK104317906SQ201410580982【公开日】2015年1月28日 申请日期:2014年10月27日 优先权日:2014年10月27日 【专利技术者】胡平 申请人:合肥星服信息科技有限责任公司本文档来自技高网...

【技术保护点】
本专利技术的一个目的在于为GPS监控车台上报数据的大规模入库提供一种高效的方法。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡平
申请(专利权)人:合肥星服信息科技有限责任公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1