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

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

Info

Publication number
CN103064968A
CN103064968A CN201210593007XA CN201210593007A CN103064968A CN 103064968 A CN103064968 A CN 103064968A CN 201210593007X A CN201210593007X A CN 201210593007XA CN 201210593007 A CN201210593007 A CN 201210593007A CN 103064968 A CN103064968 A CN 103064968A
Authority
CN
China
Prior art keywords
data
crawl
buffer memory
cache
grasped
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201210593007XA
Other languages
English (en)
Inventor
吴歌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 15 Research Institute
Original Assignee
CETC 15 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 15 Research Institute filed Critical CETC 15 Research Institute
Priority to CN201210593007XA priority Critical patent/CN103064968A/zh
Publication of CN103064968A publication Critical patent/CN103064968A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于缓存的标准化数据打包方法,包括建立模板函数、对数据库中的文件进行抓取和对抓取的数据进行数据打包,其中,在对文件进行抓取过程中,将抓取的数据按顺序写入缓存,当缓存接收到抓取数据后,再把抓取的数据写入内存的文件包中,同时监测缓存接收数据的速度与从缓存向文件包写入文件的速度的关系:当前者大于后者时,且缓存容量达到最大容量时,停止向缓存写入抓取的数据;当缓存中的数据量减小到设定的下限值时,开始向缓存写入抓取的数据;通过建立一个模板函数并调用,而执行不同的数据抓取任务并生成对应的任务文件,同时,在数据打包过程中,通过缓存将任务文件写到内容文件包中,从而把内存使用的需求降到最低。

Description

一种基于缓存的标准化数据打包方法
技术领域
本发明涉及数据打包技术领域,具体涉及一种基于缓存的标准化数据打包方法。
背景技术
对于数据库数据抓取和数据打包,一般的做法是对不同数据抓取任务编写不同的函数来处理数据抓取,其中每个函数根据数据抓取任务,生成包括数据预处理、数据库表和字段定义以及数据后处理的命令,驱动数据引擎对数据库表和字段定义锁定的数据进行抓取后,根据数据预处理命令对抓取到的数据进行包括定义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,由此执行多个数据抓取任务,最终把包含抓取数据的任务文件打包存储。这样就保证了程序在并行处理多个任务或处理大数据文件时不会消耗过大的内存。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于缓存的标准化数据打包方法,其特征在于,包括如下步骤:
步骤1、建立模板函数,具体为:
根据所有可能的数据抓取任务,生成对数据依次进行数据预处理、数据库表和字段定义以及数据后处理的模板函数;其中,所述数据预处理包括使用sql语句、存储过程和普通运算规则三种处理方式对待抓取的数据进行处理;所述数据库表和字段定义为待抓取数据所在数据库名称、表名称、字段名称以及相应的约束条件;所述数据后处理包括使用sql语句、存储过程和普通运算规则三种处理方式对数据库表进行标志位设置和临时数据删除的处理;
步骤2、对数据库中的文件进行抓取,具体为:
针对接收到的数据抓取任务,调用模板函数根据数据库表和字段定义所指明的待抓取数据,再根据数据抓取任务中要求的对数据进行数据预处理的项目,选择数据预处理中的三种处理方式中的一种或多种处理方式对待抓取数据进行处理;然后再从数据库中抓取所述待抓取数据,最后,根据数据抓取任务中要求的对数据进行数据后处理的方式,选择数据后处理中的三种处理方式中的一种或多种对已经抓取的数据进行处理;
步骤3、对抓取的数据进行数据打包,具体为:
S31、在内存中创建缓存区域;
S32、将抓取的数据按顺序写入缓存,当缓存接收到抓取数据后,再把抓取的数据写入内存的文件包中,同时监测缓存接收数据的速度与从缓存向文件包写入文件的速度的关系:当前者大于后者时,且缓存容量达到最大容量时,停止向缓存写入抓取的数据;当缓存中的数据量减小到设定的下限值时,开始向缓存写入抓取的数据;
步骤4、重复执行步骤2和步骤3,由此执行多个数据抓取任务,最终把抓取到的数据打包存储。
2.如权利要求1所述的一种基于缓存的标准化数据打包方法,其特征在于,在所述步骤3的S32中,缓存中的数据量减小到缓存容量的70%时,开始向缓存写入抓取的数据。
CN201210593007XA 2012-12-31 2012-12-31 一种基于缓存的标准化数据打包方法 Pending CN103064968A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210593007XA CN103064968A (zh) 2012-12-31 2012-12-31 一种基于缓存的标准化数据打包方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210593007XA CN103064968A (zh) 2012-12-31 2012-12-31 一种基于缓存的标准化数据打包方法

Publications (1)

Publication Number Publication Date
CN103064968A true CN103064968A (zh) 2013-04-24

Family

ID=48107598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210593007XA Pending CN103064968A (zh) 2012-12-31 2012-12-31 一种基于缓存的标准化数据打包方法

Country Status (1)

Country Link
CN (1) CN103064968A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106292578A (zh) * 2016-07-29 2017-01-04 湖南永清水务有限公司 一种污水处理厂运营数据采集传输系统
CN107562955A (zh) * 2017-09-30 2018-01-09 北京酷我科技有限公司 一种sql语句的快速生成方法
CN107688618A (zh) * 2017-08-08 2018-02-13 平安科技(深圳)有限公司 数据对比方法、装置、计算机设备和存储介质
CN109726096A (zh) * 2017-10-27 2019-05-07 中移(苏州)软件技术有限公司 一种测试数据生成方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741997B1 (en) * 2001-06-14 2004-05-25 Oracle International Corporation Instantiating objects in distributed database systems
CN1620646A (zh) * 2001-05-18 2005-05-25 皇家菲利浦电子有限公司 用于将设备集成到中间件框架中的代码生成
CN101110030A (zh) * 2007-08-23 2008-01-23 南京联创科技股份有限公司 基于java的数据库持久层的开发方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620646A (zh) * 2001-05-18 2005-05-25 皇家菲利浦电子有限公司 用于将设备集成到中间件框架中的代码生成
US6741997B1 (en) * 2001-06-14 2004-05-25 Oracle International Corporation Instantiating objects in distributed database systems
CN101110030A (zh) * 2007-08-23 2008-01-23 南京联创科技股份有限公司 基于java的数据库持久层的开发方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姜召凤: "Oracle RAC数据库缓存优化方法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106292578A (zh) * 2016-07-29 2017-01-04 湖南永清水务有限公司 一种污水处理厂运营数据采集传输系统
CN107688618A (zh) * 2017-08-08 2018-02-13 平安科技(深圳)有限公司 数据对比方法、装置、计算机设备和存储介质
WO2019029155A1 (zh) * 2017-08-08 2019-02-14 平安科技(深圳)有限公司 数据对比方法、装置、计算机设备和存储介质
CN107562955A (zh) * 2017-09-30 2018-01-09 北京酷我科技有限公司 一种sql语句的快速生成方法
CN109726096A (zh) * 2017-10-27 2019-05-07 中移(苏州)软件技术有限公司 一种测试数据生成方法及装置

Similar Documents

Publication Publication Date Title
CN104199790B (zh) 数据处理方法及装置
CN103064968A (zh) 一种基于缓存的标准化数据打包方法
CN109582455A (zh) 多线程任务处理方法、装置及存储介质
CN111124679A (zh) 一种面向多源异构海量数据限时自动处理方法
CN103399856A (zh) 面向scada系统的爆发式数据缓存处理系统及其方法
JP2005512237A5 (zh)
MY151687A (en) A method of data storage and management
JP2017538194A5 (zh)
CN109726004B (zh) 一种数据处理方法及装置
CN102915344B (zh) 一种sql语句处理方法及装置
CN106293541A (zh) 一种存储系统的日志管理方法和系统
CN106407231A (zh) 一种数据多线程导出方法及系统
CN105049524B (zh) 一种基于hdfs的大规模数据集装载的方法
CN110275681A (zh) 一种数据存储方法及数据存储系统
CN106155796A (zh) 一种基于队列的线程调度方法及装置
CN105139890B (zh) 一种信息处理方法及固态硬盘
CN114896295B (zh) 大数据场景下的数据脱敏方法、脱敏装置及脱敏系统
CN114329253B (zh) 一种网络运行数据查询方法、装置、设备及存储介质
CN106022109A (zh) 一种防止线程暂停的方法、装置及电子设备
CN103078811B (zh) 一种基于多线程环境网络数据包乱序控制方法
CN107273303B (zh) 一种闪存数据管理系统、方法、闪存芯片及存储装置
CN104008067A (zh) 一种存储数据的方法及装置
CN103544302A (zh) 数据库的分区维护方法和装置
ATE382894T1 (de) Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundanten speichereinheiten
CN106897450A (zh) 一种基于HDFS海量数据快速导入HBase的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130424