CN108268543B - 数据库采集方法和装置 - Google Patents
数据库采集方法和装置 Download PDFInfo
- Publication number
- CN108268543B CN108268543B CN201611268707.6A CN201611268707A CN108268543B CN 108268543 B CN108268543 B CN 108268543B CN 201611268707 A CN201611268707 A CN 201611268707A CN 108268543 B CN108268543 B CN 108268543B
- Authority
- CN
- China
- Prior art keywords
- acquisition
- task
- database
- acquired
- thread
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库采集方法和装置。其中,该方法包括:当采集线程的运行状态为空闲状态时,采集线程向采集调度模块登记空闲状态,采集线程为多个数据库采集线程中的任一个;接收采集调度模块分配的待采集任务,待采集任务为采集调度模块通过轮询采集任务队列,从采集任务队列中匹配的一条最远时间点采集任务;采集线程将运行状态更新为工作状态并执行待采集任务。根据本发明实施例提供的方法和装置,可以实现多数据库采集任务的及时处理,避免多任务处理时的任务积压。
Description
技术领域
本发明涉及运营管理技术领域,尤其涉及数据库采集方法和装置。
背景技术
随着移动通信业务复杂度不断提高,业务系统日趋复杂,业务系统一般采用分域建设,每个域都会建设单独的数据库。这样,业务指标分布于各业务域的数据库中,而业务运营管理中心为实现对数据的采集,就需要连接多个数据库。
在面向多个数据库的数据采集过程中,通常针对每个数据库通过单独的程序处理对应的业务域的业务指标的采集,即每个进程负责一个数据库的信息采集,这样的配置方式虽然比较简单,但是大大增加了业务运营管理中心对数据库采集进程管理的复杂度。同时,单进程的处理很容易会产生采集任务积压,当某个采集任务耗时较长时,其后面的待采任务将得不到及时处理,导致数据采集延迟。
发明内容
本发明实施例提供一种数据库采集方法和装置,可以实现多数据库采集任务的及时处理,避免多任务处理时的任务积压。
根据本发明实施例的一方面,提供一种数据库采集方法,该方法包括:当采集线程的运行状态为空闲状态时,采集线程向采集调度模块登记空闲状态,采集线程为多个数据库采集线程中的任一个;接收采集调度模块分配的待采集任务,待采集任务为采集调度模块通过轮询采集任务队列并从采集任务队列中匹配到的一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远;采集线程将运行状态更新为工作状态并执行待采集任务。
根据本发明实施例的另一方面,提供一种数据库采集方法,该方法包括:获取登记为空闲状态的采集线程,采集线程为多个数据库采集线程中的任一个;轮询采集任务队列,从采集任务队列中匹配一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远;将匹配到的最远时间点采集任务分配给采集线程,并将匹配到的最远时间点采集任务的任务状态标记为已分配给采集线程。
根据本发明实施例的再一方面,提供一种数据库采集装置,该装置包括:线程运行状态登记模块,被配置为当采集线程的运行状态为空闲状态时,采集线程向采集调度模块登记空闲状态,采集线程为多个数据库采集线程中的任一个;任务接收模块,被配置为接收采集调度模块分配的待采集任务,待采集任务为采集调度模块通过轮询采集任务队列,从采集任务队列中匹配到一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且该时刻距离系统当前时刻最远;采集任务执行模块,被配置为采集线程将运行状态更新为工作状态并执行待采集任务。
根据本发明实施例的又一方面,提供一种数据库采集装置,该装置包括:空闲采集线程获取模块,被配置为获取登记为空闲状态的采集线程,采集线程为多个数据库采集线程中的任一个;采集任务轮询模块,被配置为轮询采集任务队列,从采集任务队列中匹配一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远;采集任务分配模块,被配置为将匹配到的最远时间点采集任务分配给采集线程,并将匹配到的最远时间点采集任务的任务状态标记为已分配给采集线程。
通过本发明实施例提供的数据库采集方法和装置,通过多线程动态轮询的任务方式,当采集线程为空闲状态时,该采集线程向采集调度模块登记空闲状态,采集调度模块从任务队列中轮询并匹配一条最远时间点的待采集任务分配给该采集线程,使该采集线程根据分配的采集任务执行数据采集。这样的处理方式可以保障并发环境下的多数据库采集任务能够被及时处理,并且有效避免多任务处理时的单点阻塞效应。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是示出本发明一实施例的数据库采集方法的流程图。
图2是示出本发明另一实施例的数据库采集方法的流程图。
图3是示出本发明再实施例的数据库采集方法的流程图。
图4是示出本发明一实施例的数据库采集装置的结构示意图。
图5是示出本发明另一实施例的数据库采集装置的结构示意图。
图6是示出本发明再实施例的数据库采集装置的结构示意图。
图7是示出能够实现根据本发明实施例的数据库采集方法和装置的计算设备的示例性硬件架构的结构图。
图8是示出业务支撑网运营管理系统中的各模块的架构关系和工作过程的示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本发明实施例中,BOMC(Business Operation Management Center),是中国移动业务支撑网运营管理系统的简称,为中国移动业务支撑网的运营管理水平提供有效支撑,针对移动业务支撑系统的运营管理。
下面结合附图,详细描述根据本发明实施例的数据库采集方法和装置。
图1是示出了本发明一实施例提供的数据库采集方法的流程图。如图1所示,本实施例中数据库采集方法100包括以下步骤:
步骤S110,当采集线程的运行状态为空闲状态时,采集线程向采集调度模块登记空闲状态,采集线程为多个数据库采集线程中的任一个。
步骤S120,接收采集调度模块分配的待采集任务,待采集任务为采集调度模块通过轮询采集任务队列,从采集任务队列中匹配的一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远。
步骤S130,采集线程将运行状态更新为工作状态并执行待采集任务。
根据本发明实施例的数据库采集方法,采集线程向采集调度模块登记空闲状态,接收并执行采集调度模块通过动态轮询得到的最远时间点采集任务,从而对多数据库采集任务及时处理。
在本发明实施例中,多个数据库采集线程之间相对独立,共用任务队列TaskQueue和采集调度模块TaskQuery,并且使用同一任务解析模块TaskAnalyze对待采集任务进行解析。
图2是示出了本发明另一实施例提供的数据库采集方法的流程图。图2与图1相同或等同的步骤使用相同的标号。
如图2所示,根据本发明实施例的数据库采集方法200包括:
步骤S110,当采集线程的运行状态为空闲状态时,采集线程向采集调度模块登记空闲状态,采集线程为多个数据库采集线程中的任一个。
作为一个示例,采集线程初始化或采集任务完成后,运行状态为空闲状态;采集线程向采集调度模块登记空闲状态,可以视为采集线程向采集调度模块发出采集任务分配请求。
作为一个示例,根据不同的采集任务指标,多个数据库可以是以下数据库中的至少一种:客户关系管理CRM数据库、BOSS数据库、开通数据库、客服数据库等。
步骤S120,接收采集调度模块分配的待采集任务,待采集任务为采集调度模块通过轮询采集任务队列并从采集任务队列中匹配到的一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远。
具体地,任务队列中匹配到的最远时间点采集任务需要同时满足以下两个条件。
第一,最远时间点采集任务需要满足last_time+time_interval>=sysdate,其中,last_time表示采集任务的上一次运行时刻,time_interval表示采集任务的采集时间间隔,sysdate表示系统当前时刻。也就是说,最远时间点采集任务需要满足:该采集任务的上一次运行时刻与采集时间间隔之和,与系统当前时刻相比,不早于该系统当前时刻。
第二,从任务处理的优先级来考虑,任务队列中一个采集任务的上一次运行时刻与采集时间间隔之和,超出系统当前时刻越长,则该采集任务被执行的优先级最高。也就是说,当任务队列中的一个采集任务与这个任务队列中的其他采集任务相比,该采集任务的上一次运行时刻与采集时间间隔之和,超出系统当前时刻最长,也就是说,该采集任务具有“最远时间点”,并将该采集任务作为匹配到的最远时间点采集任务。
作为一个示例,业务指标可以包括业务使用量、业务办理成功率和业务受理时长等业务信息,这些业务信息可以通过访问和业务信息有关的数据库来采集。
在步骤S120中,采集任务队列对采集任务进行配置管理,采集任务可以通过预定的管理界面进行配置和维护,单个或多个具有相同采集口径的业务指标对应一条配置记录。
步骤S130,采集线程执行待采集任务并将运行状态更新为工作状态。
在一些实施例中,步骤S130中执行待采集任务的步骤具体可以包括:
步骤S131,采集线程对待采集任务进行解析,得到待采集任务的配置信息中的待采集数据库的连接信息、一个或多个采集业务指标和与每个采集业务指标对应的采集语句。
作为一个示例,表1示意性的示出了采集任务所包括的配置信息。
表1
配置内容 | 字段属性 | 字段说明 |
db_conn | varchar2(60) | 连接数据库 |
kpi_obj | varchar2(300) | 业务指标 |
sql_txt | clob | 采集语句SQL |
last_time | date | 上一次运行时刻 |
time_interval | varchar2(250) | 采集时间间隔 |
this_time | number(5) | 本次采集时长 |
total_time | number(10) | 总计采集时长 |
total_num | number(8) | 总计采集次数 |
status | number(2) | 任务状态 |
在表1中,示意性的示出了任务队列中采集任务的一部分配置信息。表1中的last_time为待采集任务的上一次运行时刻,time_interval为采集时间间隔,基于last_time、time_interval与系统当前时刻可以匹配到处理优先级最高的采集任务,即最远时间点采集任务。
在上述实施例中,采集线程对待采集任务进行解析,通过解析得到两部分的解析内容,一部分是根据连接数据库db_conn解析出数据库连接信息db_sysinfo,以用于建立与待采集数据库的连接;另一部分是获取业务指标kpi_obj和与业务指标kpi_obj对应的采集语句sql_txt,通过执行采集语句实现采集业务指标。
步骤S133,根据待采集数据库的连接信息连接待采集数据库。
步骤S135,执行与每个采集业务指标对应的采集语句,并将执行结果保存到指定的存储位置。
作为一个示例,指定的存储位置可以是指定的目标数据库或文件。
在上述步骤中,采集线程调用任务解析模块,解析得到待采集数据库以及采集业务指标、执行SQL语句等配置信息,通过解析得到的配置信息与所述待采集数据库建立连接,并根据采集业务指标进行数据的采集并保存。
在一些实施例中,在根据待采集数据库的连接信息连接待采集数据库之后,还可以包括以下步骤:
将采集线程与待采集数据库的连接放入数据库连接池,多个数据库采集线程共享该数据库连接池,并且多个数据库采集线程在执行各自的待采集任务时在该连接池中选择与各自的待采集任务对应的待采集数据库进行连接。
在该步骤中,数据库连接信息db_sysinfo,在采集程序启动时被解析并执行,所有涉及的待采集数据库在此期间建立持久性的长连接,后续各线程执行采集任务时共享这个数据库连接池,无需每次重连,提高了执行采集任务的效率。
继续参考图2,在一些实施例中,数据库采集方法200还包括:
步骤S140,当待采集任务执行成功后,采集线程将运行状态更新为空闲状态,并重新向采集调度模块登记空闲状态。
在上述实施例中,多个采集线程互不干扰,每个采集线程完成各自的采集任务后通过上报空闲状态继续请求分配新的采集任务,增加了采集效率的同时,也提升了采集程序的横向扩展性,能够更好的适应云环境下的系统建设。
下面参考图3,描述本发明另一实施例所述的数据采集方法。
图3是示出本发明再一实施例提供的数据采集方法的流程图。如图3所示,数据采集方法300包括:
步骤S210,获取登记为空闲状态的采集线程,采集线程为多个数据库采集线程中的任一个。
步骤S220,轮询采集任务队列,从采集任务队列中匹配一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远。
步骤S230,将匹配到的最远时间点采集任务分配给该空闲状态的采集线程,并将匹配到的最远时间点采集任务的任务状态标记为已分配给该采集线程。
作为一个示例,当前空闲状态的采集线程为线程A,在步骤S230中,将匹配到的最近时间点采集任务分配给采集线程A,并将匹配到的最远时间点采集任务的任务状态标记为“已分配给线程A”或“status=‘A’”。
在图3所示的实施例中,采集调度模块采用动态轮询式的采集调度,从采集任务队列中匹配一条最远时间点采集任务,分配给空闲状态的采集线程。
在一些实施例中,步骤S220中的从采集任务队列中匹配一条最远时间点采集任务的步骤可以包括:
步骤S221,获取采集任务队列中各采集任务的配置信息中的上一次运行时刻、采集时间间隔。
步骤S222,对上一次运行时刻和采集时间间隔求和,并将求和结果与获取的系统当前时刻相比较,选择求和结果不早于系统当前时刻并且与系统当前时刻的时间间隔最大的一个采集任务作为匹配到的最远时间点采集任务。
具体地,继续参考表1,采集调度模块对待采集任务进行解析,对采集任务进行解析,对解析得到的当前待采集任务的上一次运行时刻last_time、采集时间间隔time_interval求和,将求和结果与系统当前时刻sysdate相比较,匹配超出系统当前时刻最长的一条待采集任务作为最远时间点采集任务。
在该实施例中,采用多线程进行动态轮询式的采集调度,避免了单个线程顺序处理或多线程批量处理时易导致的采集任务阻塞的情况。
通过图1至图3中的实施例提供的数据库采集方法,基于线程空闲状态和最远时间点任务的动态轮询调度机制,可以保障并发环境下的多数据库采集任务能够被及时处理,并且有效避免多任务处理时的单点阻塞效应
下面结合附图,描述根据本发明实施例的数据库采集装置。图4是示出本发明一实施例提供的数据库采集装置的结构示意图。如图4所示数据库采集装置400包括:
线程运行状态登记模块310,被配置为当采集线程的运行状态为空闲状态时,采集线程向采集调度模块登记空闲状态,采集线程为多个数据库采集线程中的任一个。
任务接收模块320,被配置为接收采集调度模块分配的待采集任务,待采集任务为采集调度模块通过轮询采集任务队列并从采集任务队列中匹配到的一条最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离所述系统当前时刻最远。
采集任务执行模块330,被配置为采集线程将运行状态更新为工作状态并执行待采集任务。
通过本发明实施例提供的数据库采集装置,可以实现多数据库采集任务的及时处理。
在一些实施例中,采集任务执行模块330还包括以下子模块:
采集任务解析子模块331,被配置为采集线程对待采集任务进行解析,得到待采集任务的配置信息中的待采集数据库的连接信息、一个或多个采集业务指标和与每个采集业务指标对应的采集语句。
数据库连接子模块332,被配置为根据待采集数据库的连接信息连接待采集数据库。
采集语句执行子模块333,被配置为执行与每个采集业务指标对应的采集语句,并将执行结果保存到指定的存储位置。
图5是示出本发明另一实施例提供的数据库采集装置的结构示意图。如图5所示,数据库采集装置400基本相同于数据库采集装置300,不同之处在于,数据库采集装置400还可以包括:
线程运行状态更新模块340,被配置为当待采集任务执行成功后,采集线程将运行状态更新为空闲状态,并重新向采集调度模块登记该空闲状态。
在本发明实施例中,多个数据库采集线程之间相对独立,共用任务队列和采集调度模块,并且使用同一任务解析模块对待采集任务进行解析。
在一些实施例中,数据库采集装置400还可以包括:
数据库连接保存模块350,被配置为保存采集线程与待采集数据库的连接,多个数据库采集线程共享该数据库连接池,并且在多个数据库采集线程在执行各自的待采集任务时在该数据库连接池中选择与各自的待采集任务对应的待采集数据库进行连接。
通过数据库连接池保存模块对采集线程与待采集数据库之间的数据库连接进行保存,并将该数据库连接作为持久性的长连接,后续各线程执行采集任务时共享这个数据库连接池,无需每次重连。
图6示出了本发明再一实施例提供的数据库采集装置的结构示意图。如图6所示,数据库采集装置500包括:
空闲采集线程获取模块410,被配置为获取登记为空闲状态的采集线程,采集线程为多个数据库采集线程中的任一个。
采集任务轮询模块420,被配置为轮询采集任务队列,从采集任务队列中匹配最远时间点采集任务,最远时间点采集任务为采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离系统当前时刻最远。
采集任务分配模块430,被配置为将匹配到的最远时间点采集任务分配给采集线程,并将匹配到的最远时间点采集任务的任务状态标记为已分配给采集线程。
通过图6实施例所示出的数据库采集装置,可以实现为空闲状态的采集线程轮询采集任务队列,将匹配到的最近时间点采集任务分配给该采集线程。
在一些实施例中,采集任务轮询模块420还可以包括以下子模块:
配置信息获取子模块,被配置为获取系统当前时刻、所述采集任务队列中各采集任务的上一次运行时刻、采集任务时间间隔;
采集任务匹配子模块,被配置为对上一次运行时刻和采集时间间隔求和,将求和结果与获取的系统当前时刻相比较,选择求和结果不早于系统当前时刻并且与系统当前时刻的时间间隔最大的一个采集任务作为匹配到的最远时间点采集任务。
根据本发明实施例的数据库采集装置的其他细节与以上结合图1至图3描述的根据本发明实施例的数据库采集方法类似,在此不再赘述。
结合图1至图6描述的根据本发明实施例的数据库采集方法和装置可以由可拆卸地或者固定地安装在业务运营管理中心管理服务器上的计算设备实现。图7是示出能够实现根据本发明实施例的数据库采集方法和装置的计算设备的示例性硬件架构的结构图。如图7所示,计算设备600包括输入设备601、输入接口602、中央处理器603、存储器604、输出接口605、以及输出设备606。其中,输入接口602、中央处理器603、存储器604、以及输出接口605通过总线610相互连接,输入设备601和输出设备606分别通过输入接口602和输出接口605与总线610连接,进而与计算设备600的其他组件连接。具体地,输入设备601接收输入信息,并通过输入接口602将输入信息传送到中央处理器603;中央处理器603基于存储器604中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器604中,然后通过输出接口605将输出信息传送到输出设备606;输出设备606将输出信息输出到计算设备600的外部供用户使用。
也就是说,图7所示的数据库采集装置也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1至图6描述的数据库采集方法和装置。这里,处理器可以与采集调度模块和/采集任务解析模块通信,从而基于来自采集调度模块和/或采集任务解析模块的相关信息执行计算机可执行指令,从而实现结合图1至图6描述的数据库采集方法和装置。
下面结合图8详细描述根据本发明实施例的数据库采集方法和装置的工作原理和工作过程。
图8示出了业务支撑网业务指标采集系统中的各模块的架构关系和工作过程的示意图。如图8所示,业务支撑网业务指标采集系统800包括采集任务配置模块;采集调度模块;采集任务解析模块和采集执行模块。
其中,采集调度模块和采集任务解析模块都属于采集线程模块,采集线程模块同时管理多个采集线程。
采集任务配置模块可以对任务队列TaskQueue中的各采集任务的配置信息进行管理和维护,具体的配置内容等信息可以参考上述实施例中的表1。
采集调度模块,可以为空闲的采集线程分配时间最近的采集任务。在采集调度模块可以调用采集任务配置模块,对任务队列进行轮询,获取各采集任务的上一次运行时刻和采集时间间隔,并基于获取的信息和系统当前时刻,从采集任务队列中筛选出时间最近的采集任务;在采集调度模块中,可以根据采集任务的运行状态,将筛选出的时间最近的采集任务分配给运行状态为空闲状态的采集线程。
采集任务解析模块,采集任务解析模块被采集线程调用,对采集线程所分配到的采集任务进行解析。如图8所示,对采集任务进行解析可以得到两部分信息:一部分是数据库连接信息,一部分是采集指标与执行SQL信息组成的采集任务相关信息。
采集执行模块,也就是线程池db_coll,根据采集任务解析模块解析到的数据库连接信息与待采集的数据库进行连接,并根据采集指标和执行SQL信息对待采集的数据库进行数据采集。
作为一个示例,假设集线程A当前为空闲状态线程A向采集调度模块登记空闲状态,采集调度模块从任务队列中轮询并匹配最近一条待采集任务,将该采集任务标记为“任务已分配给线程A(status=‘A’)”。
接着,线程A调用任务解析模块,确定要采集的数据库以及业务指标、执行SQL等采集任务相关信息。
接下来,线程A连接到要采集的数据库,执行SQL语句,获取执行结果并回写到文件或数据库表,从而结束当前采集任务,并重新向采集调度模块发送空闲状态。
此后重复上述步骤和过程,其它采集线程也是按照这个方式并行工作,从而实现多线程动态轮询的数据库采集处理。
综上所示,根据本发明实施例提供的数据库采集方法和装置,针对现有多数据库业务指标采集进程管理方式的缺陷,通过多线程动态轮询的任务处理方式,采集线程在数据库采集配置列表中轮询最近一条需处理的采集任务,解析任务信息,执行采集语句,得到运行结果,将数据写入文件和数据表。这样的处理方式可以保障并发环境下的多数据库采集任务能够被及时处理,有效避免多任务处理时的单点阻塞效应。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种数据库采集方法,包括:
当采集线程的运行状态为空闲状态时,所述采集线程向采集调度模块登记所述空闲状态,所述采集线程为多个数据库采集线程中的任一个;
接收所述采集调度模块分配的待采集任务,所述待采集任务为所述采集调度模块通过轮询采集任务队列并从所述采集任务队列中匹配到的一条最远时间点采集任务,所述最远时间点采集任务为所述采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离所述系统当前时刻最远;
所述采集线程执行所述待采集任务并将所述运行状态更新为工作状态;其中,所述执行所述待采集任务的步骤包括:
所述采集线程对所述待采集任务进行解析,得到所述待采集任务的配置信息中的待采集数据库的连接信息、一个或多个采集业务指标和与每个采集业务指标对应的采集语句;
根据所述待采集数据库的连接信息连接所述待采集数据库;
执行所述与每个采集业务指标对应的采集语句,并将执行结果保存到指定的存储位置;
其中,所述多个数据库采集线程之间相对独立,共用所述任务队列和所述采集调度模块,并且使用同一任务解析模块对所述待采集任务进行解析;
当所述待采集任务执行成功后,所述采集线程将所述运行状态更新为空闲状态,并重新向所述采集调度模块登记所述空闲状态;
在所述根据所述待采集数据库的连接信息连接所述待采集数据库之后,还包括:
将所述采集线程与所述待采集数据库的数据库连接放入数据库连接池;
所述多个数据库采集线程共享所述数据库连接池,并且所述多个数据库采集线程在执行各自的待采集任务时在所述数据库连接池中选择与所述各自的待采集任务对应的待采集数据库进行连接。
2.一种数据库采集方法,包括:
获取登记为空闲状态的采集线程,所述采集线程为多个数据库采集线程中的任一个;
轮询采集任务队列,从所述采集任务队列中匹配一条最远时间点采集任务,所述最远时间点采集任务为所述采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离所述系统当前时刻最远;其中,所述从所述采集任务队列中匹配一条最远时间点采集任务的步骤包括:获取所述采集任务队列中各采集任务的配置信息中的上一次运行时刻、采集时间间隔;对所述上一次运行时刻和所述采集时间间隔求和,将求和结果与获取的系统当前时刻相比较,选择所述求和结果不早于所述系统当前时刻并且与所述系统当前时刻的时间间隔最大的一个采集任务作为匹配到的最远时间点采集任务;
将匹配到的最远时间点采集任务分配给所述采集线程,并将所述匹配到的最远时间点采集任务的任务状态标记为已分配给所述采集线程。
3.一种数据库采集装置,包括:
线程运行状态登记模块,被配置为当采集线程的运行状态为空闲状态时,所述采集线程向采集调度模块登记所述空闲状态,所述采集线程为多个数据库采集线程中的任一个;
任务接收模块,被配置为接收所述采集调度模块分配的待采集任务,所述待采集任务为所述采集调度模块通过轮询采集任务队列并从所述采集任务队列中匹配到一条最远时间点采集任务,所述最远时间点采集任务为所述采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离所述系统当前时刻最远;
采集任务执行模块,被配置为所述采集线程将所述运行状态更新为工作状态并执行所述待采集任务;其中,所述采集任务执行模块还包括:
采集任务匹配子模块,被配置为所述采集线程对所述待采集任务进行解析,得到所述待采集任务的配置信息中的待采集数据库的连接信息、一个或多个采集业务指标和与每个采集业务指标对应的采集语句;
数据库连接子模块,被配置为根据所述待采集数据库的连接信息连接所述待采集数据库;
采集语句执行子模块,被配置为执行所述与每个采集业务指标对应的采集语句,并将执行结果保存到指定的存储位置;
其中,所述多个数据库采集线程之间相对独立,共用所述任务队列和所述采集调度模块,并且使用同一任务解析模块对所述待采集任务进行解析;
线程运行状态更新模块,被配置为当所述待采集任务执行成功后,所述采集线程将所述运行状态更新为空闲状态,并重新向所述采集调度模块登记所述空闲状态;
数据库连接保存模块,被配置为保存所述采集线程与所述待采集数据库的连接,所述多个数据库采集线程共享数据库连接池,并且在执行各自的待采集任务时在连接池中选择与所述各自的待采集任务对应的待采集数据库进行连接。
4.一种数据库采集装置,包括:
空闲采集线程获取模块,被配置为获取登记为空闲状态的采集线程,所述采集线程为多个数据库采集线程中的任一个;
采集任务轮询模块,被配置为轮询采集任务队列,从所述采集任务队列中匹配一条最远时间点采集任务,所述最远时间点采集任务为所述采集任务队列中的如下采集任务:该采集任务自上一次运行时刻起,经该采集任务的采集时间间隔后的时刻不早于系统当前时刻并且距离所述系统当前时刻最远;其中,所述采集任务轮询模块还包括:配置信息获取子模块,被配置为获取系统当前时刻、所述采集任务队列中各采集任务的上一次运行时刻、采集时间间隔;采集任务匹配子模块,被配置为对所述上一次运行时刻和所述采集时间间隔求和,并将求和结果与所述系统当前时刻相比较,选择所述求和结果不早于所述系统当前时刻并且与所述系统当前时刻的时间间隔最大的一个采集任务作为匹配到的最远时间点采集任务;
采集任务分配模块,被配置为将匹配到的最远时间点采集任务分配给所述采集线程,并将所述匹配到的最远时间点采集任务的任务状态标记为已分配给所述采集线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611268707.6A CN108268543B (zh) | 2016-12-31 | 2016-12-31 | 数据库采集方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611268707.6A CN108268543B (zh) | 2016-12-31 | 2016-12-31 | 数据库采集方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108268543A CN108268543A (zh) | 2018-07-10 |
CN108268543B true CN108268543B (zh) | 2021-04-06 |
Family
ID=62771244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611268707.6A Active CN108268543B (zh) | 2016-12-31 | 2016-12-31 | 数据库采集方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108268543B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924013B (zh) * | 2018-09-06 | 2020-07-07 | 北京天元创新科技有限公司 | 网络流量精确采集方法及装置 |
CN109408243B (zh) * | 2018-11-13 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种基于rdma的数据处理方法、装置和介质 |
CN112148683A (zh) * | 2019-06-26 | 2020-12-29 | 中国移动通信集团江西有限公司 | 文件采集方法和装置 |
CN112434209A (zh) * | 2020-12-07 | 2021-03-02 | 广东电网有限责任公司佛山供电局 | 一种多渠道、快速的知识点收集系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851702A (zh) * | 2006-05-25 | 2006-10-25 | 中国工商银行股份有限公司 | 本地化数据采集方法和系统 |
CN101976247A (zh) * | 2010-09-30 | 2011-02-16 | 北京新媒传信科技有限公司 | Rss数据采集方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106789A1 (en) * | 2004-11-16 | 2006-05-18 | Unival, Inc. | System and method for collecting data from data sources using data collection tools |
CN102541659B (zh) * | 2011-12-30 | 2013-12-18 | 重庆新媒农信科技有限公司 | 一种服务器业务请求处理方法和装置 |
CN103200199A (zh) * | 2013-04-15 | 2013-07-10 | 北京搜狐新媒体信息技术有限公司 | 一种带外数据采集系统 |
-
2016
- 2016-12-31 CN CN201611268707.6A patent/CN108268543B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851702A (zh) * | 2006-05-25 | 2006-10-25 | 中国工商银行股份有限公司 | 本地化数据采集方法和系统 |
CN101976247A (zh) * | 2010-09-30 | 2011-02-16 | 北京新媒传信科技有限公司 | Rss数据采集方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108268543A (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268543B (zh) | 数据库采集方法和装置 | |
US10635565B2 (en) | Systems and methods for robust anomaly detection | |
CN110609844A (zh) | 一种数据更新方法,装置及系统 | |
CN112187512B (zh) | 一种基于流量监控的端口自动扩容方法、装置和设备 | |
CN108762949B (zh) | 集中调度方法、系统、计算机设备和存储介质 | |
CN110543512B (zh) | 一种信息同步方法,装置及系统 | |
CN111147596B (zh) | Prometheus集群部署方法、装置、设备及介质 | |
CN104601702B (zh) | 集群远程过程调用方法及系统 | |
CN109885546A (zh) | 行为日志存储方法、装置及电子设备 | |
US20200394167A1 (en) | Dynamic log level with automatic reset | |
CN105763595A (zh) | 一种提高数据处理效率的方法及服务器 | |
CN112100034A (zh) | 一种业务监控方法和装置 | |
CN110580293A (zh) | 实体关系的存储方法及装置 | |
WO2019028114A1 (en) | RESEARCH AND INVENTORY IN CLOUD | |
CN106686619B (zh) | 一种性能评估方法和设备 | |
CN114240207A (zh) | 智能工单派发方法、系统及介质 | |
CN112364005B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN111901405B (zh) | 一种多节点监控方法、装置、电子设备及存储介质 | |
CN113051064B (zh) | 任务调度方法、装置、设备及存储介质 | |
CN106484601B (zh) | 客户端的用户数据分析方法及系统 | |
CN116089247A (zh) | 基于指标阈值和大数据分析的微服务指标预警方法及装置 | |
CN115086299B (zh) | 文件下载方法、装置、设备、介质和程序产品 | |
CN112099937A (zh) | 一种资源治理方法和装置 | |
CN115329005A (zh) | 多集群的协同方法、系统、装置及计算机可读存储介质 | |
CN110532253B (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 |