CN104376086B - 数据处理方法和装置 - Google Patents

数据处理方法和装置 Download PDF

Info

Publication number
CN104376086B
CN104376086B CN201410664691.5A CN201410664691A CN104376086B CN 104376086 B CN104376086 B CN 104376086B CN 201410664691 A CN201410664691 A CN 201410664691A CN 104376086 B CN104376086 B CN 104376086B
Authority
CN
China
Prior art keywords
data
thread
state
database
mode
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.)
Active
Application number
CN201410664691.5A
Other languages
English (en)
Other versions
CN104376086A (zh
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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201410664691.5A priority Critical patent/CN104376086B/zh
Publication of CN104376086A publication Critical patent/CN104376086A/zh
Application granted granted Critical
Publication of CN104376086B publication Critical patent/CN104376086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据处理方法和装置,包括:预先设置线程启动周期;根据线程启动周期,启动线程;线程获取当前数据库中数据的数据状态,数据状态包括初始状态、待处理状态和已处理状态;线程获取数据库中数据状态为初始状态的数据,并将数据的数据状态从初始状态更新为待处理状态;线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将数据的数据状态从待处理状态更新为已处理状态。本发明能够保证数据被多线程依次不重复处理,并提高数据处理的效率。

Description

数据处理方法和装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法和装置。
背景技术
数据的存储向大数据(Big data)方向发展,大数据的爆炸式增长在大容量、多样性和高增速方面,全面考验着现代企业的数据处理和分析能力,同时,也为企业带来了获取更丰富、更深入和更准确地洞察市场行为的大量机会。
目前,由于多用户操作应用系统而产生的大量数据,无论出于性能方面的考虑,还是分类方面的规划,在系统获取到用户的数据后,都会通过相应的程序进行数据再处理。普遍采用的数据处理方式是通过单线程处理。单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。单线程相对的系统稳定、扩展性极强、软件丰富,非常适合点对点的服务。但是在大量数据存在时,单线程效率比较低,更难以实现数据的实时处理。
发明内容
为了解决上述技术问题,本发明提供了一种数据处理方法和装置,能够提高数据处理的效率。
为了达到本发明目的,本发明提供了一种数据处理方法,包括:预先设置线程启动周期;根据所述线程启动周期,启动线程;所述线程获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;所述线程获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;所述线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态。
进一步地,所述预先设置线程启动周期包括:通过java语言的定时代码设置线程启动周期;所述方法还包括:预先设置数据库的数据量阈值范围;如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
进一步地,所述线程获取当前数据库中数据的数据状态之前还包括:预先为数据扩展数据状态的属性;所述数据状态通过数据、字母和字符中的一个或任意组合进行标识。
进一步地,所述当前数据库中的数据根据进入数据库的时间进行排序;所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
进一步地,所述将所述数据的数据状态从待处理状态更新为已处理状态之后还包括:所述线程处理完成获取的所有数据后,释放所述线程所占的资源。
一种用于数据处理装置,包括:设置模块,用于预先设置线程启动周期;启动模块,用于根据所述线程启动周期,启动线程;线程,用于获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态。
进一步地,所述设置模块,具体用于通过java语言的定时代码设置线程启动周期;所述设置模块,还用于预先设置数据库的数据量阈值范围;所述装置还包括:调整模块,用于如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
进一步地,所述装置还包括:扩展模块,用于预先为数据扩展数据状态的属性,其中所述数据状态通过数据、字母和字符中的一个或任意组合进行标识。
进一步地,所述当前数据库中的数据根据进入数据库的时间进行排序;所述线程获取数据库中数据状态为初始状态的数据,具体为:所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
进一步地,所述线程还用于处理完成获取的所有数据后,释放所述线程所占的资源。
与现有技术相比,本发明包括:预先设置线程启动周期;根据所述线程启动周期,启动线程;所述线程获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;所述线程获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;所述线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态。本发明通过对数据库中的数据增加数据状态属性,新启动的线程将只会获取上个获取时间点后新进入数据库数据,并进行数据状态的更新,因此不同的线程只处理本身更新数据状态的数据,对于没有更新过数据状态的数据,不相互竞争,从而可以保证数据的被多线程依次不重复处理,并提高数据处理的效率。
附图说明
图1是本发明数据处理方法的流程示意图。
图2是本发明数据处理装置的结构示意图。
具体实施方式
下面结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。
图1是本发明数据处理方法的流程示意图,如图1所示,包括:
步骤11,预先设置线程启动周期。
在本步骤中,可以通过设定程序,例如java语言的定时代码,设置线程启动周期。
线程启动周期可以根据数据库的数据量的大小进行调整。具体地,预先设置数据库的数据量阈值范围,如果当前数据库的数据量大于数据量阈值范围上限时,减小线程启动周期;当前数据库的数据量小于数据量阈值范围下限时,增大线程启动周期。
步骤12,根据线程启动周期,启动线程。
在本步骤中,根据线程启动周期,例如每隔几秒或者几分钟,启动一个线程。例如:每20秒启动1个线程,如果20秒内,本次启动的线程已经完成工作,该线程停止;如果20秒内,本次启动的线程没有完成工作,该线程将和20秒钟之后新启动的线程同时工作,形成多线程。
步骤13,该线程获取当前数据库中数据的数据状态,该数据状态包括初始状态、待处理状态和已处理状态。
在本步骤之前,预先为数据库中的数据扩展数据状态的属性,该数据状态包括初始状态、待处理状态和已处理状态,其中,数据进入数据库中设置为初始状态;启动线程后,该线程将要处理的数据设置为待处理状态;该线程对处理完成的数据设置为已处理状态。
数据状态为初始状态、待处理状态和已处理状态可以通过数据、字母或字符等来标识,例如,将初始状态设置为1,即数据状态为1时,该数据的数据状态为初始状态。
步骤14,该线程获取数据库中数据状态为初始状态的数据,并将该数据的数据状态从初始状态更新为待处理状态。
在本步骤中,数据库中不断地会有新数据进入,进入数据库中的新数据的数据状态为初始状态。
根据线程启动周期启动线程,该线程获取数据库中数据状态为初始状态的数据,并将该数据的数据状态从初始状态更新为待处理状态,即该线程将只需要处理本身获取且更新数据状态的数据。
数据库中的数据可以根据进入数据库的时间进行排序,所以获取数据库中数据状态为初始状态的数据,具体可以是记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
步骤15,该线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将数据的数据状态从待处理状态更新为已处理状态。
在本步骤中,该线程对获取的数据状态为待处理状态的数据进行处理,在此过程中,并不能删除数据库中的数据,只需对处理完成的数据进行数据状态的更改,从待处理状态更新为已处理状态。
步骤16,该线程处理完成获取的所有数据后,释放该线程所占的资源。
本发明通过对数据库中的数据增加数据状态属性,新启动的线程将只会获取上个获取时间点后新进入数据库数据,并进行数据状态的更新,因此不同的线程只处理本身更新数据状态的数据,对于没有更新过数据状态的数据,不相互竞争,从而可以保证数据的被多线程依次不重复处理,提高数据处理的效率。
图2是本发明数据处理装置的结构示意图,如图2所示,包括:
设置模块,用于预先设置线程启动周期和预先设置数据库的数据量阈值范围。
启动模块,用于根据线程启动周期,启动线程。
线程,用于启动后,获取当前数据库中数据的数据状态为初始状态的数据,并将该数据的数据状态从初始状态更新为待处理状态;对获取的数据进行处理,并在处理完成后,将数据的数据状态从待处理状态更新为已处理状态;处理完成获取的所有数据后,释放该线程所占的资源。
该装置还包括:
调整模块,用于如果当前数据库的数据量大于数据量阈值范围上限时,减小线程启动周期;当前数据库的数据量小于数据量阈值范围下限时,增大线程启动周期。
扩展模块,用于预先为数据扩展数据状态的属性,其中数据状态可以通过数据、字母和字符中的一个或任意组合进行标识。
本发明的数据处理装置是和数据处理方法对应,因此,数据处理装置具体的实现细节可参看数据处理方法,在此不赘述。
本发明通过对数据库中的数据增加数据状态属性,新启动的线程将只会获取上个获取时间点后新进入数据库数据,并进行数据状态的更新,因此不同的线程只处理本身更新数据状态的数据,对于没有更新过数据状态的数据,不相互竞争,从而可以保证数据的被多线程依次不重复处理,提高数据处理的效率。
应当理解,虽然本说明书根据实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (8)

1.一种数据处理方法,其特征在于,包括:预先设置线程启动周期;
根据所述线程启动周期,启动线程;
所述线程获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;
所述线程获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;
所述线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态;
其中,所述预先设置线程启动周期包括:
通过java语言的定时代码设置线程启动周期;
所述方法还包括:预先设置数据库的数据量阈值范围;
如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
2.根据权利要求1所述的方法,其特征在于,所述线程获取当前数据库中数据的数据状态之前还包括:
预先为数据扩展数据状态的属性;
所述数据状态通过数据或字母或字符进行标识。
3.根据权利要求1所述的方法,其特征在于,所述当前数据库中的数据根据进入数据库的时间进行排序;
所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述将所述数据的数据状态从待处理状态更新为已处理状态之后还包括:
所述线程处理完成获取的所有数据后,释放所述线程所占的资源。
5.一种数据处理装置,其特征在于,包括:
设置模块,用于预先设置线程启动周期;
启动模块,用于根据所述线程启动周期,启动线程;
线程,用于获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态;
所述设置模块,具体用于通过java语言的定时代码设置线程启动周期;
所述设置模块,还用于预先设置数据库的数据量阈值范围;
所述装置还包括:调整模块,用于如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:扩展模块,用于预先为数据扩展数据状态的属性,其中所述数据状态通过数据或字母或字符进行标识。
7.根据权利要求5所述的装置,其特征在于,所述当前数据库中的数据根据进入数据库的时间进行排序;
所述线程获取数据库中数据状态为初始状态的数据,具体为:所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
8.根据权利要求5~7中任一项所述的装置,其特征在于,所述线程还用于处理完成获取的所有数据后,释放所述线程所占的资源。
CN201410664691.5A 2014-11-19 2014-11-19 数据处理方法和装置 Active CN104376086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410664691.5A CN104376086B (zh) 2014-11-19 2014-11-19 数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410664691.5A CN104376086B (zh) 2014-11-19 2014-11-19 数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN104376086A CN104376086A (zh) 2015-02-25
CN104376086B true CN104376086B (zh) 2018-09-11

Family

ID=52554993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410664691.5A Active CN104376086B (zh) 2014-11-19 2014-11-19 数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN104376086B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700938B (zh) * 2016-01-15 2019-02-19 浪潮通用软件有限公司 一种多线程处理数据的方法及装置
CN106445703A (zh) * 2016-09-22 2017-02-22 济南浪潮高新科技投资发展有限公司 一种解决数据传输中防并发脏读方法
CN109408286A (zh) * 2018-09-17 2019-03-01 北京京东金融科技控股有限公司 数据处理方法、装置、系统、计算机可读存储介质
CN112163002A (zh) * 2020-09-28 2021-01-01 广东巴金斯科技有限公司 一种跨境电商通关数据的处理方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702676A (zh) * 2009-11-23 2010-05-05 深圳华为通信技术有限公司 数据缓冲处理的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725066B1 (ko) * 2005-08-02 2007-06-08 한미아이티 주식회사 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법
CN101950301A (zh) * 2010-09-26 2011-01-19 北京飞天诚信科技有限公司 数据处理的方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702676A (zh) * 2009-11-23 2010-05-05 深圳华为通信技术有限公司 数据缓冲处理的方法和装置

Also Published As

Publication number Publication date
CN104376086A (zh) 2015-02-25

Similar Documents

Publication Publication Date Title
CN104376086B (zh) 数据处理方法和装置
US10311115B2 (en) Object search method and apparatus
JP2017188137A5 (zh)
EP2784711A3 (en) Terminal device and terminal control program
CN104462236A (zh) 一种基于大数据的伴随车辆识别方法和装置
CN106412072B (zh) 一种业务处理方法及装置
EP2955642A3 (en) Method and apparatus for concurrent access of mixed services
CN107832440B (zh) 一种数据挖掘方法、装置、服务器及计算机可读存储介质
RU2015134855A (ru) Способ и устройство для оптимизации плана распределения ресурсов
CN105069063A (zh) 图片搜索方法及装置
CN104715076B (zh) 一种多线程数据处理方法及装置
CN106779582B (zh) 一种tws流程配置方法及装置
CN103955498A (zh) 一种搜索引擎创建方法及装置
EP2838042A3 (en) Method for classifying and correlating simulation components to functional models
CN105447064B (zh) 一种电子地图数据制作及其使用方法和装置
CN104794179A (zh) 一种基于知识树的视频快速标引方法及装置
CN102332048B (zh) 集成电路设计过程中单节点并行自动修复保持时间违例的方法
CN103530742B (zh) 提高排程运算速度的方法及装置
CN104199096B (zh) 一种地震数据体层位面提取方法及装置
CN107784588A (zh) 保险用户信息合并方法和装置
CN104866413B (zh) 多进程测试的方法及装置
CN106557564A (zh) 一种对象数据分析方法及装置
CN104021071A (zh) 进程生命周期的获取方法及系统
CN109408538B (zh) 云平台中自动发放云组件实现大规模融合查询方法及系统
CN106815034A (zh) 一种数据升级方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant