一种基于缓存的标准化数据打包方法

文档序号:6581549阅读:304来源:国知局
专利名称:一种基于缓存的标准化数据打包方法
技术领域
本发明涉及数据打包技术领域,具体涉及一种基于缓存的标准化数据打包方法。
背景技术
对于数据库数据抓取和数据打包,一般的做法是对不同数据抓取任务编写不同的函数来处理数据抓取,其中每个函数根据数据抓取任务,生成包括数据预处理、数据库表和字段定义以及数据后处理的命令,驱动数据引擎对数据库表和字段定义锁定的数据进行抓取后,根据数据预处理命令对抓取到的数据进行包括定义sql语句、存储过程和普通运算规则等处理,然后再进行数据库表进行标志位设置和临时数据删除等数据后处理,最后通过文件数据流直接写入内存的文件包。这样的处理方式会造成随着数据抓取任务的增加,相应的处理程序也相应增加,最终会导致程序维护困难。并且,大数据量写入文件也会导致内存消耗过大,影响系统整体运行。

发明内容
有鉴于此,本发明提供了一种基于缓存的标准化数据打包方法,能够通过建立一个模板函数并调用,而执行不同的数据抓取任务并生成对应的任务文件,同时,在数据打包过程中,通过缓存将任务文件写到内容文件包中,从而把内存使用的需求降到最低。本发明的一种基于缓存的标准化数据打包方法,包括如下步骤步骤1、建立模板函数,具体为根据所有可能的数据抓取任务,生成对数据依次进行数据预处理、数据库表和字段定义以及数据后处理的模板函数;其中,所述数据预处理包括使用sql语句、存储过程和普通运算规则三种处理方式对待抓取的数据进行处理;所述数据库表和字段定义为待抓取数据所在数据库名称、表名称、字段名称以及相应的约束条件;所述数据后处理包括使用sql语句、存储过程和普通运算规则三种处理方式对数据库表进行标志位设置和临时数据删除的处理;步骤2、对数据库中的文件进行抓取,具体为针对接收到的数据抓取任务,调用模板函数根据数据库表和字段定义所指明的待抓取数据,再根据数据抓取任务中要求的对数据进行数据预处理的项目,选择数据预处理中的三种处理方式中的一种或多种处理方式对待抓取数据进行处理;然后再从数据库中抓取所述待抓取数据,最后,根据数据抓取任务中要求的对数据进行数据后处理的方式,选择数据后处理中的三种处理方式中的一种或多种对已经抓取的数据进行处理;步骤3、对抓取的数据进行数据打包,具体为S31、在内存中创建缓存区域;S32、将抓取的数据按顺序写入缓存,当缓存接收到抓取数据后,再把抓取的数据写入内存的文件包中,同时监测缓存接收数据的速度与从缓存向文件包写入文件的速度的关系当前者大于后者时,且缓存容量达到最大容量时,停止向缓存写入抓取的数据;当缓存中的数据量减小到设定的下限值时,开始向缓存写入抓取的数据;步骤4、重复执行步骤2和步骤3,由此执行多个数据抓取任务,最终把抓取到的数据打包存储。在所述步骤3的S32中,缓存中的数据量减小到缓存容量的70%时,开始向缓存写入抓取的数据。本发明具有如下有益效果本发明通过建立一个模板函数并调用,而执行不同的数据抓取任务并生成对应的任务文件,同时,在数据打包过程中,通过缓存将任务文件写到内容文件包中,从而把内存使用的需求降到最低。
具体实施例方式下面举实施例,对本发明进行详细描述。本发明提供了一种基于缓存的标准化数据打包方法,包括如下步骤步骤1、建立模板函数,具体为根据所有可能的数据抓取任务,生成对数据依次进行数据预处理、数据库表和字段定义以及数据后处理的模板函数;其中,所述数据预处理包括对待抓取的数据进行定义sql语句、存储过程和普通运算规则三项处理过程;所述数据库表和字段定义为待抓取数据所在数据库名称以及该数据库中字段位置;所述数据后处理包括对待抓取的数据进行定义sql语句、存储过程、普通运算规则、数据库表进行标志位设置和临时数据删除的五项处理过程;步骤2、对数据库中的文件进行抓取,形成任务文件,具体为针对接收到的数据抓取任务,调用模板函数根据数据库表和字段定义所指明的待抓取数据,再根据数据抓取任务中要求的对数据进行数据预处理的项目,选择数据预处理中的三项处理过程中的一项或多项处理过程对待抓取数据进行处理;然后再从数据库中抓取所述待抓取数据,最后,根据数据抓取任务中要求的对数据进行数据后处理的项目,选择数据后处理中的五项处理过程中的一项或多项处理过程对已经抓取的数据进行处理,最终生成该数据抓取任务对应的任务文件;步骤3、对抓取的数据进行数据打包,具体为S30、读取抓取的数据的大小;S31、根据抓取的数据的大小在内存中创建可容纳抓取的数据的缓存区域;S32、将抓取的数据按顺序写入缓存,当缓存接收到抓取数据后,再把抓取的数据写入内存的文件包中,同时监测缓存接收数据的速度与从缓存向文件包写入文件的速度的关系当前者大于后者时,缓存中的数据量会持续增加,当缓存容量达到上限时,停止向缓存写入抓取的数据;缓存中的数据会继续写入文件,当缓存中的数据量减小到缓存容量的70%时,开始向缓存写入抓取的数据;步骤4、重复执行步骤2和步骤3,由此执行多个数据抓取任务,最终把包含抓取数据的任务文件打包存储。这样就保证了程序在并行处理多个任务或处理大数据文件时不会消耗过大的内存。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于缓存的标准化数据打包方法,其特征在于,包括如下步骤 步骤1、建立模板函数,具体为 根据所有可能的数据抓取任务,生成对数据依次进行数据预处理、数据库表和字段定义以及数据后处理的模板函数;其中,所述数据预处理包括使用Sql语句、存储过程和普通运算规则三种处理方式对待抓取的数据进行处理;所述数据库表和字段定义为待抓取数据所在数据库名称、表名称、字段名称以及相应的约束条件;所述数据后处理包括使用sql语句、存储过程和普通运算规则三种处理方式对数据库表进行标志位设置和临时数据删除的处理; 步骤2、对数据库中的文件进行抓取,具体为 针对接收到的数据抓取任务,调用模板函数根据数据库表和字段定义所指明的待抓取数据,再根据数据抓取任务中要求的对数据进行数据预处理的项目,选择数据预处理中的三种处理方式中的一种或多种处理方式对待抓取数据进行处理;然后再从数据库中抓取所述待抓取数据,最后,根据数据抓取任务中要求的对数据进行数据后处理的方式,选择数据后处理中的三种处理方式中的一种或多种对已经抓取的数据进行处理; 步骤3、对抓取的数据进行数据打包,具体为 531、在内存中创建缓存区域; 532、将抓取的数据按顺序写入缓存,当缓存接收到抓取数据后,再把抓取的数据写入内存的文件包中,同时监测缓存接收数据的速度与从缓存向文件包写入文件的速度的关系当前者大于后者时,且缓存容量达到最大容量时,停止向缓存写入抓取的数据;当缓存中的数据量减小到设定的下限值时,开始向缓存写入抓取的数据; 步骤4、重复执行步骤2和步骤3,由此执行多个数据抓取任务,最终把抓取到的数据打包存储。
2.如权利要求1所述的一种基于缓存的标准化数据打包方法,其特征在于,在所述步骤3的S32中,缓存中的数据量减小到缓存容量的70%时,开始向缓存写入抓取的数据。
全文摘要
本发明公开了一种基于缓存的标准化数据打包方法,包括建立模板函数、对数据库中的文件进行抓取和对抓取的数据进行数据打包,其中,在对文件进行抓取过程中,将抓取的数据按顺序写入缓存,当缓存接收到抓取数据后,再把抓取的数据写入内存的文件包中,同时监测缓存接收数据的速度与从缓存向文件包写入文件的速度的关系当前者大于后者时,且缓存容量达到最大容量时,停止向缓存写入抓取的数据;当缓存中的数据量减小到设定的下限值时,开始向缓存写入抓取的数据;通过建立一个模板函数并调用,而执行不同的数据抓取任务并生成对应的任务文件,同时,在数据打包过程中,通过缓存将任务文件写到内容文件包中,从而把内存使用的需求降到最低。
文档编号G06F17/30GK103064968SQ20121059300
公开日2013年4月24日 申请日期2012年12月31日 优先权日2012年12月31日
发明者吴歌 申请人:中国电子科技集团公司第十五研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1