CN109542595A - 一种数据采集方法、装置和系统 - Google Patents
一种数据采集方法、装置和系统 Download PDFInfo
- Publication number
- CN109542595A CN109542595A CN201710860199.9A CN201710860199A CN109542595A CN 109542595 A CN109542595 A CN 109542595A CN 201710860199 A CN201710860199 A CN 201710860199A CN 109542595 A CN109542595 A CN 109542595A
- Authority
- CN
- China
- Prior art keywords
- collected
- database
- subtask
- child node
- node
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据采集方法、装置和系统,数据采集系统中包括主节点,多个子节点,以及数据库,主节点可以根据数据采集任务生成多个子任务,由于具有与主节点和多个子节点均相连的数据库,故主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种数据采集方法、装置和系统。
背景技术
目前很多数据处理、数据分析任务都需要依据通过在网络中采集的相关信息实现,对互联网数据进行采集需要通过特定的方式,例如网络爬虫就属于进行互联网数据采集的一种常用技术。
用于进行互联网数据采集的分布式数据采集系统一般包括多台服务器,服务器之间采用的是主从式的架构方式,作为主节点的服务器与多台作为子节点的服务器之间需要保持心跳连接,通过心跳连接所传输的信息,主节点可以明确子节点的负载情况,当需要执行数据采集任务时,主节点可以选择负载较轻的子节点来处理。
但是,为了维持数据采集系统,主节点需要消耗大量系统资源来实时监控各个子节点的负载情况以及维护与子节点之间的连接,导致主节点的负担过重。
发明内容
为了解决上述技术问题,本发明提供了一种数据采集方法、装置和系统,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
本发明实施例公开了如下技术方案:
第一方面,本发明实施例提供了一种数据采集方法,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,所述方法包括:
所述主节点根据数据采集任务生成多个子任务;
所述主节点将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务以及对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象。
可选的,还包括:
所述主节点从所述数据库读取所述多个子任务被子节点处理的处理记录。
可选的,所述待采集目标队列包括待采集统一资源定位符URL队列,所述待采集URL队列中包括需要被采集数据的URL地址。
可选的,存储在所述数据库的所述多个子任务具有与用户标识之间的对应关系,所述用户标识是发送所述数据采集参数的用户的标识。
第二方面,本发明实施例提供了一种数据采集装置,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,所述装置包括生成单元和存储单元:
所述生成单元,用于所述主节点根据数据采集任务生成多个子任务;
所述存储单元,用于所述主节点将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务以及对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象。
可选的,还包括读取单元:
所述读取单元,用于所述主节点从所述数据库读取所述多个子任务被子节点处理的处理记录。
可选的,所述待采集目标队列包括待采集统一资源定位符URL队列,所述待采集URL队列中包括需要被采集数据的URL地址。
可选的,存储在所述数据库的所述多个子任务具有与用户标识之间的对应关系,所述用户标识是发送所述数据采集参数的用户的标识。
第三方面,本发明实施例提供了一种数据采集方法,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述方法包括:
所述目标子节点从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;
所述目标子节点根据所述数据采集任务对应的待采集目标队列处理所述子任务,所述待采集目标队列存储在所述数据库中,所述待采集目标队列中记录有待采集数据对应的目标对象。
可选的,还包括:
所述目标子节点将根据处理所述子任务得到的待采集目标更新到所述待采集目标队列中。
可选的,还包括:
所述目标子节点将处理所述子任务的处理记录对应保存到所述数据库中。
可选的,还包括:
所述目标子节点将通过处理所述子任务采集到的数据上传到存储空间中。
第四方面,本发明实施例提供了一种数据采集装置,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述装置包括获取单元和处理单元:
所述获取单元,用于所述目标子节点从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;
所述处理单元,用于所述目标子节点根据所述数据采集任务对应的待采集目标队列处理所述子任务,所述待采集目标队列存储在所述数据库中,所述待采集目标队列中记录有待采集数据对应的目标对象。
可选的,还包括更新单元:
所述更新单元,用于所述目标子节点将根据处理所述子任务得到的待采集目标更新到所述待采集目标队列中。
可选的,还包括保存单元:
所述保存单元,用于所述目标子节点将处理所述子任务的处理记录对应保存到所述数据库中。
可选的,还包括上传单元:
所述上传单元,用于所述目标子节点将通过处理所述子任务采集到的数据上传到存储空间中。
第五方面,本发明实施例提供了一种数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述系统包括:
所述主节点,用于根据数据采集任务生成得到多个子任务;将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务以及对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象;
所述目标子节点,用于从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;根据所述数据采集任务对应的待采集目标队列处理所述子任务。
由上述技术方案可以看出,数据采集系统中包括主节点,多个子节点,以及数据库,主节点可以根据数据采集任务生成多个子任务,由于具有与主节点和多个子节点均相连的数据库,故区别于传统方式,主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据采集系统的系统结构图;
图2为本发明实施例提供的一种数据采集方法的信令示意图;
图3为本发明实施例提供的一种数据采集装置的装置结构图;
图4为本发明实施例提供的一种数据采集装置的装置结构图;
图5为本发明实施例提供的一种数据采集系统的系统结构图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
传统的数据采集系统中,作为子节点的服务器需要与作为主节点的服务器之间建立心跳连接。主节点一般数量较少,例如一般只有一到两个,而子节点数量较多,由于主节点需要负责分配由数据采集任务所生成的子任务,故主节点需要实时监控子节点的负载状态,以便能够将子任务分配给负载较轻的子节点进行处理。为此,主节点需要维护与子节点间的连接,以便获取主节点实时的负载情况,但是,在子节点的数量较多时,维护连接和监控负载状态将会需要主节点消耗过多的系统资源,提高了主节点的负担。
为此,本发明实施例提供了一种数据采集方法、装置和系统,如图1所示,数据采集系统可以包括主节点100,多个子节点200,以及数据库300,主节点100和子节点200可以是具有数据处理能力的网络设备,例如可以是计算机、服务器等,数据库300可以是内存型数据库,例如可以是Redis,Redis属于一种键-值(key-value)数据库。
在该数据采集系统中,主节点100可以是一个,有些情况下也可以有多个,主节点100并不需要与子节点200之间建立心跳连接,而是与数据库300通信连接,多个子节点200也均与数据库300通信连接,通过数据库300所提供的存储空间,区别于传统方式,主节点100可以将子任务以及数据采集任务对应的待采集目标队列保存在数据库300中,而子节点200可以主动从数据库300中获取未处理的子任务进行处理。处理的过程相当于在待采集目标进行对应的数据采集,以希望待采集目标采集到与数据采集任务或者说与子任务相关的数据。
可见,主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
接下来描述本发明实施例提供的数据采集方法,图2为本发明实施例提供的一种数据采集方法的信令示意图,应用于数据采集系统,所述方法包括:
S201:主节点根据数据采集任务生成多个子任务。
其中,该数据采集任务可以是主节点预先获取的,也可以是事先配置好的,也可以是有该主节点生成的。
在由主节点生成数据采集任务的情况中,该数据采集任务可以主节点根据预先获取的数据采集参数所生成的。主节点所获取的数据采集参数可以是预先设置的,也可以是由用户提供的,该数据采集参数中可以包括需要被采集数据的对象被采集数据的对象,例如新浪首页的网页地址,还可以包括与本次数据采集相关的描述信息等,例如所需采集数据的特征等。当该数据采集参数是由用户提供的情况时,用户可以通过该数据采集系统提供的用户页面或客户端等渠道输入数据采集所需的数据采集信息,主节点可以通过用户页面或客户端获取该数据采集信息。
主节点可以根据可处理线程的数量或者系统的处理能力确定根据数据采集任务生成多少个子任务,也可以生成预设个数的子任务。
一个子任务中相当于包含了该数据采集任务的一部分任务内容,多个子任务可以被多个子节点并行执行,也可以在处理线程足够时,被同一个子节点并行执行。例如当数据采集系统具体为网络爬虫系统时,主节点可以根据数据采集参数生成爬虫任务(job),并根据该爬虫任务生成多个对应的爬虫子任务(task)。
S202:所述主节点将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便该多个子节点从所述数据库获取子任务及其对应的目标对象进行数据采集。
主节点还可以获得数据采集任务对应的待采集目标队列,该待采集目标队列中记录有待采集数据对应的目标对象,其中待采集目标用于指示各子节点获取需要被采集数据的对象,该需要被采集数据的对象用于标识需要被采集数据的网络位置,例如用户希望采集的网页地址、互联网协议(Internet Protocol,IP)地址等。本发明实施例提供了一种常见的待采集目标队列以及待采集目标的形式,可选的,待采集目标队列包括待采集统一资源定位符(Uniform Resource Locator,URL)队列,该待采集URL队列中包括需要被采集数据的URL地址。
该待采集目标队列可以是由用户提供的,也可以是在生成数据采集任务的过程的生成或完善的,该待采集目标队列也可以在子任务被处理的过程中被实时更新。例如用户提供的数据采集参数中,待采集目标仅包括新浪主页的URL地址,但是新浪主页上除了当页展示的内容外,还包括了很多超链接,这些超链接会指向其他网页地址,例如新浪体育,新浪新闻等,指向的其他网页地址中同样也会可能包括指向更多网页的超链接,在数据采集过程中,可能会确定出越来越多的网页地址,而这些网页地址都可以作为本次数据采集任务对应的待采集目标。在子节点处理子任务的过程中,可以将这些新确定出的待采集目标更新到待采集目标队列中,可以根据新确定出的待采集目标的重要程度或者优先级选择将其放在队列中的位置,例如队头或队尾的位置。
需要注意的是,由于不同网页中超链接所指向的网页地址可能是相同的,故将这些新确定的待采集目标排列到待采集队列中时,有可能导致待采集队列中出现重复的待采集目标,例如相同的网页地址,若不对这些重复的待采集目标进行去重,由于待采集队列中有多个相同的待采集地址,将会导致相同的待采集目标被重复的进行数据采集,导致系统的资源浪费。
该待采集目标队列保存在数据库中,当该数据库为内存型数据库例如Redis时,由于Redis中的队列具有去重功能,故Redis会主动对该待采集目标队列中的待采集目标进行去重,以避免出现重复的待采集目标,从而可以避免在处理子任务时,对相同的一个待采集目标进行了多次的数据采集,提高了数据采集的效率。而且,由于Redis中针对队列内的排序,一般采取将优先级较高的元素排布在更为靠近队头位置的方式,故当将待采集目标队列保存到Redis中时,Redis可以自动根据优先级的高低调整各个待采集目标在待采集目标队列中的位置,例如可以将具有较高优先级的待采集目标放到待采集队列的队头位置,将优先级较低的待采集目标放到队尾位置,由于子节点一般是从待采集目标队列中顺序调取待采集目标进行数据采集,故Redis这种调整方式保证了高优先级的待采集目标可以优先被进行数据采集,提高了数据采集的效率。
主节点除了会将子任务和待采集目标队列保存在数据库中外,还可以将数据采集任务保存在数据库中,例如当数据采集任务是周期性任务时,在周期时间到达时,主节点需要从数据库中读取这个数据采集任务的信息并再次生成多个子任务。并由子节点处理该多个子任务以实现周期性的数据采集工作。
接下来,将以与数据库通信连接的多个子节点中的一个,即目标子节点为例说明本发明实施例中子节点在数据采集系统中的功能和作用。
S203:目标子节点从所述数据库中获取子任务,所述子任务为根据数据采集任务生成得到的多个子任务中未被处理的一个。
举例说明,本发明实施例并不限定一个子节点一次只能从数据库中获取一个子任务进行处理,子节点也可以根据自身的线程数量、处理能力等从数据库中获取多个子任务进行并行处理。这里主要为了说明清楚,故以一个子任务为例。
S204:目标子节点根据数据采集任务对应的待采集目标队列处理所述子任务。
该多个子任务是通过该数据采集任务生成的,可以共享该待采集目标队列中的待采集目标,当目标子节点在处理子任务时,可以从待采集目标队列中取出待采集目标进行数据采集,取待采集目标的方式可以是顺序选取,也可以是随机选取,对该待采集目标中的内容完成数据采集后,或新确定出其他的待采集目标,可以将新确定出的待采集目标排列到待采集目标队列中。
可见,区别于传统方式,主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
而且,在传统方式中,由于主节点与子节点之间的耦合关系,每当需要增加子节点时,都需要在主节点上进行注册,并建立主节点和这个子节点之间的心跳连接,这些操作都需要依据主节点参与处理才能完成,故并不利于在数据采集系统对子节点进行动态扩展。而本发明实施例中,由于解除了主节点与子节点之间的耦合关系,且子节点是与数据库建立连接的,故当需要增加子节点时,将需要增加的子节点直接登录数据库就可以了,无需传统方式中注册,建立心跳连接的操作,从而实现了数据采集系统的动态扩展功能,提高了数据采集系统的适应范围。
在数据采集系统中,子节点除了可以处理子任务,还可以将处理子任务的处理记录保存到数据库中。接下来依然以该目标子节点为例进行说明,该目标子节点将处理所述子任务的处理记录对应保存到所述数据库中。
在保存该子任务的处理记录时,可以建立与该子任务之间的关联,以便在主节点或用户查看时,能够明确该处理记录所展示的内容是属于哪一个子任务的。该子任务的处理记录所提供的是该子任务处理过程中的各种相关信息,可以包括目标子节点在处理该子任务的过程中,该子任务的运行状态信息、运行错误信息、已进行数据采集的URL地址的数量(具体的还可以细化包括成功完成数据采集的URL地址的数量、数据采集失败的URL地址的数量等)等。目标子节点可以在数据库中实时的更新针对该子任务的处理记录,从而可以通过处理记录展示出该子任务的处理情况、处理进度。
目标子节点除了可以在数据库中保存处理记录以外,还可以将通过处理所述子任务采集到的数据上传到存储空间中。
由于目标子节点进行的是数据采集操作,故当目标子节点通过处理子任务,可以在待采集目标采集到本次数据采集任务所需的数据,这些数据可以保存在指定的存储空间中,以便后续使用。该存储空间的位置可以是预先确定的,使用哪一种存储结构、类型的存储空间也可以预先指定,例如关系型数据库服务(Relational Database Service,RDS)的存储空间,ODPS(一种分布式的海量数据处理平台),运营支撑系统(The Office ofStrategic Services,OSS)等。
例如,当数据采集参数是由用户通过用户界面或客户端输入时,用户还可以指定所采集到的数据保存在哪一种存储空间中,或者存储的具体位置等,从而,当数据采集任务完成后,用户可以在之前指定的存储空间或者存储位置获取采集到的数据。
主节点除了需要将子任务、待采集目标队列等保存到数据库以外,该可以从该数据库读取多个子任务被子节点处理的处理记录。读取处理记录的触发条件可以是周期性的数据收集,也可以是用户通过用户页面或客户端发出的查看请求,也可以是主节点的管理员主动执行。通过读取多个子节点的处理记录,主节点可以明确各个子节点所处理子任务的处理情况,以及该数据处理任务的整体完成情况等以供查看。
当数据采集参数是由用户通过用户界面或客户端输入时,还可以在数据库中将该用户的用户标识与子任务之间进行绑定,这样,存储在数据库的多个子任务具有与用户标识之间的对应关系。由于子节点会将处理子任务的处理记录保存在数据库中,故当该用户登录到数据采集系统对应的用户页面或用户系统时,可以申请查看该数据采集任务的采集情况,而主节点可以将获取的与该用户标识具有对应关系的处理记录反馈给该用户,例如数据采集任务的运行状态、运行详情、子任务运行状态、运行日志等信息通过webservice接口传递给管理门户,以便该用户查看查看与其用户标识具有对应关系的各个子任务的处理记录,从而可以准确的了解数据处理任务的处理进度,提高了用户体验。除了可以绑定用户标识与子任务的对应关系,还可以绑定与数据处理任务的对应关系。
图3为本发明实施例提供了一种数据采集装置的装置结构图,所述装置应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,所述装置包括生成单元301和存储单元302:
所述生成单元301,用于所述主节点根据数据采集任务生成多个子任务;
所述存储单元302,用于所述主节点将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务及其对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象。
可选的,还包括读取单元:
所述读取单元,用于所述主节点从所述数据库读取所述多个子任务被子节点处理的处理记录。
可选的,所述待采集目标队列包括待采集统一资源定位符URL队列,所述待采集URL队列中包括需要被采集数据的URL地址。
可选的,存储在所述数据库的所述多个子任务具有与用户标识之间的对应关系,所述用户标识是发送所述数据采集参数的用户的标识。
需要注意的是,图3所对应实施例中的特征均可以参见图1-2所对应实施例中相关特征的相关描述,这里不再赘述。
可见,区别于传统方式,主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
图4为本发明实施例提供了一种数据采集装置的装置结构图,所述装置应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述装置包括获取单元401和处理单元402:
所述获取单元401,用于所述目标子节点从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;
所述处理单元402,用于所述目标子节点根据所述数据采集任务对应的待采集目标队列处理所述子任务,所述待采集目标队列存储在所述数据库中,所述待采集目标队列中记录有待采集数据对应的目标对象。
可选的,还包括更新单元:
所述更新单元,用于所述目标子节点将根据处理所述子任务得到的待采集目标更新到所述待采集目标队列中。
可选的,还包括保存单元:
所述保存单元,用于所述目标子节点将处理所述子任务的处理记录对应保存到所述数据库中。
可选的,还包括上传单元:
所述上传单元,用于所述目标子节点将通过处理所述子任务采集到的数据上传到存储空间中。
需要注意的是,图4所对应实施例中的特征均可以参见图1-2所对应实施例中相关特征的相关描述,这里不再赘述。
可见,区别于传统方式,主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
图5为本发明实施例提供了一种数据采集系统的系统结构图,所述数据采集系统包括主节点501,多个子节点,以及数据库,所述主节点501和所述多个子节点均与所述数据库通信连接,目标子节点502为所述多个子节点中的任意一个,所述系统包括:
所述主节点501,用于根据所述数据采集任务生成多个子任务;将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务以及对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象;
所述目标子节点502,用于从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;根据所述数据采集任务对应的待采集目标队列处理所述子任务。
需要注意的是,图5所对应实施例中的特征均可以参见图1-2所对应实施例中相关特征的相关描述,这里不再赘述。
可见,区别于传统方式,主节点并不需要与子节点建立连接以便实时监控各个子节点的负载情况,而可以只需将生成的子任务以及数据采集任务对应的待采集目标队列保存到与子节点相连的该数据库中,子节点可以主动从该数据库中获取未处理的子任务进行处理,可见通过设置的数据库,解除了主节点和子节点之间的耦合,主节点不再需要消耗额外的系统资源来监控各个子节点的负载状态以及维护连接,降低了主节点的负担。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明的一种具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (17)
1.一种数据采集方法,其特征在于,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,所述方法包括:
所述主节点根据数据采集任务生成多个子任务;
所述主节点将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务及其对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述主节点从所述数据库读取所述多个子任务被子节点处理的处理记录。
3.根据权利要求1或2所述的方法,其特征在于,所述待采集目标队列包括待采集统一资源定位符URL队列,所述待采集URL队列中包括需要被采集数据的URL地址。
4.根据权利要求1或2所述的方法,其特征在于,存储在所述数据库的所述多个子任务具有与用户标识之间的对应关系,所述用户标识是发送所述数据采集参数的用户的标识。
5.一种数据采集装置,其特征在于,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,所述装置包括生成单元和存储单元:
所述生成单元,用于所述主节点根据数据采集任务生成多个子任务;
所述存储单元,用于所述主节点将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务及其对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象。
6.根据权利要求5所述的装置,其特征在于,还包括读取单元:
所述读取单元,用于所述主节点从所述数据库读取所述多个子任务被子节点处理的处理记录。
7.根据权利要求5或6所述的装置,其特征在于,所述待采集目标队列包括待采集统一资源定位符URL队列,所述待采集URL队列中包括需要被采集数据的URL地址。
8.根据权利要求5或6所述的装置,其特征在于,存储在所述数据库的所述多个子任务具有与用户标识之间的对应关系,所述用户标识是发送所述数据采集参数的用户的标识。
9.一种数据采集方法,其特征在于,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述方法包括:
所述目标子节点从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;
所述目标子节点根据所述数据采集任务对应的待采集目标队列处理所述子任务,所述待采集目标队列存储在所述数据库中,所述待采集目标队列中记录有待采集数据对应的目标对象。
10.根据权利要求9所述的方法,其特征在于,还包括:
所述目标子节点将根据处理所述子任务得到的待采集目标更新到所述待采集目标队列中。
11.根据权利要求9所述的方法,其特征在于,还包括:
所述目标子节点将处理所述子任务的处理记录对应保存到所述数据库中。
12.根据权利要求9所述的方法,其特征在于,还包括:
所述目标子节点将通过处理所述子任务采集到的数据上传到存储空间中。
13.一种数据采集装置,其特征在于,应用于数据采集系统,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述装置包括获取单元和处理单元:
所述获取单元,用于所述目标子节点从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;
所述处理单元,用于所述目标子节点根据所述数据采集任务对应的待采集目标队列处理所述子任务,所述待采集目标队列存储在所述数据库中,所述待采集目标队列中记录有待采集数据对应的目标对象。
14.根据权利要求13所述的装置,其特征在于,还包括更新单元:
所述更新单元,用于所述目标子节点将根据处理所述子任务得到的待采集目标更新到所述待采集目标队列中。
15.根据权利要求13所述的装置,其特征在于,还包括保存单元:
所述保存单元,用于所述目标子节点将处理所述子任务的处理记录对应保存到所述数据库中。
16.根据权利要求13所述的装置,其特征在于,还包括上传单元:
所述上传单元,用于所述目标子节点将通过处理所述子任务采集到的数据上传到存储空间中。
17.一种数据采集系统,其特征在于,所述数据采集系统包括主节点,多个子节点,以及数据库,所述主节点和所述多个子节点均与所述数据库通信连接,目标子节点为所述多个子节点中的任意一个,所述系统包括:
所述主节点,用于根据数据采集任务生成多个子任务;将所述多个子任务以及所述数据采集任务对应的待采集目标队列存储至所述数据库中,以便所述多个子节点从所述数据库获取子任务以及对应的目标对象进行数据采集;其中,所述待采集目标队列中记录有待采集数据对应的目标对象;
所述目标子节点,用于从所述数据库中获取子任务,所述子任务为根据数据采集任务生成的多个子任务中未被处理的一个;根据所述数据采集任务对应的待采集目标队列处理所述子任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860199.9A CN109542595B (zh) | 2017-09-21 | 2017-09-21 | 一种数据采集方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860199.9A CN109542595B (zh) | 2017-09-21 | 2017-09-21 | 一种数据采集方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542595A true CN109542595A (zh) | 2019-03-29 |
CN109542595B CN109542595B (zh) | 2023-02-24 |
Family
ID=65828242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710860199.9A Active CN109542595B (zh) | 2017-09-21 | 2017-09-21 | 一种数据采集方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542595B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225102A (zh) * | 2019-05-23 | 2019-09-10 | 北京小米移动软件有限公司 | 推送信息的方法、设备及系统 |
CN110262888A (zh) * | 2019-06-26 | 2019-09-20 | 京东数字科技控股有限公司 | 任务调度方法和装置及计算节点执行任务的方法和装置 |
CN110866166A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化系统 |
CN110874429A (zh) * | 2019-11-14 | 2020-03-10 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化方法 |
CN111324508A (zh) * | 2020-02-04 | 2020-06-23 | 联想(北京)有限公司 | 一种分布式集群的监控方法、装置、系统及存储介质 |
CN111580946A (zh) * | 2020-04-28 | 2020-08-25 | 北京达佳互联信息技术有限公司 | 端口扫描方法、装置、设备及存储介质 |
CN111638964A (zh) * | 2020-06-09 | 2020-09-08 | 武汉虹旭信息技术有限责任公司 | 一种集中式互联网数据采集系统及采集方法 |
CN112667901A (zh) * | 2020-12-31 | 2021-04-16 | 中国电子信息产业集团有限公司第六研究所 | 一种社交媒体数据的获取方法及系统 |
CN112835763A (zh) * | 2021-01-29 | 2021-05-25 | 北京滴普科技有限公司 | 一种集群多租户监控方法、系统及其可读存储介质 |
CN114201537A (zh) * | 2022-02-17 | 2022-03-18 | 深圳市聚能优电科技有限公司 | 储能数据的采集存储方法、系统、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302683A (ja) * | 2003-03-28 | 2004-10-28 | Toshiba Corp | 文書管理システム、文書生成方法、登録方法およびプログラム |
US20110145378A1 (en) * | 2009-12-10 | 2011-06-16 | Electronics And Telecommunications Research Institute | Operating method of network node of network with tree structure based on distributed address assignment and network forming method |
CN103380608A (zh) * | 2011-03-09 | 2013-10-30 | 中国科学院计算机网络信息中心 | 在计算环境中汇聚队列信息及作业信息的方法 |
CN105447097A (zh) * | 2015-11-10 | 2016-03-30 | 北京北信源软件股份有限公司 | 数据采集方法及系统 |
US20160283335A1 (en) * | 2015-03-24 | 2016-09-29 | Xinyu Xingbang Information Industry Co., Ltd. | Method and system for achieving a high availability and high performance database cluster |
CN106126346A (zh) * | 2016-07-05 | 2016-11-16 | 东北大学 | 一种大规模分布式数据采集系统及方法 |
CN206149327U (zh) * | 2016-11-22 | 2017-05-03 | 北京万方数据股份有限公司 | 一种信息云管理平台及企业信息系统 |
-
2017
- 2017-09-21 CN CN201710860199.9A patent/CN109542595B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302683A (ja) * | 2003-03-28 | 2004-10-28 | Toshiba Corp | 文書管理システム、文書生成方法、登録方法およびプログラム |
US20110145378A1 (en) * | 2009-12-10 | 2011-06-16 | Electronics And Telecommunications Research Institute | Operating method of network node of network with tree structure based on distributed address assignment and network forming method |
CN103380608A (zh) * | 2011-03-09 | 2013-10-30 | 中国科学院计算机网络信息中心 | 在计算环境中汇聚队列信息及作业信息的方法 |
US20160283335A1 (en) * | 2015-03-24 | 2016-09-29 | Xinyu Xingbang Information Industry Co., Ltd. | Method and system for achieving a high availability and high performance database cluster |
CN105447097A (zh) * | 2015-11-10 | 2016-03-30 | 北京北信源软件股份有限公司 | 数据采集方法及系统 |
CN106126346A (zh) * | 2016-07-05 | 2016-11-16 | 东北大学 | 一种大规模分布式数据采集系统及方法 |
CN206149327U (zh) * | 2016-11-22 | 2017-05-03 | 北京万方数据股份有限公司 | 一种信息云管理平台及企业信息系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225102A (zh) * | 2019-05-23 | 2019-09-10 | 北京小米移动软件有限公司 | 推送信息的方法、设备及系统 |
CN110262888A (zh) * | 2019-06-26 | 2019-09-20 | 京东数字科技控股有限公司 | 任务调度方法和装置及计算节点执行任务的方法和装置 |
CN110262888B (zh) * | 2019-06-26 | 2020-11-20 | 京东数字科技控股有限公司 | 任务调度方法和装置及计算节点执行任务的方法和装置 |
CN110866166A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化系统 |
CN110874429A (zh) * | 2019-11-14 | 2020-03-10 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化方法 |
CN111324508A (zh) * | 2020-02-04 | 2020-06-23 | 联想(北京)有限公司 | 一种分布式集群的监控方法、装置、系统及存储介质 |
CN111580946A (zh) * | 2020-04-28 | 2020-08-25 | 北京达佳互联信息技术有限公司 | 端口扫描方法、装置、设备及存储介质 |
CN111638964A (zh) * | 2020-06-09 | 2020-09-08 | 武汉虹旭信息技术有限责任公司 | 一种集中式互联网数据采集系统及采集方法 |
CN112667901A (zh) * | 2020-12-31 | 2021-04-16 | 中国电子信息产业集团有限公司第六研究所 | 一种社交媒体数据的获取方法及系统 |
CN112667901B (zh) * | 2020-12-31 | 2024-04-26 | 中国电子信息产业集团有限公司第六研究所 | 一种社交媒体数据的获取方法及系统 |
CN112835763A (zh) * | 2021-01-29 | 2021-05-25 | 北京滴普科技有限公司 | 一种集群多租户监控方法、系统及其可读存储介质 |
CN114201537A (zh) * | 2022-02-17 | 2022-03-18 | 深圳市聚能优电科技有限公司 | 储能数据的采集存储方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109542595B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542595A (zh) | 一种数据采集方法、装置和系统 | |
KR101925696B1 (ko) | 대규모 데이터 스트림들의 획득, 저장, 및 소비를 위한 관리 서비스 | |
TWI360323B (en) | Computer-executable method of remote execution of | |
US8990382B2 (en) | Problem determination in distributed enterprise applications | |
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
US7917541B2 (en) | Collecting and aggregating data using distributed resources | |
US20150134795A1 (en) | Data stream ingestion and persistence techniques | |
WO2019068002A1 (en) | INFRASTRUCTURE OF INDEPENDENT AUTONOMOUS DATABASE BASED CLOUD SERVICES | |
DE112016001075T5 (de) | Verteiltes speichern und abrufen von datensätzen | |
WO2015138198A1 (en) | High performance distributed computing environment particularly suited for reservoir modeling and simulation | |
CN104391697B (zh) | 应用程序的云资源管理系统和方法 | |
CN107370796A (zh) | 一种基于Hyper TF的智能学习系统 | |
CN102761602A (zh) | 一种基于Hadoop的海量数据实时分析处理方法 | |
CN108989390A (zh) | 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质 | |
EP2634699B1 (en) | Application monitoring | |
US20170091283A1 (en) | Smart tuple condition-based operation performance | |
Vöckler et al. | Kickstarting remote applications | |
Chard et al. | An automated tool profiling service for the cloud | |
CN107562426A (zh) | 无埋点式云端收集分析浏览器Trace的方法及系统 | |
US11831485B2 (en) | Providing selective peer-to-peer monitoring using MBeans | |
CN108696559A (zh) | 流处理方法及装置 | |
JPWO2008117339A1 (ja) | 計算ジョブ情報管理装置、端末、および、計算ジョブ情報管理システム | |
Grigoras et al. | MonALISA-based Grid monitoring and control | |
CN109257256A (zh) | 设备监控方法、装置、计算机设备及存储介质 | |
CN114282620A (zh) | 一种多源信息物理孪生数据融合管理方法与管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |