CN116303702A - 一种基于etl的数据并行处理方法、装置、设备和存储介质 - Google Patents
一种基于etl的数据并行处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116303702A CN116303702A CN202211687050.2A CN202211687050A CN116303702A CN 116303702 A CN116303702 A CN 116303702A CN 202211687050 A CN202211687050 A CN 202211687050A CN 116303702 A CN116303702 A CN 116303702A
- Authority
- CN
- China
- Prior art keywords
- parallel
- processed
- etl
- data
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013075 data extraction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009530 blood pressure measurement Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于ETL的数据并行处理方法,所述方法包括:在ETL任务运行列表中新增用于并行调用任务的控制组件;在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值;通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。本发明还公开了一种基于ETL的数据并行处理装置、一种计算机设备和一种计算机可读存储介质。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于ETL的数据并行处理方法、装置、计算机设备和计算机可读存储介质。
背景技术
市场数据中心自研的ETL(Extract-Transform-Load)工具是一种灵活高效的数据交换工具,其集成任务调度功能为一体,能够实现任务调度、数据抽取等功能。ETL每天需要同步及处理的数据量超过数十亿条,其承担大量的数据分发及数据同步的任务。很多从上游数据库同步到下游数据库的数据表或是同步到其它应用库的明细表(如客户标签、轻度汇总层)都需要使用ETL的数据表同步功能。大多数据表都是数千万到数亿行记录的规模,由于现有的ETL只能单任务单线程处理数据,故其在同步这些数据表时需要耗费数小时,同步效率低且业务响应不够及时。
因此,如何提高ETL的数据处理效率,成为目前亟需解决的技术问题。
发明内容
本发明的目的在于提供了一种基于ETL的数据并行处理方法、装置、计算机设备和计算机可读存储介质,能够提高ETL的数据处理效率。
本发明的一个方面提供了一种基于ETL的数据并行处理方法,所述方法包括:
在ETL任务运行列表中新增用于并行调用任务的控制组件;
在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值;
通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。
进一步地,所述在ETL任务运行列表中新增用于并行调用任务的控制组件,包括:
在所述ETL任务运行列表中确定出需被所述控制组件并行调用且排列位置在首位的目标待处理ETL任务;
在所述ETL任务运行列表中新增一并行调用类型的任务;其中,所述并行调用类型的任务紧邻该确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前;
在所述并行调用类型的任务中设置并行标签的值,以生成所述控制组件。
进一步地,所述通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务,包括:
在处理所述并行调用类型的任务时,读取所述并行调用类型的任务中并行标签的值;
从排列在所述并行调用类型的任务之后的所有待处理ETL任务中筛选出与所述并行调用类型的任务具有相同并行标签的值的所有目标待处理ETL任务;
并行调用筛选出的所有目标待处理ETL任务。
进一步地,所述通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务,包括:
获取所述目标待处理ETL任务所指向的待处理数据以及所携带的线程并发信息;
确定用于处理所述目标待处理ETL任务的线程的并发线程数量;
当所述线程并发信息中定义了分页字段时,根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程;
当所述线程并发信息中未定义分页字段时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
进一步地,所述根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程,包括:
当所述分页字段为特定类型时,从所述待处理数据中获取所述分页字段的最大值和最小值,计算所述分页字段的最大值和最小值的差值,计算该差值与所述并发线程数量的商,根据该商将所述待处理数据划分为所述并发线程数量的区间,将各个区间内的数据依次分配给所述并发线程数量的线程;
当所述分页字段为非特定类型时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
进一步地,所述根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程,包括:
确定所述待处理数据中各行数据的序列号;
从确定出的序列号中筛选出最大序列号和最小序列号;
计算所述最大序列号和所述最小序列号的差值;
计算该差值与所述并发线程数量的商;
根据该商将所述待处理数据划分为所述并发线程数量的区间;
将各个区间内的数据依次分配给所述并发线程数量的线程。
本发明的另一个方面提供了一种基于ETL的数据并行处理装置,所述装置包括:
新增模块,用于在ETL任务运行列表中新增用于并行调用任务的控制组件;
设置模块,用于在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值;
调用模块,用于通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。
进一步地,所述新增模块具体用于:
在所述ETL任务运行列表中确定出需被所述控制组件并行调用且排列位置在首位的目标待处理ETL任务;
在所述ETL任务运行列表中新增一并行调用类型的任务;其中,所述并行调用类型的任务紧邻该确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前;
在所述并行调用类型的任务中设置并行标签的值,以生成所述控制组件。
本发明的再一个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的基于ETL的数据并行处理方法。
本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的基于ETL的数据并行处理方法。
本发明提供的基于ETL的数据并行处理方法,通过将任务的并行标签的值设置为与控制组件中并行标签的值一致,使得控制组件可同时调用不同任务以实现不同任务的并行执行,并且可根据实际需求灵活设置并行调用任务的数量,一般情况下,并行执行的任务越多,执行的效率越高。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了实施例一中基于ETL的数据并行处理方法的流程图;
图2示出了实施例一中ETL任务运行列表的示意图;
图3示出了实施例一中新增控制组件的示意图;
图4示出了实施例一中设置目标待处理ETL任务的并行标签的值的示意图;
图5示出了实施例一中多线程处理任务的流程图;
图6示出了实施例二中基于ETL的数据并行处理装置的框图;
图7示出了实施例三提供的适于实现基于ETL的数据并行处理方法的计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
随着业务的发展,在业务数据量急剧增大的情况下,数据抽取效率和任务调度效率都需要做出相应的提升,以满足今后数据抽取、加工等需要。
高性能的数据同步不仅能大大缩短数据同步的时间,为整个市场数据中心5提供更大的时间灵活性,更能为业务发展提速,例如客户能更快速看到资产收益,销售人员能更早看到销售报表作出销售决策,公司领导能更快看到决策支持报表为公司发展指明方向。
本发明在市场数据中心现有自研的ETL工具基础上通过多次探索和实验
以及压测,最后研究和开发出并行调度和并发同步的并行处理技术组件,以实0现数据的高效抽取和任务的高效执行目标。具体实现步骤在下述实施例一中详细阐述。
实施例一
图1示出了实施例一中基于ETL的数据并行处理方法的流程图。如图1所5示,该方法包括步骤S1~步骤S3,其中:
步骤S1,在ETL任务运行列表中新增用于并行调用任务的控制组件。
在使用ETL工具处理数据时,ETL工具中会存在任务运行列表,每个ETL工具中的任务运行列表均可称为ETL任务运行列表。ETL任务运行列表中包括多个任务,每个待处理任务均可称为待处理ETL任务。
0控制组件中包含多个信息,如控制组件的名称和并行标签的值。其中,并行标签用于决定该控制组件将并行调用哪些待处理ETL任务。
步骤S2,在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值。
5每个待处理ETL任务均存在并行标签这一参数,但是当待处理ETL任务不需要被并行调用时,待处理ETL任务中的并行标签一般为空值。当需要被调用时,可在ETL任务运行列表中选中该任务,并填写该任务的并行标签的值。实际场景中,ETL任务运行列表中将会有多个需被控制组件并行调用的目标待
处理ETL任务,每个目标待处理ETL任务的并行调用设置过程均如步骤S2所0示。
步骤S3,通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。
当需处理这些目标待处理ETL任务时,可通过控制组件同时调用这些目标待处理ETL任务,以实现任务并行调度的目的。
本实施例通过挂载并行组的方式,可以灵活实现不同任务的并行执行,并可根据资源情况灵活扩展或收缩并行的任务数量,一般情况下,并行执行的任务越多,任务组执行的效率越高。
作为一种可选地实施例,所述在ETL任务运行列表中新增用于并行调用任务的控制组件,包括:
在所述ETL任务运行列表中确定出需被所述控制组件并行调用且排列位置在首位的目标待处理ETL任务;其中,所述ETL任务运行列表中的任务按照从前到后的排列顺序被依次处理;
在所述ETL任务运行列表中新增一并行调用类型的任务;其中,所述并行调用类型的任务紧邻该确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前;
在所述并行调用类型的任务中设置并行标签的值,以生成所述控制组件。
具体地,在ETL任务运行列表中,紧邻确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前,新增一个待处理ETL任务,然后修改该新增的待处理ETL任务的任务信息,比如,将类型修改为并行调用类型、设置并行标签的值、设置任务执行顺序、填写任务名称等。修改完任务信息以后,该新增的待处理ETL任务即可称为控制组件。
本实施例通过将该并行调用类型的待处理ETL任务设置在所有目标待处理ETL任务之前、且紧邻首个目标待处理ETL任务,可实现在执行该并行调用类型的待处理ETL任务时,通过读取该任务的类型获知即将并行调用后续的待处理ETL任务,且通过该并行调用类型的待处理ETL任务中并行标签的值可知即将并行调用哪些待处理ETL任务。
如图2所示,假设确定出的首个目标待处理ETL任务是执行顺序为45的TA份额明细数据转换任务,则可在执行顺序44和45的任务之间新增一个待处理ETL任务。如图3所示,修改该新增的待处理ETL任务的任务信息,其中,图3中的名称为任务名称,执行顺序为任务执行顺序,类型PARALLELTEAM为并行调用类型,并行组名为并行标签,并行组名的值即为并行标签的值。进一步,可逐个修改每个目标待处理ETL任务的任务信息,如图4所示,将并行组名的值也设置为TM_DEAL_SHARE。再如图2所示,由执行顺序为44.5的控制组件并行调用的目标待处理ETL任务的执行顺序分别为:45和46;由执行顺序为46.5的控制组件并行调用的目标待处理ETL任务的执行顺序分别为:47和48。
作为一种可选地实施例,所述通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务,包括:
在处理所述并行调用类型的任务时,读取所述并行调用类型的任务中并行标签的值;
从排列在所述并行调用类型的任务之后的所有待处理ETL任务中筛选出与所述并行调用类型的任务具有相同并行标签的值的所有目标待处理ETL任务;
并行调用筛选出的所有目标待处理ETL任务。
具体地,一般由同一控制组件并行调用的待处理ETL任务会排布在一起,如,执行顺序为100~105的待处理ETL任务由同一控制组件并行调用,执行为106~108的待处理ETL任务由同一控制组件并行调用。需要说明的是,并行调用时,不会再按照执行顺序处理各个目标待处理ETL任务,而是会同时处理这些目标待处理ETL任务。
本发明除了并行调用所有目标待处理ETL任务之外,还可使用多个线程并行处理每个目标待处理ETL任务。多个线程并发处理任务的流程可参见如3,其中,图3中的具体实现逻辑通过以下三个实施例进行详细阐述。
作为一种可选地实施例,所述通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务,包括:
获取所述目标待处理ETL任务所指向的待处理数据以及所携带的线程并发信息;
确定用于处理所述目标待处理ETL任务的线程的并发线程数量;
当所述线程并发信息中定义了分页字段时,根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程;
当所述线程并发信息中未定义分页字段时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
具体地,每个待处理ETL任务均具有线程并发信息这一参数,该线程并发信息中可包括并发线程数量和/或分页字段,也可不包括任何信息。当该线程并发信息中不包括任何信息时,获取到的线程并发信息为空值。并发线程数量用于表征由几个线程并行处理该待处理ETL任务,当线程并发信息中未设置并发线程数量时,可将预先定义的线程数量作为并发线程数量,如图3所示,预先定义的线程数量为10;分页字段表征以待处理数据中的何种业务参数为基准将待处理数据拆分成并发线程数量份数据,以便将每份数据分配给对应的线程进行处理,当线程并发信息中不包括分页字段时,以待处理数据的序列号为基准将待处理数据拆分成并发线程数量份数据,然后将每份数据分配给对应的线程进行处理。
一种可选方式中,当确定出哪些待处理ETL任务需被同一控制组件并行调用时,可修改这些任务的任务信息,如设置任务信息中的线程并发信息。如图4所示,此任务的线程并发信息包括并发线程数量和分页字段,并发线程数量THREADNUM为5,分页字段COLUMN为CUSTNO。
实际场景中,ETL任务运行列表中将会有多个需被控制组件并行调用的目标待处理ETL任务,每个目标待处理ETL任务通过多线程并发处理的过程均如该实施例所示。
作为一种可选地实施例,所述根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程,包括:
当所述分页字段为特定类型时,从所述待处理数据中获取所述分页字段的最大值和最小值,计算所述分页字段的最大值和最小值的差值,计算该差值与所述并发线程数量的商,根据该商将所述待处理数据划分为所述并发线程数量的区间,将各个区间内的数据依次分配给所述并发线程数量的线程;
当所述分页字段为非特定类型时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
具体地,特定类型为参数值是具体数值的类型。如参数项为客户号,参数值为13,则客户号为特定类型;如参数项为客户名称,参数值为王某,则客户名称为非特定类型。
当计算出本实施例的商之后,可将分页字段的最小值所在的数据行作为第一个区间的首行数据,计算最小值与商的和,将该和对应的分页字段所在的数据行作为第一个区间的末行数据;依次类推,计算出所有区间。比如,分页字段为客户号,计算出的商为105,待处理数据中客户号的最小值为10,则将客
户号为10~客户号为115之间的数据作为第一个区间的数据,将客户号为116~5客户号为221之间的数据作为第二个区间的数据,依次类推,直至将待处理数据划分为并发线程数量个区间。
作为一种可选地实施例,所述根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程,包括:0确定所述待处理数据中各行数据的序列号;
从确定出的序列号中筛选出最大序列号和最小序列号;
计算所述最大序列号和所述最小序列号的差值;
计算该差值与所述并发线程数量的商;
根据该商将所述待处理数据划分为所述并发线程数量的区间;5将各个区间内的数据依次分配给所述并发线程数量的线程。
具体地,当计算出本实施例的商之后,可将最小序列号所在的数据行作为第一个区间的首行数据,计算最小序列号与商的和,将该和对应的序列号所在的数据行作为第一个区间的末行数据;依次类推,计算出所有区间。比如,待
处理数据中最小序列号为9,计算出的商为80,则将客户号为9~客户号为890之间的数据作为第一个区间的数据,将客户号为90~客户号为170之间的数据作为第二个区间的数据,依次类推,直至将待处理数据划分为并发线程数量个区间。
本发明存在如下优点:5 1.超高速同步
采用多任务多线程数据并发同步技术平均同步速率超过10万条/秒,超过绝大多数成熟的ETL工具产品。
2.配置简便
多线程同步处理任务:在界面配置用于获取待处理数据的SQL(Structured0QueryLanguage,结构化查询语言)以及必要的任务信息,通过简单配置并发
线程数量和分页字段,便可在数据抽取时并行执行;
并行任务调度:在任务运行列表下配置控制组件并制定并行标签,将其他任务的并行标签指定为该控制组件同值的并行标签后,便可实现同一并行组下不同任务的并行执行。
3.灵活高效
多线程同步处理任务:经过前期的实验探索及研究,在多种不同的数据同步方式中采用多线程无队列的技术方式实现了高效的多线程并发同步处理目的;并行抽数相比于原有的单线程抽数效率方面可以呈倍数级上升,不过受限于数据库、服务器内存、网络等因素的影响,并发量并不是越多越好,还需要结合实际情况配置合理高效的临界点;支持并发线程数量及分页字段的自定义。
并行任务调度:增加了任务并行执行的可能,相比于原串行执行的调度,在任务运行列表整体运作时间上可以实现倍数减少,但同样因为任务之间的依赖、数据库资源压力、服务器资源等限制,也需要进行合理有效的配置。
实施例二
本发明的实施例二提供了一种基于ETL的数据并行处理装置,该装置与上述实施例一提供的方法相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图6示出了实施例二中基于ETL的数据并行处理装置的框图。如图6所示,该基于ETL的数据并行处理装置600可以包括:
新增模块601,用于在ETL任务运行列表中新增用于并行调用任务的控制组件;
设置模块602,用于在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值;
调用模块603,用于通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。
作为一种可选地实施例,所述新增模块具体用于:
在所述ETL任务运行列表中确定出需被所述控制组件并行调用且排列位置在首位的目标待处理ETL任务;
在所述ETL任务运行列表中新增一并行调用类型的任务;其中,所述并行调用类型的任务紧邻该确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前;
在所述并行调用类型的任务中设置并行标签的值,以生成所述控制组件。
作为一种可选地实施例,所述调用模块具体用于:
在处理所述并行调用类型的任务时,读取所述并行调用类型的任务中并行标签的值;
从排列在所述并行调用类型的任务之后的所有待处理ETL任务中筛选出与所述并行调用类型的任务具有相同并行标签的值的所有目标待处理ETL任务;
并行调用筛选出的所有目标待处理ETL任务。
作为一种可选地实施例,所述调用模块具体还用于:
获取所述目标待处理ETL任务所指向的待处理数据以及所携带的线程并发信息;
确定用于处理所述目标待处理ETL任务的线程的并发线程数量;
当所述线程并发信息中定义了分页字段时,根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程;
当所述线程并发信息中未定义分页字段时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
作为一种可选地实施例,所述调用模块在执行根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程时,具体用于:
当所述分页字段为特定类型时,从所述待处理数据中获取所述分页字段的最大值和最小值,计算所述分页字段的最大值和最小值的差值,计算该差值与所述并发线程数量的商,根据该商将所述待处理数据划分为所述并发线程数量的区间,将各个区间内的数据依次分配给所述并发线程数量的线程;
当所述分页字段为非特定类型时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
作为一种可选地实施例,所述调用模块在执行根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程时,具体用于:
确定所述待处理数据中各行数据的序列号;
从确定出的序列号中筛选出最大序列号和最小序列号;
计算所述最大序列号和所述最小序列号的差值;
计算该差值与所述并发线程数量的商;
根据该商将所述待处理数据划分为所述并发线程数量的区间;
将各个区间内的数据依次分配给所述并发线程数量的线程。
实施例三
图7示出了实施例三提供的适于实现基于ETL的数据并行处理方法的计算机设备的框图。本实施例中,计算机设备700可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备700至少包括但不限于:可通过系统总线相互通信连接的存储器701、处理器702、网络接口703。需要指出的是,图7仅示出了具有组件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器703至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。在本实施例中,存储器701通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如基于ETL的数据并行处理方法的程序代码等。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制计算机设备700的总体操作。例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等。本实施例中,处理器702用于运行存储器701中存储的基于ETL的数据并行处理方法的程序代码。
在本实施例中,存储于存储器701中的基于ETL的数据并行处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明。
网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口703用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例四
本实施例还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现基于ETL的数据并行处理方法的步骤。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
需要说明的是,本发明实施例序号仅仅为了描述,并不代表实施例的优劣。上述实施例可自由组合,分开阐述的实施例并不对实施例之间的组合造成任何限定。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于ETL的数据并行处理方法,其特征在于,所述方法包括:
在ETL任务运行列表中新增用于并行调用任务的控制组件;
在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值;
通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。
2.根据权利要求1所述的方法,其特征在于,所述在ETL任务运行列表中新增用于并行调用任务的控制组件,包括:
在所述ETL任务运行列表中确定出需被所述控制组件并行调用且排列位置在首位的目标待处理ETL任务;
在所述ETL任务运行列表中新增一并行调用类型的任务;其中,所述并行调用类型的任务紧邻该确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前;
在所述并行调用类型的任务中设置并行标签的值,以生成所述控制组件。
3.根据权利要求2所述的方法,其特征在于,所述通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务,包括:
在处理所述并行调用类型的任务时,读取所述并行调用类型的任务中并行标签的值;
从排列在所述并行调用类型的任务之后的所有待处理ETL任务中筛选出与所述并行调用类型的任务具有相同并行标签的值的所有目标待处理ETL任务;
并行调用筛选出的所有目标待处理ETL任务。
4.根据权利要求1所述的方法,其特征在于,所述通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务,包括:
获取所述目标待处理ETL任务所指向的待处理数据以及所携带的线程并发信息;
确定用于处理所述目标待处理ETL任务的线程的并发线程数量;
当所述线程并发信息中定义了分页字段时,根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程;
当所述线程并发信息中未定义分页字段时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
5.根据权利要求4所述的方法,其特征在于,所述根据所述分页字段将所述待处理数据分配给所述并发线程数量的线程,包括:
当所述分页字段为特定类型时,从所述待处理数据中获取所述分页字段的最大值和最小值,计算所述分页字段的最大值和最小值的差值,计算该差值与所述并发线程数量的商,根据该商将所述待处理数据划分为所述并发线程数量的区间,将各个区间内的数据依次分配给所述并发线程数量的线程;
当所述分页字段为非特定类型时,根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述待处理数据的序列号将所述待处理数据分配给所述并发线程数量的线程,包括:
确定所述待处理数据中各行数据的序列号;
从确定出的序列号中筛选出最大序列号和最小序列号;
计算所述最大序列号和所述最小序列号的差值;
计算该差值与所述并发线程数量的商;
根据该商将所述待处理数据划分为所述并发线程数量的区间;
将各个区间内的数据依次分配给所述并发线程数量的线程。
7.一种基于ETL的数据并行处理装置,其特征在于,所述装置包括:
新增模块,用于在ETL任务运行列表中新增用于并行调用任务的控制组件;
设置模块,用于在所述ETL任务运行列表中选中需被所述控制组件并行调用的目标待处理ETL任务,并将所述目标待处理ETL任务的并行标签的值设置为所述控制组件的并行标签的值;
调用模块,用于通过所述控制组件并行调用与所述控制组件具有相同并行标签的值的所有目标待处理ETL任务。
8.根据权利要求7所述的装置,其特征在于,所述新增模块具体用于:
在所述ETL任务运行列表中确定出需被所述控制组件并行调用且排列位置在首位的目标待处理ETL任务;
在所述ETL任务运行列表中新增一并行调用类型的任务;其中,所述并行调用类型的任务紧邻该确定出的目标待处理ETL任务且排列在该确定出的目标待处理ETL任务之前;
在所述并行调用类型的任务中设置并行标签的值,以生成所述控制组件。
9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1~6任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1~6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211687050.2A CN116303702B (zh) | 2022-12-27 | 2022-12-27 | 一种基于etl的数据并行处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211687050.2A CN116303702B (zh) | 2022-12-27 | 2022-12-27 | 一种基于etl的数据并行处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116303702A true CN116303702A (zh) | 2023-06-23 |
CN116303702B CN116303702B (zh) | 2024-04-05 |
Family
ID=86794882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211687050.2A Active CN116303702B (zh) | 2022-12-27 | 2022-12-27 | 一种基于etl的数据并行处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303702B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130080502A1 (en) * | 2011-09-23 | 2013-03-28 | Microsoft Corporation | User interface responsiveness monitor |
US20160147210A1 (en) * | 2011-11-10 | 2016-05-26 | Rockwell Automation Technologies, Inc. | Implementing engineering unit conversions associated with control devices |
WO2017114199A1 (zh) * | 2015-12-31 | 2017-07-06 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
CN111295597A (zh) * | 2017-08-31 | 2020-06-16 | 阿维瓦软件有限公司 | 对象索引的数据数组 |
CN111813845A (zh) * | 2020-06-29 | 2020-10-23 | 平安国际智慧城市科技股份有限公司 | 基于etl任务的增量数据抽取方法、装置、设备及介质 |
CN111858065A (zh) * | 2020-07-28 | 2020-10-30 | 中国平安财产保险股份有限公司 | 数据处理方法、设备、存储介质及装置 |
WO2021027363A1 (zh) * | 2019-08-15 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
US20210200744A1 (en) * | 2019-12-31 | 2021-07-01 | Capital One Services, Llc | Multi-table data validation tool |
WO2021151203A1 (en) * | 2020-01-31 | 2021-08-05 | Element Ai Inc. | Method and system for improving quality of a dataset |
CN113779026A (zh) * | 2021-08-18 | 2021-12-10 | 北京健康之家科技有限公司 | 业务数据表的处理方法和装置 |
CN114265679A (zh) * | 2021-12-24 | 2022-04-01 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置和服务器 |
CN114567072A (zh) * | 2022-02-23 | 2022-05-31 | 国家能源集团宁夏电力有限公司 | 光伏电站的控制系统 |
US20220342897A1 (en) * | 2019-04-18 | 2022-10-27 | Oracle International Corporation | System and method for universal format driven data transformation and key flex fields in an analytic applications environment |
-
2022
- 2022-12-27 CN CN202211687050.2A patent/CN116303702B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130080502A1 (en) * | 2011-09-23 | 2013-03-28 | Microsoft Corporation | User interface responsiveness monitor |
US20160147210A1 (en) * | 2011-11-10 | 2016-05-26 | Rockwell Automation Technologies, Inc. | Implementing engineering unit conversions associated with control devices |
WO2017114199A1 (zh) * | 2015-12-31 | 2017-07-06 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
CN111295597A (zh) * | 2017-08-31 | 2020-06-16 | 阿维瓦软件有限公司 | 对象索引的数据数组 |
US20220342897A1 (en) * | 2019-04-18 | 2022-10-27 | Oracle International Corporation | System and method for universal format driven data transformation and key flex fields in an analytic applications environment |
WO2021027363A1 (zh) * | 2019-08-15 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
US20210200744A1 (en) * | 2019-12-31 | 2021-07-01 | Capital One Services, Llc | Multi-table data validation tool |
WO2021151203A1 (en) * | 2020-01-31 | 2021-08-05 | Element Ai Inc. | Method and system for improving quality of a dataset |
CN111813845A (zh) * | 2020-06-29 | 2020-10-23 | 平安国际智慧城市科技股份有限公司 | 基于etl任务的增量数据抽取方法、装置、设备及介质 |
CN111858065A (zh) * | 2020-07-28 | 2020-10-30 | 中国平安财产保险股份有限公司 | 数据处理方法、设备、存储介质及装置 |
CN113779026A (zh) * | 2021-08-18 | 2021-12-10 | 北京健康之家科技有限公司 | 业务数据表的处理方法和装置 |
CN114265679A (zh) * | 2021-12-24 | 2022-04-01 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置和服务器 |
CN114567072A (zh) * | 2022-02-23 | 2022-05-31 | 国家能源集团宁夏电力有限公司 | 光伏电站的控制系统 |
Non-Patent Citations (1)
Title |
---|
王虹旭等: ""基于Spark 的并行图数据分析系统*"", 《计算机科学与探索》, 31 December 2015 (2015-12-31), pages 1066 - 1074 * |
Also Published As
Publication number | Publication date |
---|---|
CN116303702B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698891B2 (en) | MxN dispatching in large scale distributed system | |
JP6695984B2 (ja) | マルチタスクスケジューリング方法、システム、アプリケーションサーバ及びコンピュータの読み取り可能な記憶媒体 | |
US8417991B2 (en) | Mitigating reduction in availability level during maintenance of nodes in a cluster | |
CN102981904B (zh) | 一种任务调度方法及系统 | |
CN111176697A (zh) | 服务实例部署方法、数据处理方法及集群联邦 | |
CN100573457C (zh) | 一种金融数据实现etl加工的方法和系统 | |
CN112114950A (zh) | 任务调度方法和装置、以及集群管理系统 | |
CN110928655A (zh) | 一种任务处理方法及装置 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN111143331A (zh) | 数据迁移方法、装置及计算机存储介质 | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111258741B (zh) | 仓库任务执行的方法、分布式服务器集群及计算机设备 | |
US10515089B2 (en) | Pseudo-synchronous processing by an analytic query and build cluster | |
CN107291938B (zh) | 订单查询系统及方法 | |
CN108667872B (zh) | 用于调度服务器的存档方法和装置 | |
CN104182295A (zh) | 一种数据备份方法及装置 | |
CN107678856B (zh) | 一种处理业务实体中增量信息的方法及装置 | |
CN116303702B (zh) | 一种基于etl的数据并行处理方法、装置、设备和存储介质 | |
CN112948096A (zh) | 一种批量调度方法、装置和设备 | |
CN116739279A (zh) | 任务分配方法、装置、计算机设备及介质 | |
CN112612605B (zh) | 线程分配方法、装置、计算机设备和可读存储介质 | |
CN115168384A (zh) | 数据一致性处理方法、装置、服务器及存储介质 | |
CN114003316A (zh) | 集群定时任务执行方法、装置、电子设备及存储介质 | |
CN114169733A (zh) | 一种资源分配方法和装置 | |
CN112363819A (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 |