CN110362401A - 数据跑批方法、装置、存储介质及集群中的成员主机 - Google Patents
数据跑批方法、装置、存储介质及集群中的成员主机 Download PDFInfo
- Publication number
- CN110362401A CN110362401A CN201910553729.4A CN201910553729A CN110362401A CN 110362401 A CN110362401 A CN 110362401A CN 201910553729 A CN201910553729 A CN 201910553729A CN 110362401 A CN110362401 A CN 110362401A
- Authority
- CN
- China
- Prior art keywords
- subtask
- data
- cluster
- message
- task
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000005192 partition Methods 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000002547 anomalous effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 239000010453 quartz Substances 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000082 states acquisition Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据跑批方法、装置、存储介质及集群中的成员主机,该方法包括:获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据;根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。基于大数据,通过集群处理大批量数据,集群中各成员主机分发任务同时也可以执行任务,实现资源的最大化使用,数据分区不依赖于数据库,可以任意扩展子任务数,加大数据的并发处理速度。
Description
技术领域
本发明涉及大数据的技术领域,尤其涉及一种数据跑批方法、装置、存储介质及集群中的成员主机。
背景技术
目前,涉及大批量数据处理时,跑批应用单独部署,在不跑批时,跑批应用的闲置导致资源浪费;大批量任务执行时采用单线程执行,导致任务执行速度较慢;大批量任务的数据分区依赖于Oralce的哈希(hash)分区,Oralce中的一张表数据量达到亿数量级后或是单表达到2G大小,查询效率会明显下降,需要通过分区的方式,从行的维度对表进行划分,避免单表数据量过大,对于数据规律性不强,或者取值范围难以确定的,通过哈希法强行进行分区,分区个数需设置成2的幂次,扩展性不强。因此,如何提高大批量数据处理的效率及实现资源的最大化使用是亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数据跑批方法、装置、存储介质及集群中的成员主机,旨在解决现有技术中大批量数据处理效率低及资源使用率不高的技术问题。
为实现上述目的,本发明提供一种数据跑批方法,所述数据跑批方法包括以下步骤:
获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据;
根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
优选地,所述根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理之后,所述数据跑批方法还包括:
当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数。
优选地,所述当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数之后,所述数据跑批方法还包括:
当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群。
优选地,所述当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群之后,所述数据跑批方法还包括:
监听到所述子任务全部处理完成消息时,判断所有子任务是否已经全部处理成功,若所有子任务已经全部处理成功,则获取下一个任务节点并执行下一个任务。
优选地,所述根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理之后,所述数据跑批方法还包括:
通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
优选地,所述通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,包括:
通过广播消费方式进行监听;
在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理;
对所述集群中的除了获取子任务的成员主机之外的其他成员主机进行获取子任务功能封锁。
优选地,所述在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,包括:
在监听到所述任务处理消息时,计算CPU占用率,根据所述CPU占用率从所述预设队列列表中获取多个子任务,并采用多线程并发处理多个子任务。
此外,为实现上述目的,本发明还提出一种集群中的成员主机,所述集群中的成员主机包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据跑批程序,所述数据跑批程序配置为实现如上文所述的数据跑批方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据跑批程序,所述数据跑批程序被处理器执行时实现如上文所述的数据跑批方法的步骤。
此外,为实现上述目的,本发明还提出一种数据跑批装置,所述数据跑批装置包括:
随机分区模块,用于获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据;
生成模块,用于根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
本发明中,通过获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据,数据分区不依赖于数据库,可以任意扩展子任务数,加大数据的并发处理速度;根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,基于大数据,通过集群处理大批量数据,分发任务同时也可以执行任务,实现资源的最大化使用。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的集群中的成员主机的结构示意图;
图2为本发明数据跑批方法第一实施例的流程示意图;
图3为本发明数据跑批方法第二实施例的流程示意图;
图4为本发明数据跑批方法第三实施例的流程示意图;
图5为本发明数据跑批装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的集群中的成员主机结构示意图。
如图1所示,该集群中的成员主机可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对集群中的成员主机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及数据跑批程序。
在图1所示的集群中的成员主机中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述集群中的成员主机通过处理器1001调用存储器1005中存储的数据跑批程序,并执行本发明实施例提供的数据跑批方法。
基于上述硬件结构,提出本发明数据跑批方法的实施例。
参照图2,图2为本发明数据跑批方法第一实施例的流程示意图,提出本发明数据跑批方法第一实施例。
在第一实施例中,所述数据跑批方法包括以下步骤:
步骤S10:获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据。
应理解的是,本实施例的执行主体是所述集群中的成员主机,其中,所述集群中的成员主机可为个人电脑或服务器等电子设备。所述集群中包括多台成员主机,所有的成员主机都具有一样的功能,可以分发任务同时也可以执行任务,实现资源的最大化使用。本实施例的执行主体为所述集群中的任意一台成员主机,通过预设开源项目定时启动跑批任务,所述预设开源项目为quartz,跑批任务启动后,获取到所述当前任务节点,并将所述当前任务节点对应的所述批量待处理数据随机分区,通常分为a-z、A-Z以及0-9一共62个分区的所述分区数据,即所述预设数量为62,也可对分区进行拓展,分为更多数量的分区,数据分区不依赖于数据库,并且可以任意扩展子任务数,加大数据的并发处理速度。
步骤S20:根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
可理解的是,所述批量待处理数据分区完成后,生成对应分区的预设数量的子任务,通常所述预设数量为62,也即62个子任务,任务标号为a-z、A-Z以及0-9,也可对子任务数进行拓展,分为更多数量的子任务,并以队列的方式将这62个子任务放到所述预设队列列表,所述预设队列列表为redis队列列表,通过所述消息中间件发送所述任务处理消息,告知所述集群中的各主机有任务待处理。
需要说明的是,所述集群通过广播消费方式监听,所以所述集群中的各成员主机都会收到所述任务处理消息,然后从所述redis队列列表里面获取子任务,并调用与获取的子任务对应的处理类进行处理,所述处理类通常为子任务执行对应的算法或规则等,根据所述处理类执行所述子任务,获得结果数据。比如,所述子任务为计算A订单的佣金,A订单的类型为消费贷,则所述处理类为消费贷类型订单的佣金计算公式,根据所述消费贷类型订单的佣金计算公式计算A订单的佣金,计算完成,即该子任务处理完成。
在具体实现中,执行各子任务时,对于处理错误或异常的数据进行日志记录,可预先获取大量的样本异常数据及对应的样本异常点,通过卷积神经网络模型学习所述样本异常数据及对应的样本异常点,获得异常识别模型,通过所述异常识别模型识别日志记录中的错误或异常数据,从而定位出异常点,进行异常处理,以成功处理完成子任务。
本实施例中,通过获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据,数据分区不依赖于数据库,可以任意扩展子任务数,加大数据的并发处理速度;根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,基于大数据,通过集群处理大批量数据,分发任务同时也可以执行任务,实现资源的最大化使用。
参照图3,图3为本发明数据跑批方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明数据跑批方法的第二实施例。
在第二实施例中,所述步骤S20之后,还包括:
步骤S30:当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数。
应理解的是,为了避免子任务的重复获取或者执行,对于各成员主机从所述预设队列列表中获取子任务采用redis+lua脚本实现分布式锁,当任意一个成员主机B从所述设队列列表中获取子任务时,对其他成员主机进行获取子任务功能封锁,即不允许其他成员主机在此时进行获取子任务的操作,在达到数据同步的同时大大减少加锁所带来的时间开销。待所述成员主机B从所述预设队列列表中获取一个子任务,对所述预设队列列表中的所述预设数量进行减一,获得剩余子任务数,比如所述预设数量为62,所述成员主机B从所述预设队列列表中获取一个子任务,则所述剩余子任务数为61。所述成员主机B从所述预设队列列表中获取一个子任务之后,对其他成员主机开放获取子任务的功能,则其他成员主机可从所述预设队列列表中获取子任务进行处理,直至所述预设队列列表中的子任务全部被获取执行。
在第二实施例中,所述步骤S30之后,还包括:
步骤S40:当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群。
需要说明的是,在所述集群中的任意一个成员主机C从所述预设队列列表中获取子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数,若所述剩余子任务数为零,则说明该成员主机C从所述预设队列列表中获取的该子任务为最后一条子任务,则在该成员主机C处理完该最后一条子任务时,可采用群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群。
在具体实现中,为了使得所述集群中各主机能够连续高效处理更多任务,在所述集群中的该成员主机C处理完所述最后一条子任务时,可通过所述消息中间件发送子任务全部处理完成消息至所述集群,以使所述集群中的各主机可继续获取下一任务节点对下一任务节点的任务进行处理,所述子任务全部处理完成消息的消费方式采用集群消费方式,所以只会有一台主机监听到所述子任务全部处理完成消息。
在第二实施例中,所述步骤S40之后,还包括:
监听到所述子任务全部处理完成消息时,判断所有子任务是否已经全部处理成功,若所有子任务已经全部处理成功,则获取下一个任务节点并执行下一个任务。
可理解的是,所述成员主机C为所述集群中处理最后一条子任务的成员主机,所述所述成员主机C通过所述消息中间件发送一条子任务全部处理完成消息,所述子任务全部处理完成消息的消费方式采用集群消费,所以只会有一台成员主机,比如成员主机D,监听到所述子任务全部处理完成消息,所述成员主机D为所述集群中任意一个成员主机。
在具体实现中,所述成员主机D监听到所述子任务全部处理完成消息时,判断各子任务是否已全部处理成功,如果所有子任务均已经全部处理成功,则自动进入下一个任务节点执行,如果所有子任务并未全部处理成功,则暂停获取下一个任务节点,等待问题排查,若问题排查并处理完成,则再度唤醒任务处理机制,继续获取下一个任务节点并执行下一个任务。通常会对子任务处理数据进行监控,若监控到异常数据之后进行告警,人工介入排查错误。
在第二实施例中,当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数,当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群,通过对队列列表中的子任务数量进行计数,从而掌握子任务的执行进度,在所有子任务都已处理完成时,及时发送任务全部处理完成消息,以使集群中的成员主机及时获取下一个任务节点进行下一个任务的处理,实现大批量数据处理效率的提升。
参照图4,图4为本发明数据跑批方法第三实施例的流程示意图,基于上述图3所示的第二实施例,提出本发明数据跑批方法的第三实施例。
在第三实施例中,所述步骤S20之后,还包括:
步骤S201:通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
应理解的是,所述集群中包括多台成员主机,所有的成员主机都具有一样的功能,可以分发任务同时也可以执行任务,实现资源的最大化使用,所述集群中的各成员主机通过广播消费方式进行监听,所以所述集群中所有的主机都会收到所述任务处理消息,然后从redis队列列表里面获取子任务,并调用相应的处理类进行处理,对于处理错误或异常的数据做日志记录。
进一步地,所述步骤S201,包括:
通过广播消费方式进行监听;
在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理;
对所述集群中的除了获取子任务的成员主机之外的其他成员主机进行获取子任务功能封锁。
需要说明的是,所述集群中所有的主机分发任务同时也可以执行任务,为了避免子任务的重复获取或者执行,对于各成员主机从所述预设队列列表中获取子任务采用redis+lua脚本实现分布式锁,当任意一个成员主机B从所述设队列列表中获取子任务时,对所述集群中的除了获取子任务的成员主机之外的其他成员主机进行获取子任务功能封锁,即不允许其他成员主机在此时进行获取子任务的操作,所述成员主机B从所述预设队列列表中获取一个或多个子任务之后,对所述集群中的除了获取子任务的成员主机之外的其他成员主机进行开放获取子任务的功能,则其他成员主机可从所述预设队列列表中获取子任务进行处理,直至所述预设队列列表中的子任务全部被获取执行。采用redis+lua脚本实现分布式锁,在达到数据同步的同时大大减少加锁所带来的时间开销。
在本实施例中,所述在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,包括:
在监听到所述任务处理消息时,计算CPU占用率,根据所述CPU占用率从所述预设队列列表中获取多个子任务,并采用多线程并发处理多个子任务。
可理解的是,所述集群中的各成员主机可以同时处理不同分区的子任务,且每台成员主机采用多线程并发处理任务,处理速度快。并发处理任务根据CPU的占用率确定,通常5个线程同时并发处理,提高批量子任务处理速度。所述集群中的各主机可通过计算各自的CPU占用率,根据所述CPU占用率判断获取子任务的数量,在不影响处理速度的前提下,获取多个子任务,从而多个线程并发处理获取的多个子任务,提升所述预设队列列表中子任务处理效率。
在本实施例中,通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,集群中所有的成员主机都会收到所述任务处理消息,集群中各成员主机分发任务同时也可以执行任务,实现资源的最大化使用,也提高子任务处理效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据跑批程序,所述数据跑批程序被处理器执行时实现如上文所述的数据跑批方法的步骤。
此外,参照图5,本发明实施例还提出一种数据跑批装置,所述数据跑批装置包括:
随机分区模块10,用于获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据。
应理解的是,所述集群中包括多台成员主机,所有的成员主机都具有一样的功能,可以分发任务同时也可以执行任务,实现资源的最大化使用。通过预设开源项目定时启动跑批任务,所述预设开源项目为quartz,跑批任务启动后,获取到所述当前任务节点,并将所述当前任务节点对应的所述批量待处理数据随机分区,通常分为a-z、A-Z以及0-9一共62个分区的所述分区数据,即所述预设数量为62,也可对分区进行拓展,分为更多数量的分区,数据分区不依赖于数据库,并且可以任意扩展子任务数,加大数据的并发处理速度。
生成模块20,用于根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
可理解的是,所述批量待处理数据分区完成后,生成对应分区的预设数量的子任务,通常所述预设数量为62,也即62个子任务,任务标号为a-z、A-Z以及0-9,也可对子任务数进行拓展,分为更多数量的子任务,并以队列的方式将这62个子任务放到所述预设队列列表,所述预设队列列表为redis队列列表,通过所述消息中间件发送所述任务处理消息,告知所述集群中的各主机有任务待处理。
需要说明的是,所述集群通过广播消费方式监听,所以所述集群中的各成员主机都会收到所述任务处理消息,然后从所述redis队列列表里面获取子任务,并调用与获取的子任务对应的处理类进行处理,所述处理类通常为子任务执行对应的算法或规则等,根据所述处理类执行所述子任务,获得结果数据。比如,所述子任务为计算A订单的佣金,A订单的类型为消费贷,则所述处理类为消费贷类型订单的佣金计算公式,根据所述消费贷类型订单的佣金计算公式计算A订单的佣金,计算完成,即该子任务处理完成。
在具体实现中,执行各子任务时,对于处理错误或异常的数据进行日志记录,可预先获取大量的样本异常数据及对应的样本异常点,通过卷积神经网络模型学习所述样本异常数据及对应的样本异常点,获得异常识别模型,通过所述异常识别模型识别日志记录中的错误或异常数据,从而定位出异常点,进行异常处理,以成功处理完成子任务。
本实施例中,通过获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据,数据分区不依赖于数据库,可以任意扩展子任务数,加大数据的并发处理速度;根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,基于大数据,通过集群处理大批量数据,分发任务同时也可以执行任务,实现资源的最大化使用。
在一实施例中,所述数据跑批装置还包括:
计算模块,用于当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数。
在一实施例中,所述数据跑批装置还包括:
发送模块,用于当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群。
在一实施例中,所述数据跑批装置还包括:
获取模块,用于监听到所述子任务全部处理完成消息时,判断所有子任务是否已经全部处理成功,若所有子任务已经全部处理成功,则获取下一个任务节点并执行下一个任务。
在一实施例中,所述获取模块,还用于通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
在一实施例中,所述获取模块,还用于通过广播消费方式进行监听;在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理;对所述集群中的除了获取子任务的成员主机之外的其他成员主机进行获取子任务功能封锁。
在一实施例中,所述获取模块,还用于在监听到所述任务处理消息时,计算CPU占用率,根据所述CPU占用率从所述预设队列列表中获取多个子任务,并采用多线程并发处理多个子任务。
本发明所述数据跑批装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据跑批方法,其特征在于,所述数据跑批方法包括以下步骤:
获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据;
根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
2.如权利要求1所述的数据跑批方法,其特征在于,所述根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理之后,所述数据跑批方法还包括:
当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数。
3.如权利要求2所述的数据跑批方法,其特征在于,所述当从所述预设队列列表中获取一个子任务时,对所述预设队列列表中的子任务数量进行减一,获得剩余子任务数之后,所述数据跑批方法还包括:
当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群。
4.如权利要求3所述的数据跑批方法,其特征在于,所述当所述剩余子任务数为零时,认定获取的子任务为最后一条子任务,对所述最后一条子任务的处理进度进行监听,在监听到所述最后一条子任务处理完时,采用集群消费方式通过所述消息中间件发送子任务全部处理完成消息至所述集群之后,所述数据跑批方法还包括:
监听到所述子任务全部处理完成消息时,判断所有子任务是否已经全部处理成功,若所有子任务已经全部处理成功,则获取下一个任务节点并执行下一个任务。
5.如权利要求1-4中任一项所述的数据跑批方法,其特征在于,所述根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理之后,所述数据跑批方法还包括:
通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
6.如权利要求5所述的数据跑批方法,其特征在于,所述通过广播消费方式进行监听,在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,包括:
通过广播消费方式进行监听;
在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理;
对所述集群中的除了获取子任务的成员主机之外的其他成员主机进行获取子任务功能封锁。
7.如权利要求6所述的数据跑批方法,其特征在于,所述在监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理,包括:
在监听到所述任务处理消息时,计算CPU占用率,根据所述CPU占用率从所述预设队列列表中获取多个子任务,并采用多线程并发处理多个子任务。
8.一种集群中的成员主机,其特征在于,所述集群中的成员主机包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据跑批程序,所述数据跑批程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据跑批方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有数据跑批程序,所述数据跑批程序被处理器执行时实现如权利要求1至7中任一项所述的数据跑批方法的步骤。
10.一种数据跑批装置,其特征在于,所述数据跑批装置包括:
随机分区模块,用于获取当前任务节点对应的批量待处理数据,将所述批量待处理数据进行随机分区,获得预设数量的分区数据;
生成模块,用于根据所述预设数量的分区数据生成对应分区的子任务,将所述预设数量的所述子任务以队列形式存放至预设队列列表,并通过消息中间件发送任务处理消息至集群中的各成员主机,以使所述集群中的各成员主机监听到所述任务处理消息时,从所述预设队列列表中获取子任务进行处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553729.4A CN110362401A (zh) | 2019-06-20 | 2019-06-20 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
PCT/CN2019/121210 WO2020253116A1 (zh) | 2019-06-20 | 2019-11-27 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553729.4A CN110362401A (zh) | 2019-06-20 | 2019-06-20 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110362401A true CN110362401A (zh) | 2019-10-22 |
Family
ID=68217029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910553729.4A Pending CN110362401A (zh) | 2019-06-20 | 2019-06-20 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110362401A (zh) |
WO (1) | WO2020253116A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679920A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 批量权益数据处理方法及装置 |
CN111783013A (zh) * | 2020-06-28 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 评论信息发布的方法、装置、设备及计算机可读存储介质 |
WO2020253116A1 (zh) * | 2019-06-20 | 2020-12-24 | 深圳壹账通智能科技有限公司 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
CN112148505A (zh) * | 2020-09-18 | 2020-12-29 | 京东数字科技控股股份有限公司 | 数据跑批***、方法、电子设备和存储介质 |
CN113485812A (zh) * | 2021-07-23 | 2021-10-08 | 重庆富民银行股份有限公司 | 基于大数据量任务的分区并行处理方法及*** |
CN113537937A (zh) * | 2021-07-16 | 2021-10-22 | 重庆富民银行股份有限公司 | 基于拓扑排序的任务编排方法、装置、设备及存储介质 |
CN113568761A (zh) * | 2020-04-28 | 2021-10-29 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114240109A (zh) * | 2021-12-06 | 2022-03-25 | 中电金信软件有限公司 | 一种跨区域处理跑批任务的方法、装置及*** |
CN116501499A (zh) * | 2023-05-17 | 2023-07-28 | 建信金融科技有限责任公司 | 数据跑批方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168275B (zh) * | 2021-10-28 | 2022-10-18 | 厦门国际银行股份有限公司 | 任务调度方法、***、终端设备及存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306776A1 (en) * | 2009-05-28 | 2010-12-02 | Palo Alto Research Center Incorporated | Data center batch job quality of service control |
US20140082170A1 (en) * | 2012-09-19 | 2014-03-20 | Oracle International Corporation | System and method for small batching processing of usage requests |
CN104092794A (zh) * | 2014-07-25 | 2014-10-08 | 中国工商银行股份有限公司 | 批量进程处理方法和*** |
CN106648850A (zh) * | 2015-11-02 | 2017-05-10 | 佳能株式会社 | 信息处理装置及其控制方法 |
US20170242726A1 (en) * | 2016-02-18 | 2017-08-24 | Red Hat, Inc. | Batched commit in distributed transactions |
CN107291911A (zh) * | 2017-06-26 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种异常检测方法和装置 |
CN108255619A (zh) * | 2017-12-28 | 2018-07-06 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN108564167A (zh) * | 2018-04-09 | 2018-09-21 | 杭州乾圆科技有限公司 | 一种数据集之中异常数据的识别方法 |
CN108733477A (zh) * | 2017-04-20 | 2018-11-02 | ***通信集团湖北有限公司 | 数据集群化处理的方法、装置及设备 |
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
CN109144731A (zh) * | 2018-08-31 | 2019-01-04 | 中国平安人寿保险股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN109298225A (zh) * | 2018-09-29 | 2019-02-01 | 国网四川省电力公司电力科学研究院 | 一种电压量测数据异常状态自动识别模型及方法 |
CN109299135A (zh) * | 2018-11-26 | 2019-02-01 | 平安科技(深圳)有限公司 | 基于识别模型的异常查询识别方法、识别设备及介质 |
CN109558600A (zh) * | 2018-11-14 | 2019-04-02 | 北京字节跳动网络技术有限公司 | 翻译处理方法及装置 |
CN109672627A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 基于集群服务器的业务处理方法、平台、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245081B2 (en) * | 2010-02-10 | 2012-08-14 | Vmware, Inc. | Error reporting through observation correlation |
CN109461068A (zh) * | 2018-09-13 | 2019-03-12 | 深圳壹账通智能科技有限公司 | 欺诈行为的判断方法、装置、设备及计算机可读存储介质 |
CN110362401A (zh) * | 2019-06-20 | 2019-10-22 | 深圳壹账通智能科技有限公司 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
-
2019
- 2019-06-20 CN CN201910553729.4A patent/CN110362401A/zh active Pending
- 2019-11-27 WO PCT/CN2019/121210 patent/WO2020253116A1/zh active Application Filing
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306776A1 (en) * | 2009-05-28 | 2010-12-02 | Palo Alto Research Center Incorporated | Data center batch job quality of service control |
US20140082170A1 (en) * | 2012-09-19 | 2014-03-20 | Oracle International Corporation | System and method for small batching processing of usage requests |
CN104092794A (zh) * | 2014-07-25 | 2014-10-08 | 中国工商银行股份有限公司 | 批量进程处理方法和*** |
CN106648850A (zh) * | 2015-11-02 | 2017-05-10 | 佳能株式会社 | 信息处理装置及其控制方法 |
US20170242726A1 (en) * | 2016-02-18 | 2017-08-24 | Red Hat, Inc. | Batched commit in distributed transactions |
CN108733477A (zh) * | 2017-04-20 | 2018-11-02 | ***通信集团湖北有限公司 | 数据集群化处理的方法、装置及设备 |
CN107291911A (zh) * | 2017-06-26 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种异常检测方法和装置 |
CN108255619A (zh) * | 2017-12-28 | 2018-07-06 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN108564167A (zh) * | 2018-04-09 | 2018-09-21 | 杭州乾圆科技有限公司 | 一种数据集之中异常数据的识别方法 |
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
CN109144731A (zh) * | 2018-08-31 | 2019-01-04 | 中国平安人寿保险股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN109672627A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 基于集群服务器的业务处理方法、平台、设备及存储介质 |
CN109298225A (zh) * | 2018-09-29 | 2019-02-01 | 国网四川省电力公司电力科学研究院 | 一种电压量测数据异常状态自动识别模型及方法 |
CN109558600A (zh) * | 2018-11-14 | 2019-04-02 | 北京字节跳动网络技术有限公司 | 翻译处理方法及装置 |
CN109299135A (zh) * | 2018-11-26 | 2019-02-01 | 平安科技(深圳)有限公司 | 基于识别模型的异常查询识别方法、识别设备及介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020253116A1 (zh) * | 2019-06-20 | 2020-12-24 | 深圳壹账通智能科技有限公司 | 数据跑批方法、装置、存储介质及集群中的成员主机 |
CN113568761A (zh) * | 2020-04-28 | 2021-10-29 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113568761B (zh) * | 2020-04-28 | 2023-06-27 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、设备及存储介质 |
CN111679920A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 批量权益数据处理方法及装置 |
CN111783013A (zh) * | 2020-06-28 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 评论信息发布的方法、装置、设备及计算机可读存储介质 |
CN112148505A (zh) * | 2020-09-18 | 2020-12-29 | 京东数字科技控股股份有限公司 | 数据跑批***、方法、电子设备和存储介质 |
CN113537937A (zh) * | 2021-07-16 | 2021-10-22 | 重庆富民银行股份有限公司 | 基于拓扑排序的任务编排方法、装置、设备及存储介质 |
CN113485812A (zh) * | 2021-07-23 | 2021-10-08 | 重庆富民银行股份有限公司 | 基于大数据量任务的分区并行处理方法及*** |
CN113485812B (zh) * | 2021-07-23 | 2023-12-12 | 重庆富民银行股份有限公司 | 基于大数据量任务的分区并行处理方法及*** |
CN114240109A (zh) * | 2021-12-06 | 2022-03-25 | 中电金信软件有限公司 | 一种跨区域处理跑批任务的方法、装置及*** |
CN116501499A (zh) * | 2023-05-17 | 2023-07-28 | 建信金融科技有限责任公司 | 数据跑批方法、装置、电子设备及存储介质 |
CN116501499B (zh) * | 2023-05-17 | 2023-09-19 | 建信金融科技有限责任公司 | 数据跑批方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020253116A1 (zh) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362401A (zh) | 数据跑批方法、装置、存储介质及集群中的成员主机 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN108566290A (zh) | 服务配置管理方法、***、存储介质和服务器 | |
CN110308980A (zh) | 数据的批量处理方法、装置、设备及存储介质 | |
CN111078436B (zh) | 数据处理的方法、装置、设备及存储介质 | |
CN110430068B (zh) | 一种特征工程编排方法及装置 | |
CN112306719B (zh) | 一种任务调度方法与装置 | |
CN109840142A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN111190753A (zh) | 分布式任务处理方法、装置、存储介质和计算机设备 | |
CN106354616B (zh) | 监测应用执行性能的方法、装置及高性能计算*** | |
CN110716848A (zh) | 数据收集方法、装置、电子设备及存储介质 | |
CN110300067A (zh) | 队列调整方法、装置、设备及计算机可读存储介质 | |
CN110221936A (zh) | 数据库告警处理方法、装置、设备及计算机可读存储介质 | |
WO2024082853A1 (zh) | 高性能计算应用性能调优的方法及*** | |
EP4361808A1 (en) | Resource scheduling method and device and computing node | |
CN113110867A (zh) | Rpa机器人的管理方法、装置、服务器和存储介质 | |
CN113687926A (zh) | 一种服务器资产扫描的控制方法、装置及设备 | |
CN111104281B (zh) | 一种游戏性能监控方法、装置、***及存储介质 | |
CN104092794B (zh) | 批量进程处理方法和*** | |
CN115563160A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN111008146A (zh) | 对云主机安全进行测试的方法及*** | |
CN115344370A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191022 |
|
RJ01 | Rejection of invention patent application after publication |