[发明专利]一种面向异构数据库的海量组播数据入库实现方法有效
申请号: | 201310488096.6 | 申请日: | 2013-10-17 |
公开(公告)号: | CN103559217A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 刘平原;高世伟;吕江花;马世龙 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 数据库 海量 数据 入库 实现 方法 | ||
技术领域
本发明属于计算机数据采集领域,具体涉及一种面向异构数据库的海量组播数据入库实现方法。
背景技术
在大型系统多型号批量并行测试时,面临任务重、型号多和大量重复测试等情况,测试产生的海量测试数据需要实时地接收并保存到各型号的数据库中,这种海量数据的处理具有实时性强、数据量大、数据格式复杂和入库压力大的特点。
通常组播数据的入库按数据缓存方式的不同,有基于共享缓冲区和基于数据文件两种入库方式。基于共享缓冲区的入库,一般采用“生产者-消费者”模型或其变型,“生产者”将接收到的组播数据存入缓冲内存,“消费者”访问共享内存,取出数据解析后存入数据库。基于数据文件的入库,采用多线程异步操作的方式完成报文接收、解析和入库,接收线程监听网络端口,接收组播报文,按一定周期将报文写入缓存数据文件,生成原始数据文件;解析线程解析原始数据文件,生成入库准备文件;入库线程使用SQL*Loader技术将入库准备文件录入数据库。
在大型系统多型号批量并行测试中,数据库有多个且异构,在这种情况下以上两种入库方式各有不足:
第一种基于共享缓冲区的入库,存在的缺陷是:缓存大小不易确定,容易溢出,特别是在大数据量时,系统极不稳定,无法保证数据的完整性和安全性;共享缓冲区的读写是同步操作,效率低;数据入库效率不如采用SQL*Loader时效率高,在数据库是多个且异构的情况下,无法保证入库速率。
第二种基于数据文件的入库方式,虽然能保证数据的接收效率、稳定性和完整性,采用SQL*Loader技术录入数据,在入库效率也有所提升,但是在面对海量数据的解析和入库,特别是多个异构数据库的入库时,无法保证高效性。
发明内容
针对大型系统多型号批量并行测试时,产生的海量组播数据需要录入多个异构数据库的情况,本发明提出一种面向异构数据库的海量组播数据入库实现方法。通过两级缓存数据文件对组播数据进行存储和分类,通过多线程入库的方式保证每个型号的数据的解析和入库都有专属入库线程完成,在提高了数据处理效率的同时,解决了多个异构数据库入库的问题。
本发明提供的一种面向异构数据库的海量组播数据入库实现方法,包括以下步骤:
步骤一:启动组播报文接收线程,开始接收组播报文;
步骤二:对接收到的组播报文首先进行完整性判断,如果不完整,继续接收;如果完整,则对报文的类型进行检验,如果不是所需要的类型,丢弃该报文,继续接收新的组播报文;如果是所需的报文,将报文存入当前待写入的一级缓存数据文件中;当接收组播报文的时间达到接收周期或接收的组播报文数量达到指定数量时,记录已完成接收的一级数据文件数,关闭并重命名当前待写入的一级缓存数据文件,同时生成新的待写入的一级缓存数据文件;
步骤三:判断是否有需要解析的一级缓存数据文件,若有,读取待解析一级缓存数据文件中的组播报文,开始预解析;否则,继续等待;
预解析的方法是:解析组播报文报头中的信息来源字段,获取报文所属的型号,判断该型号对应的信息是否已在型号队列中,如果不在型号队列中,则获取该型号的信息并添加到型号队列中,并创建该型号对应的二级缓存数据文件存储目录及相关数据文件和控制文件,将组播报文写入二级缓存数据文件,同时调用线程池,启动该型号入库线程;如果在型号队列中,则直接将组播报文写入对应二级缓存数据文件中;
当一个一级缓存数据文件预解析完成后,记录已完成解析的一级缓存数据文件数,关闭并重命名当前所有待写入二级缓存数据文件,更新型号队列中各型号对应的已完成保存二级缓存数据文件数,同时生成新的待写入二级缓存数据文件,等待下一次预解析时存储数据;
步骤四:各型号入库线程判断对应型号的已完成保存二级缓存数据文件数是否大于已入库二级缓存数据文件数,如果否,说明没有新的需要入库的数据,继续等待;如果是,根据已入库二级缓存数据文件数获取下一个待入库二级缓存数据文件,解析该二级缓存数据文件,将解析后的数据保存至对应型号的入库准备数据文件中,解析完成后,调用数据加载工具SQL*Loader和入库控制文件将入库准备数据文件中的数据录入对应数据库,同时更新型号队列中对应的已入库二级缓存数据文件数。
所述的步骤二中,当前待写入的一级缓存数据文件唯一且具有固定文件名;处于已完成写入状态的一级缓存数据文件的命名与已完成接收的一级缓存数据文件数相关。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310488096.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:空调散热器用清洗剂
- 下一篇:一种煤气生产的油渣二次气化处理方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置