CN110704130A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN110704130A CN110704130A CN201910959579.7A CN201910959579A CN110704130A CN 110704130 A CN110704130 A CN 110704130A CN 201910959579 A CN201910959579 A CN 201910959579A CN 110704130 A CN110704130 A CN 110704130A
- Authority
- CN
- China
- Prior art keywords
- data
- script
- executed
- middleware
- engine
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000013515 script Methods 0.000 claims abstract description 166
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据处理方法及装置,其中方法为:数据中间件接收来自用户主机的任务数据;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系;所述数据中间件根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理。上述方法应用于金融科技(Fintech)时,由于在任务数据中指定计算引擎类型,并传入指定脚本语言类型的待执行脚本,从而增加了数据中间件处理的灵活性。
Description
技术领域
本发明涉及金融科技(Fintech)领域和计算机软件领域,尤其涉及一种数据处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链(Blockchain)、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变。目前,金融科技领域中,由于客户端的数据处理能力有限,常通过数据中间件转接客户端的脚本,再通过计算引擎处理数据。
然而,现有技术中,数据中间件不支持多个计算计算引擎的处理,也不支持多脚本语言的处理,只能对特定的脚本连接特定的计算引擎进行数据服务,如HiveServer2和SparkThriftserver只能连接到hive中的数据,这会导致数据处理的灵活性降低,这是一个亟待解决的问题。
发明内容
本申请实施例提供一种数据处理方法及装置,解决了现有技术中数据中间件的数据处理的灵活性降低的问题。
第一方面,本申请实施例提供一种数据处理方法:数据中间件接收来自用户主机的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系;所述数据中间件根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理。
上述方法下,数据中间件接收来自用户主机的任务数据,由于数据中间件中预先存储了多种脚本语言与多个计算引擎之间的映射关系,可在任务数据中指定计算引擎类型,并传入指定脚本语言类型的待执行脚本,增加了数据中间件处理的灵活性,并且数据中间件可根据待执行脚本的脚本语言类型确定至少一个计算引擎,如果其中有目标计算引擎,则将待执行脚本提交给目标计算引擎处理,从而完成对任务数据的处理。
一种可选实施方式中,所述数据中间件有多个入口,所述入口用于存放所述数据中间件接收的数据;所述数据中间件接收来自客户端的任务数据,包括:所述数据中间件从所述多个入口中选择一个目标入口;所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关;所述数据中间件通过所述目标入口,接收所述任务数据。
上述方法中,数据中间件设置了多个入口,从所述多个入口中选择一个目标入口,由于所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关,因此可让负载较高的入口被选择的概率较低,让负载较低的入口被选择的概率较高,从而实现各个入口负载均衡。
一种可选实施方式中,针对所述多个入口中任一入口,所述入口中有多个生产者队列和多个消费者队列;所述多个生产者队列用于存放所述数据中间件接收的数据;所述多个消费者队列用于从所述多个生产者队列里获取数据;所述方法还包括:所述数据中间件并行处理所述消费者队列中的数据。
上述方法中,所述入口中有多个生产者队列和多个消费者队列;通过所述多个生产者队列暂时存放所述数据中间件接收的数据,通过多个消费者队列从所述多个生产者队列里获取数据;所述数据中间件并行处理所述消费者队列中的数据,从而提升了数据中间件的处理效率。
一种可选实施方式中,所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理之前,还包括:所述数据中间件接收所述用户主机的主机资源信息;所述数据中间件根据所述主机资源信息,确定所述用户主机的主机资源是否充足;若是,则执行所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理的步骤。
上述方式下,所述数据中间件接收所述用户主机的主机资源信息,在用户主机的主机资源充足时,才执行所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理的步骤,如果用户主机的主机资源不足,目标计算引擎执行待执行脚本过程中可能发生故障,因此提前判断可以保证待执行脚本的执行稳定性。
第二方面,本申请提供一种数据处理方法,包括:目标计算引擎获取数据中间件提交的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎;所述目标计算引擎根据所述待执行脚本的脚本语言类型,执行所述待执行脚本。
上述方式下,目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎;因此保证了目标计算引擎是能够处理脚本语言类型的待执行脚本;因此,所述目标计算引擎根据所述待执行脚本的脚本语言类型,执行所述待执行脚本,从而提升了数据处理的灵活性。
一种可选实施方式中,所述数据中间件中的所述任务数据来自用户主机;所述方法还包括:所述目标计算引擎获取所述数据中间件提交的用户名;所述数据中间件提交的所述用户名是所述用户主机提交给所述数据中间件的;所述目标计算引擎确定所述用户名的数据记录范围,并在所述数据记录范围内,执行所述待执行脚本。
上述方式下,所述目标计算引擎获取所述数据中间件提交的用户名;并在所述数据记录范围内,执行所述待执行脚本,从而将不同用户的数据记录处理隔离开来,提升了数据处理的安全性。
第三方面,本申请提供一种数据处理装置,包括:接收模块,用于接收来自用户主机的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系;处理模块,用于根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则将所述待执行脚本提交给所述目标计算引擎处理。
一种可选实施方式中,所述装置有多个入口,所述入口用于存放所述数据中间件接收的数据;所述处理模块具体用于:从所述多个入口中选择一个目标入口;所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关;所述接收模块具体用于:通过所述目标入口,接收所述任务数据。
一种可选实施方式中,针对所述多个入口中任一入口,所述入口中有多个生产者队列和多个消费者队列;所述多个生产者队列用于存放所述数据中间件接收的数据;所述多个消费者队列用于从所述多个生产者队列里获取数据;所述处理模块还用于:并行处理所述消费者队列中的数据。
一种可选实施方式中,所述接收模块还用于:接收所述用户主机的主机资源信息;所述处理模块还用于:根据所述主机资源信息,确定所述用户主机的主机资源是否充足;若是,则执行将所述待执行脚本提交给所述目标计算引擎处理的步骤。
上述第三方面及第三方面各个实施例的有益效果,可以参考上述第一方面及第一方面各个实施例的有益效果,这里不再赘述。
第四方面,本申请提供一种数据处理装置,包括:获取模块,用于获取数据中间件向目标计算引擎提交的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎;处理模块,用于根据所述待执行脚本的脚本语言类型,执行所述待执行脚本。
一种可选实施方式中,所述获取模块还用于:获取所述数据中间件提交的用户名;所述数据中间件提交的所述用户名是所述用户主机提交给所述数据中间件的;所述处理模块还用于:确定所述用户名的数据记录范围,并在所述数据记录范围内,执行所述待执行脚本。
上述第四方面及第四方面各个实施例的有益效果,可以参考上述第二方面及第二方面各个实施例的有益效果,这里不再赘述。
第五方面,本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例或者第二方面及第二方面各个实施例的方法。
第六方面,本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例或者第二方面及第二方面各个实施例的方法。
附图说明
图1为本申请实施例提供的一种数据处理方法的步骤流程示意图;
图2为本申请实施例提供的一种数据处理方法可应用的架构示意图;
图3为本申请实施例提供的一种数据处理装置的结构示意图;
图4为本申请实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,由于客户端的数据处理能力有限,常通过数据中间件转接客户端的脚本,再通过计算引擎处理数据。然而,现有技术中,数据中间件不支持多个计算计算引擎的处理,也不支持多脚本语言的处理,只能对特定的脚本连接特定的计算引擎进行数据服务,如HiveServer2和SparkThriftserver只能连接到hive中的数据,这会导致数据处理的灵活性降低。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
为此,如图1所示,本申请提出一种数据处理方法。
步骤101:数据中间件接收来自用户主机的任务数据。
所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系。
步骤102:所述数据中间件根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理。
步骤101之前,所述数据中间件可以接收所述用户主机的主机资源信息;再根据所述主机资源信息,确定所述用户主机的主机资源是否充足;若是,则执行所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理的步骤。
另外,步骤101之前,数据中间件还可以向发送目标数据引擎发送用户名密码等验证信息。
步骤101中,需要说明的是,脚本语言类型与计算引擎类型之间的映射关系是可以是多对多的关系。如脚本语言类型A的脚本可以被多种类型的计算引擎执行。
一种可选实施方式中,所述数据中间件有多个入口,所述入口用于存放所述数据中间件接收的数据;所述数据中间件可以按照以下方式接收来自客户端的任务数据:
所述数据中间件从所述多个入口中选择一个目标入口;所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关;所述数据中间件通过所述目标入口,接收所述任务数据。
举例来说,有A、B、C三个入口;数据量分别对应为5MB、3MB、2MB。可以按照6/31、10/31和15/31的概率选择入口。显然,C被选中的概率最高。
上述可选实施方式中,可以按照以下实施方式处理数据:
对于所述多个入口中任一入口,所述入口都有多个生产者队列和多个消费者队列。所述多个生产者队列用于存放所述数据中间件接收的数据;所述多个消费者队列用于从所述多个生产者队列里获取数据;所述数据中间件并行处理所述消费者队列中的数据。
步骤102之后,目标计算引擎可以通过以下步骤处理数据:
目标计算引擎获取数据中间件提交的任务数据。
步骤(1):所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎。
步骤(2):所述目标计算引擎根据所述待执行脚本的脚本语言类型,执行所述待执行脚本。
上述步骤(2)中,一种可选实施方式中,所述数据中间件中的所述任务数据来自用户主机;所述目标计算引擎获取所述数据中间件提交的用户名;所述数据中间件提交的所述用户名是所述用户主机提交给所述数据中间件的;所述目标计算引擎确定所述用户名的数据记录范围,并在所述数据记录范围内,执行所述待执行脚本。
因此,上述方式中支持用户权限控制,支持对数据权限细粒度控制,用户B来通过JDBC客户端来连接只能看到B用户有权限的数据。
步骤101~步骤102的方法中,可以应用在多个场景下。如java数据库连接(JavaDataBase Connectivity,JDBC)服务下。能够提供JDBC服务支持多计算引擎和多脚本语言连接到底层的计算和存储组件,支持Spark、Hive、TIDB、HBAS等组件,支持SQL、HQL、Python、Scala等语言。除此之外,还支持任务的高并发和高可用。而且,本方法支持精细化的管理资源使用,支持计算引擎的热启动和空闲时间自动停止减少资源的浪费。
下面结合图2,通过具体的实施例详细说明本发明的方案。
第一步:用户通过客户端向数据中间件申请数据库连接。
具体来说,用户先向数据中间件的数据驱动提交数据中间件的(uniformresource locator,URL)、用户名、密码。
数据驱动获取来自客户端的用户名、密码和URL。
数据驱动通过URL定位到相应的数据中间件,并将用户名和密码提交给数据中间件。
数据中间件对来自数据驱动的用户名和密码进行验证,若验证通过,则向客户端发放数据库连接。数据库连接是一个专用于传输数据库格式的数据的通道。
第二步:用户通过客户端向数据中间件提交数据处理任务。
由于数据中间件中预先封装了多种脚本语言与多种计算引擎类型的映射关系,又为多种计算引擎提供了通信接口,因此数据中间件可以用多种计算引擎处理多种脚本语言。举例来说,SQL语言可以通过Hive、TIDB来执行,当收到一个SQL脚本时,如果SQL脚本对应的引擎类型在SQL的映射关系中存在,比如引擎类型的值指示的计算引擎是Hive,便将SQL脚本提交给Hive执行。
数据处理任务可以为一个查询任务,如查询某个关键字的数据记录的任务。
第二步的具体过程为:
用户通过客户端向数据驱动提交任务数据(包括:脚本文件、脚本语言类型和引擎类型)。
数据驱动又将任务数据提交给数据中间件。
具体来说,数据中间件上同时运行着多个相同的服务;每个服务都可以用来接收并提交任务数据给相应的计算引擎,这种多服务的方式可以保证数据中间件的高可用性。
数据中间件有多个入口。当服务接收到任务数据后,会为该任务数据确定一个入口。多个入口可采取负载均衡策略,入口的数据越多,接收新来的任务数据的概率越低。每个入口都对应着多个生产者消费者队列,到达的任务数据首先放在生产者队列中,按照预设的拿取规则,拿取生产者队列中的任务数据到生产者队列中。各生产者队列中的任务数据可同时被多个服务处理,提交给相应的计算引擎。从而该方式做到任务的高并发处理。
第三步:数据中间件通过计算引擎处理数据处理任务。
具体来说,数据中间件会通过任务数据中的引擎类型,查询是否有引擎类型对应的计算引擎。如果有,就从中随机分配一个计算引擎,通过计算引擎来执行数据处理任务中的脚本,返回相应的数据。如果没有,则重新启动一个引擎类型对应的计算引擎,用于执行数据处理任务中的脚本。在计算引擎对脚本执行之前,数据中间件还可以先判断用户的资源(如CPU、内存等)是否充足,在用户资源充足的情况下,才执行脚本。
第四步:计算引擎执行脚本,将执行后的数据结果返回至数据驱动。
需要说明的是,第四步中,计算引擎可对权限进行隔离,各个用户的权限相互独立。在计算引擎对一个用户的脚本执行过程中,访问不在该用户名下的数据记录的请求会被禁止。
第五步:数据驱动再将执行后的数据结果返回至客户端。
第四步后,计算引擎会将执行脚本的执行状态返回值数据驱动,用户获得执行状态后,若执行状态指示脚本执行成功,则从数据驱动中获得数据结果。
需要说明的是,第五步中的数据结果可按照预定形式返回给客户端,如表格形式。
整个任务的执行和结果读取流程如上面所示,通过上面的步骤我们可以知悉Linkis提供的JDBC服务,通过传入的用户可以做到权限隔离、资源隔离,通过Linkis提供的支持高并发、高可用能力做到对用户的JDBC服务支持高可用和高并发等企业级能力。并通过传入的脚本和引擎类型可以做到支持多语言和多计算计算引擎。
如图3所示,本申请提供一种数据处理装置,包括:接收模块301,用于接收来自用户主机的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系;处理模块302,用于根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则将所述待执行脚本提交给所述目标计算引擎处理。
一种可选实施方式中,所述装置有多个入口,所述入口用于存放所述数据中间件接收的数据;所述处理模块302具体用于:从所述多个入口中选择一个目标入口;所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关;所述接收模块301具体用于:通过所述目标入口,接收所述任务数据。
一种可选实施方式中,针对所述多个入口中任一入口,所述入口中有多个生产者队列和多个消费者队列;所述多个生产者队列用于存放所述数据中间件接收的数据;所述多个消费者队列用于从所述多个生产者队列里获取数据;所述处理模块302还用于:并行处理所述消费者队列中的数据。
一种可选实施方式中,所述接收模块301还用于:接收所述用户主机的主机资源信息;所述处理模块302还用于:根据所述主机资源信息,确定所述用户主机的主机资源是否充足;若是,则执行将所述待执行脚本提交给所述目标计算引擎处理的步骤。
如图4所示,本申请提供一种数据处理装置,包括:获取模块401,用于获取数据中间件向目标计算引擎提交的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎;处理模块402,用于根据所述待执行脚本的脚本语言类型,执行所述待执行脚本。
一种可选实施方式中,所述获取模块401还用于:获取所述数据中间件提交的用户名;所述数据中间件提交的所述用户名是所述用户主机提交给所述数据中间件的;所述处理模块402还用于:确定所述用户名的数据记录范围,并在所述数据记录范围内,执行所述待执行脚本。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种数据处理方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种数据处理方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
数据中间件接收来自用户主机的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系;
所述数据中间件根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理。
2.如权利要求1所述的方法,其特征在于,所述数据中间件有多个入口,所述入口用于存放所述数据中间件接收的数据;所述数据中间件接收来自客户端的任务数据,包括:
所述数据中间件从所述多个入口中选择一个目标入口;所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关;
所述数据中间件通过所述目标入口,接收所述任务数据。
3.如权利要求2所述的方法,其特征在于,针对所述多个入口中任一入口,所述入口中有多个生产者队列和多个消费者队列;所述多个生产者队列用于存放所述数据中间件接收的数据;所述多个消费者队列用于从所述多个生产者队列里获取数据;所述方法还包括:
所述数据中间件并行处理所述消费者队列中的数据。
4.如权利要求1-3任一所述的方法,其特征在于,所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理之前,还包括:
所述数据中间件接收所述用户主机的主机资源信息;
所述数据中间件根据所述主机资源信息,确定所述用户主机的主机资源是否充足;若是,则执行所述数据中间件将所述待执行脚本提交给所述目标计算引擎处理的步骤。
5.一种数据处理方法,其特征在于,包括:
目标计算引擎获取数据中间件提交的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎;
所述目标计算引擎根据所述待执行脚本的脚本语言类型,执行所述待执行脚本。
6.如权利要求5所述的方法,其特征在于,所述数据中间件中的所述任务数据来自用户主机;所述方法还包括:
所述目标计算引擎获取所述数据中间件提交的用户名;所述数据中间件提交的所述用户名是所述用户主机提交给所述数据中间件的;
所述目标计算引擎确定所述用户名的数据记录范围,并在所述数据记录范围内,执行所述待执行脚本。
7.一种数据处理装置,其特征在于,包括:
接收模块,用于接收来自用户主机的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述数据中间件预先存储了脚本语言类型与计算引擎类型之间的映射关系;
处理模块,用于根据所述映射关系,确定所述待执行脚本的脚本语言类型映射的至少一个计算引擎;若所述至少一个计算引擎中存在符合所述待执行脚本的计算引擎类型的目标计算引擎,则将所述待执行脚本提交给所述目标计算引擎处理。
8.如权利要求7所述的装置,其特征在于,所述装置有多个入口,所述入口用于存放所述数据中间件接收的数据;所述处理模块具体用于:
从所述多个入口中选择一个目标入口;所述多个入口中每个入口被选为所述目标入口的概率与该入口的数据量呈负相关;
所述接收模块具体用于:
通过所述目标入口,接收所述任务数据。
9.如权利要求8所述的装置,其特征在于,针对所述多个入口中任一入口,所述入口中有多个生产者队列和多个消费者队列;所述多个生产者队列用于存放所述数据中间件接收的数据;所述多个消费者队列用于从所述多个生产者队列里获取数据;所述处理模块还用于:
并行处理所述消费者队列中的数据。
10.一种数据处理装置,其特征在于,包括:
获取模块,用于获取数据中间件向目标计算引擎提交的任务数据;所述任务数据包括:待执行脚本、待执行脚本的脚本语言类型和待执行脚本的计算引擎类型;所述目标计算引擎是所述数据中间件根据脚本语言类型与计算引擎类型之间的映射关系,确定出符合所述待执行脚本的脚本语言类型及所述待执行脚本的计算引擎类型的计算引擎;
处理模块,用于根据所述待执行脚本的脚本语言类型,执行所述待执行脚本。
11.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6中任意一项所述的方法被执行。
12.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910959579.7A CN110704130A (zh) | 2019-10-10 | 2019-10-10 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910959579.7A CN110704130A (zh) | 2019-10-10 | 2019-10-10 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704130A true CN110704130A (zh) | 2020-01-17 |
Family
ID=69200131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910959579.7A Pending CN110704130A (zh) | 2019-10-10 | 2019-10-10 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704130A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507029A (zh) * | 2020-12-18 | 2021-03-16 | 上海哔哩哔哩科技有限公司 | 数据处理系统及数据实时处理方法 |
CN112988131A (zh) * | 2021-02-25 | 2021-06-18 | 未鲲(上海)科技服务有限公司 | 计算引擎任务执行方法、设备及可读存储介质 |
CN114489579A (zh) * | 2021-12-28 | 2022-05-13 | 航天科工智慧产业发展有限公司 | 一种无感知大数据计算中间件的实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009128607A2 (ko) * | 2008-04-16 | 2009-10-22 | 티비스톰 | 통합 미들웨어형 디지털방송 수신장치 |
CN102033777A (zh) * | 2010-09-17 | 2011-04-27 | 中国资源卫星应用中心 | 基于ice的分布式作业调度引擎 |
CN102185902A (zh) * | 2011-04-19 | 2011-09-14 | 北京神州数码思特奇信息技术股份有限公司 | 一种分布式管理系统及该系统实现业务负载均衡的方法 |
US8490117B1 (en) * | 2006-10-23 | 2013-07-16 | Adobe Systems Incorporated | Bridging script engines |
CN104065616A (zh) * | 2013-03-20 | 2014-09-24 | 中国移动通信集团公司 | 单点登录方法和系统 |
CN105488179A (zh) * | 2015-11-30 | 2016-04-13 | 中电科华云信息技术有限公司 | 处理多种数据库及中间件的自动配置连接方法 |
CN107623671A (zh) * | 2016-12-05 | 2018-01-23 | 上海辉冠信息科技有限公司 | 一种软件许可服务实现方法 |
CN109241054A (zh) * | 2018-08-02 | 2019-01-18 | 成都松米科技有限公司 | 一种多模型数据库系统、实现方法以及服务器 |
US20190138375A1 (en) * | 2017-11-03 | 2019-05-09 | Dell Products L. P. | Optimization of message oriented middleware monitoring in heterogenenous computing environments |
-
2019
- 2019-10-10 CN CN201910959579.7A patent/CN110704130A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8490117B1 (en) * | 2006-10-23 | 2013-07-16 | Adobe Systems Incorporated | Bridging script engines |
WO2009128607A2 (ko) * | 2008-04-16 | 2009-10-22 | 티비스톰 | 통합 미들웨어형 디지털방송 수신장치 |
CN102033777A (zh) * | 2010-09-17 | 2011-04-27 | 中国资源卫星应用中心 | 基于ice的分布式作业调度引擎 |
CN102185902A (zh) * | 2011-04-19 | 2011-09-14 | 北京神州数码思特奇信息技术股份有限公司 | 一种分布式管理系统及该系统实现业务负载均衡的方法 |
CN104065616A (zh) * | 2013-03-20 | 2014-09-24 | 中国移动通信集团公司 | 单点登录方法和系统 |
CN105488179A (zh) * | 2015-11-30 | 2016-04-13 | 中电科华云信息技术有限公司 | 处理多种数据库及中间件的自动配置连接方法 |
CN107623671A (zh) * | 2016-12-05 | 2018-01-23 | 上海辉冠信息科技有限公司 | 一种软件许可服务实现方法 |
US20190138375A1 (en) * | 2017-11-03 | 2019-05-09 | Dell Products L. P. | Optimization of message oriented middleware monitoring in heterogenenous computing environments |
CN109241054A (zh) * | 2018-08-02 | 2019-01-18 | 成都松米科技有限公司 | 一种多模型数据库系统、实现方法以及服务器 |
Non-Patent Citations (3)
Title |
---|
ENJOYYIN: "如何打造一款底层平台扩建搬迁,业务都不受影响的大数据中间件?", pages 2 - 7, Retrieved from the Internet <URL:https://blog.csdn.net/fy79118967/article/details/100146949> * |
佘磊: "从集中式到分布式,金融企业的后台架构正在发生巨变", pages 1 - 4, Retrieved from the Internet <URL:https://www.infoq.cn/article/igfWFXxIrmDNGMpvP_0a> * |
吴立新;杨宜舟;秦承志;张树清;张立强;方金云;孙文彬;刘善军;: "面向新型硬件构架的新一代GIS基础并行算法研究", 地理与地理信息科学, no. 04, 15 July 2013 (2013-07-15) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507029A (zh) * | 2020-12-18 | 2021-03-16 | 上海哔哩哔哩科技有限公司 | 数据处理系统及数据实时处理方法 |
CN112507029B (zh) * | 2020-12-18 | 2022-11-04 | 上海哔哩哔哩科技有限公司 | 数据处理系统及数据实时处理方法 |
CN112988131A (zh) * | 2021-02-25 | 2021-06-18 | 未鲲(上海)科技服务有限公司 | 计算引擎任务执行方法、设备及可读存储介质 |
CN114489579A (zh) * | 2021-12-28 | 2022-05-13 | 航天科工智慧产业发展有限公司 | 一种无感知大数据计算中间件的实现方法 |
CN114489579B (zh) * | 2021-12-28 | 2022-11-04 | 航天科工智慧产业发展有限公司 | 一种无感知大数据计算中间件的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2018220059B2 (en) | Type-to-type analysis for cloud computing technical components | |
US10498625B1 (en) | Distributed testing service | |
US10430332B2 (en) | System and method for performance tuning of garbage collection algorithms | |
CN110704130A (zh) | 一种数据处理方法及装置 | |
US20220027173A1 (en) | Processing an operation with a plurality of processing steps | |
US9766881B2 (en) | Social project management system and marketplace | |
US20230275771A1 (en) | Pre-execution of block chain transaction in parallel during block consensus | |
CN112256414A (zh) | 一种连接多种计算存储引擎的方法及系统 | |
CN110737425A (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN113722114A (zh) | 一种数据服务的处理方法、装置、计算设备及存储介质 | |
US20230153317A1 (en) | Method for scheduling offloading snippets based on large amount of dbms task computation | |
US20230019037A1 (en) | Reactive non-blocking input and output for target device communication | |
KR100503291B1 (ko) | 실시간 트랜잭션 처리요청 메시지의 분석과 업무처리를계층구조로 구성한 트랜잭션 통합메시지 처리시스템 | |
US11954069B2 (en) | Find operation for union-mounted systems | |
CN112637201B (zh) | 一种web服务端的请求处理方法、装置、设备及系统 | |
CN111680069B (zh) | 数据库访问方法及装置 | |
CN109460230B (zh) | 一种页面间传值和业务逻辑复用的方法和系统 | |
CN110851287A (zh) | 数据处理方法、装置及计算机可读存储介质 | |
US20090183172A1 (en) | Middleware Bridge System And Method | |
WO2022002275A1 (zh) | 分布式存储过程的运行方法、电子设备及存储介质 | |
US20240061857A1 (en) | Migration and validation of data from tabular structures to non-relational data stores | |
US20120089989A1 (en) | Systems and methods for executing and implementing computer processes in process environments | |
CN117579372A (zh) | 业务请求的处理方法及装置、存储介质和电子设备 | |
CN118312564A (zh) | 分布式系统、业务请求的处理方法、装置及电子设备 | |
CN116303619A (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 |