数据处理方法、装置、计算机可读存储介质及电子设备.pdf

上传人:bo****18 文档编号:14494090 上传时间:2024-04-10 格式:PDF 页数:19 大小:1.42MB
收藏 版权申诉 举报 下载
数据处理方法、装置、计算机可读存储介质及电子设备.pdf_第1页
第1页 / 共19页
数据处理方法、装置、计算机可读存储介质及电子设备.pdf_第2页
第2页 / 共19页
数据处理方法、装置、计算机可读存储介质及电子设备.pdf_第3页
第3页 / 共19页
文档描述:

《数据处理方法、装置、计算机可读存储介质及电子设备.pdf》由会员分享,可在线阅读,更多相关《数据处理方法、装置、计算机可读存储介质及电子设备.pdf(19页完成版)》请在专利查询网上搜索。

1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202311826840.9(22)申请日 2023.12.27(71)申请人 山石网科通信技术股份有限公司地址 215163 江苏省苏州市高新区景润路181号(72)发明人 秦利斌沈捷黄平项周坤何珂(74)专利代理机构 北京康信知识产权代理有限责任公司 11240专利代理师 殷爽(51)Int.Cl.G06F 9/455(2018.01)G06F 9/52(2006.01)(54)发明名称数据处理方法、装置、计算机可读存储介质及电子设备(57)摘要本发明公开了一种数据处理方法、装置、计算机可读存。

2、储介质及电子设备。该方法包括:获取多个脚本的数据需求信息,其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识;对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块;通过各个信息消费模块从信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容发送至多个脚本。本发明解决了相关技术中多个脚本在运行时各自读取相同的数据,从而导致资源浪费的技术问题。权利要求书2页 说明书13页 附图3页CN 117707707 A2024.03.15CN 117707707 A1.一种数据处理方法,其特征在于,包括:获取多个脚本的数据需求信息,其中,所述数据需求信息至少包括所述脚本。

3、需要订阅的信息主题的主题标识;对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块;通过各个信息消费模块从所述信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容发送至所述多个脚本。2.根据权利要求1所述的方法,其特征在于,对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块,包括:对于每个数据需求信息,判断第一映射表中是否存在所述数据需求信息中的主题标识,其中,所述第一映射表用于记录所述主题标识与所述信息消费模块之间的映射关系;在所述第一映射表中不存在所述数据需求信息中的主题标识的情况下,在所述第一映射表中新增所述主题标识,并创建与所述。

4、主题标识所属的信息主题对应的信息消费模块。3.根据权利要求1或2所述的方法,其特征在于,将获取到的数据的内容发送至所述多个脚本,包括:获取第二映射表,其中,所述第二映射表用于记录各个脚本与主题标识之间的映射关系;对于获取到的每个数据,根据所述数据所属的信息主题以及所述第二映射表,从多个脚本中确定至少一个目标脚本;将所述数据的内容发送至所述至少一个目标脚本,以实现将获取到的数据的内容发送至所述多个脚本。4.根据权利要求3所述的方法,其特征在于,所述第二映射表通过以下方式生成:对于每个数据需求信息,判断第二映射表中是否存在所述数据需求信息中的主题标识;在所述第二映射表中存在所述数据需求信息中的主题。

5、标识的情况下,建立所述数据需求信息匹配的脚本与所述主题标识之间的映射关系;在所述第二映射表中不存在所述数据需求信息中的主题标识的情况下,在所述第二映射表中新增所述主题标识,并建立所述数据需求信息匹配的脚本与所述主题标识之间的映射关系。5.根据权利要求3所述的方法,其特征在于,将所述数据的内容发送至所述至少一个目标脚本,包括:获取第三映射表,并从所述第三映射表中确定各个目标脚本进行数据传输所需的数据通道,其中,所述第三映射表用于记录各个脚本与数据通道之间的映射关系;通过所述至少一个目标脚本所对应的数据通道,将所述数据的内容发送至所述至少一个目标脚本。6.根据权利要求5所述的方法,其特征在于,所述。

6、信息主题包括至少一个数据分区,所述第三映射表还用于记录至少一个脚本与信息主题中数据分区的映射关系,其中,通过所述至少一个目标脚本所对应的数据通道,将所述数据的内容发送至所述至少一个目标脚本,包括:权利要求书1/2 页2CN 117707707 A2对于每个目标脚本,判断所述第三映射表中是否存在所述目标脚本匹配的数据分区的分区标识;在所述第三映射表中存在所述目标脚本匹配的分区标识的情况下,确定所述数据中各条子数据的分区信息;依据所述分区信息从所述数据中确定属于所述目标脚本匹配的数据分区的子数据,得到目标子数据,并通过所述目标脚本所对应的数据通道将所述目标子数据发送至所述目标脚本。7.根据权利要求。

7、6所述的方法,其特征在于,所述数据需求信息中包括所述脚本进行数据传输所需的数据通道,所述第三映射表通过以下方式生成:对于每个数据需求信息,从所述数据需求信息中确定所述数据需求信息匹配的脚本所对应的数据通道;在第三映射表中创建所述数据需求信息匹配的脚本与所述数据通道的映射关系;判断所述数据需求信息中是否存在数据分区的分区标识;在所述数据需求信息中存在所述分区标识的情况下,在所述第三映射表中创建所述数据需求信息匹配的脚本与所述分区标识的映射关系。8.一种数据处理装置,其特征在于,包括:获取模块,用于获取多个脚本的数据需求信息,其中,所述数据需求信息至少包括所述脚本需要订阅的信息主题的主题标识;第一。

8、创建模块,用于对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块;发送模块,用于通过各个信息消费模块从所述信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容发送至所述多个脚本。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的数据处理方法。10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行。

9、所述权利要求1至7任一项中所述的数据处理方法。权利要求书2/2 页3CN 117707707 A3数据处理方法、装置、计算机可读存储介质及电子设备技术领域0001本发明涉及数据处理领域,具体而言,涉及一种数据处理方法、装置、计算机可读存储介质及电子设备。背景技术0002在实际的业务系统中,通常会运行多个脚本,这些脚本可能运行在同一个进程中,并可能读取相同的数据流以进行不同的事件处理。由于脚本本身是相互独立的,一个脚本无法感知其他脚本的存在,所以脚本之间是无法共享资源的。即在读取数据时,每个脚本将各自读取一遍相同的数据,随着脚本数量的增加,内存和IO(Input/Output,输入/输出)资源也。

10、会呈现线性增加的趋势,由于读取的数据是完全相同的,这些增加的内存和IO资源大多是毫无意义的资源浪费。0003针对上述的问题,目前尚未提出有效的解决方案。发明内容0004本发明实施例提供了一种数据处理方法、装置、计算机可读存储介质及电子设备,以至少解决相关技术中多个脚本在运行时各自读取相同的数据,从而导致资源浪费的技术问题。0005根据本发明实施例的一个方面,提供了一种数据处理方法,包括:获取多个脚本的数据需求信息,其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识;对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块;通过各个信息消费模块从信息消费模块对应的信息。

11、主题中获取数据,并将获取到的数据的内容发送至多个脚本。0006进一步地,数据处理方法还包括:对于每个数据需求信息,判断第一映射表中是否存在数据需求信息中的主题标识,其中,第一映射表用于记录主题标识与信息消费模块之间的映射关系;在第一映射表中不存在数据需求信息中的主题标识的情况下,在第一映射表中新增主题标识,并创建与主题标识所属的信息主题对应的信息消费模块。0007进一步地,数据处理方法还包括:获取第二映射表,其中,第二映射表用于记录各个脚本与主题标识之间的映射关系;对于获取到的每个数据,根据数据所属的信息主题以及第二映射表,从多个脚本中确定至少一个目标脚本;将数据的内容发送至至少一个目标脚本,。

12、以实现将获取到的数据的内容发送至多个脚本。0008进一步地,数据处理方法还包括:对于每个数据需求信息,判断第二映射表中是否存在数据需求信息中的主题标识;在第二映射表中存在数据需求信息中的主题标识的情况下,建立数据需求信息匹配的脚本与主题标识之间的映射关系;在第二映射表中不存在数据需求信息中的主题标识的情况下,在第二映射表中新增主题标识,并建立数据需求信息匹配的脚本与主题标识之间的映射关系。0009进一步地,数据处理方法还包括:获取第三映射表,并从第三映射表中确定各个目说明书1/13 页4CN 117707707 A4标脚本进行数据传输所需的数据通道,其中,第三映射表用于记录各个脚本与数据通道之。

13、间的映射关系;通过至少一个目标脚本所对应的数据通道,将数据的内容发送至至少一个目标脚本。0010进一步地,数据处理方法还包括:对于每个目标脚本,判断第三映射表中是否存在目标脚本匹配的数据分区的分区标识;在第三映射表中存在目标脚本匹配的分区标识的情况下,确定数据中各条子数据的分区信息;依据分区信息从数据中确定属于目标脚本匹配的数据分区的子数据,得到目标子数据,并通过目标脚本所对应的数据通道将目标子数据发送至目标脚本。0011进一步地,数据处理方法还包括:对于每个数据需求信息,从数据需求信息中确定数据需求信息匹配的脚本所对应的数据通道;在第三映射表中创建数据需求信息匹配的脚本与数据通道的映射关系;。

14、判断数据需求信息中是否存在数据分区的分区标识;在数据需求信息中存在分区标识的情况下,在第三映射表中创建数据需求信息匹配的脚本与分区标识的映射关系。0012根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:获取模块,用于获取多个脚本的数据需求信息,其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识;第一创建模块,用于对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块;发送模块,用于通过各个信息消费模块从信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容发送至多个脚本。0013根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可。

15、读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的数据处理方法。0014根据本发明实施例的另一方面,还提供了一种电子设备,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的数据处理方法。0015在本发明实施例中,采用在多个脚本需要获取相同数据的情况下共享同一个信息消费模块的方式,通过获取多个脚本的数据需求信息,然后对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块,从而通过各个信息消费模块从信息消费模块对应的信息主题中获取数。

16、据,并将获取到的数据的内容发送至多个脚本。其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识。0016在上述过程中,通过获取多个脚本的数据需求信息,实现了对各个脚本需要获取的数据的有效确定,通过对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块,实现了在多个脚本需要获取相同数据的情况下共享同一个信息消费模块,从而可以避免存在冗余的信息消费模块,减少内存资源浪费。通过利用信息消费模块实现数据获取并将数据转达给脚本,避免了多个脚本均执行数据读取时浪费IO资源,从而更进一步地减少了资源浪费。0017由此可见,本申请所提供的方案达到了在多个脚本需要获取相同数据的情况下。

17、共享同一个信息消费模块的目的,从而实现了减少资源浪费的技术效果,进而解决了相关技术中多个脚本在运行时各自读取相同的数据,从而导致资源浪费的技术问题。说明书2/13 页5CN 117707707 A5附图说明0018此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:0019图1是根据本发明实施例的一种可选的数据处理方法的流程图;0020图2是根据本发明实施例的一种可选的脚本与目标处理单元的示意图;0021图3是根据本发明实施例的一种可选的数据处理方法的示意图;0022图4是根据本发明实施例的一种可选。

18、的数据处理装置的示意图;0023图5是根据本发明实施例的一种可选的电子设备的示意图。具体实施方式0024为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。0025需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换。

19、,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。0026需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准,并提供。

20、有相应的操作入口,供用户选择授权或者拒绝。0027实施例10028根据本发明实施例,提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。0029在相关技术中,业务系统中通常会运行多个SiddhiQL脚本,SiddhiQL是CEP(Complex Event Processing,复杂事件处理)引擎Siddhi提供的一种脚本语言,通过SiddhiQL可以构建数据流上的复杂事件处理应用。Kafka是一个开源流处理平台,Kafka数据。

21、源是SiddhiQL支持的多种数据源之一,SiddhiQL脚本运行时包含kafka数据源实现,在SiddhiQL中每个kafka数据源关联一个kafka的消费者,该消费者负责读取Kafka中的数据,以投递给SiddhiQL脚本中后续计算单元做进一步处理。每个kafka消费者都有一块固定大小的内存,用于缓存读取到的数据,默认大小为50MB,因此同一个进程中随着SiddhiQL脚本数量的增加,kafka消费者数量也会跟着增加,kafka消费者占用的内存也会随着消费者数说明书3/13 页6CN 117707707 A6量增加而线性递增,即使这些消费者读取的是完全相同的数据。此外,kafka的数据是存。

22、储在kafka服务器管理的文件中,kafka消费者消费数据的过程中需要从kafka服务器读取数据文件,然后经过网络把数据传递到消费者,因此随着SiddhiQL脚本数量的增加,kafka服务器需要读取文件的频率,网路传输的数据也会线性增加,从而会造成系统IO资源的浪费。0030基于此,本申请提供一种数据处理方法,该方法通过在多个脚本消费相同数据的情况下共享同一个消费者,以解决上述技术问题。0031图1是根据本发明实施例的一种可选的数据处理方法的流程图,如图1所示,该方法包括如下步骤:0032步骤S101,获取多个脚本的数据需求信息,其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识。00。

23、33可选的,在本实施例中,将目标处理单元作为执行主体,图2是根据本发明实施例的一种可选的脚本与目标处理单元的示意图,如图2所示,目标处理单元与前述的多个脚本运行在系统的同一进程内。其中,脚本可以是指SiddhiQL脚本,根据实际应用场景的不同,脚本也可以是其它类型的脚本。0034每个脚本在进程内运行时包含kafka数据源实现,kafka数据源可以理解为是基于脚本中的部分内容实现的数据获取模块。在进程启动后,会先启动目标处理单元,再运行进程内的脚本,在脚本启动运行并构建kafka数据源后,如图2所示,目标处理单元与进程内所有脚本(即图2中的脚本1、脚本2脚本k)的kafka数据源进行通信,以收集。

24、每一个kafka数据源提供的数据需求信息。0035其中,数据需求信息至少包括脚本需要订阅的信息主题(Topic)的主题标识,还可以包括脚本的名称、kafka数据源在脚本中的名称、订阅的信息主题的数据分区的分区标识、脚本进行数据传输所需的数据通道的通道标识。其中,信息主题包括至少一个数据分区。0036步骤S102,对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块。0037例如,假设存在5个数据需求信息,若所有数据需求信息中的主题标识分别为A、B、C、D、E,则确定这5个数据需求信息对应于5个不同的信息主题,在此情况下,创建5个kafka消费者,也即创建5个信息消费模块。

25、。若所有数据需求信息中的主题标识分别为A、B、C、A、C,则确定这5个数据需求信息对应于3个不同的信息主题,此情况下,创建3个kafka消费者。0038需要说明的是,在相关技术中构建kafka数据源的时候,通常根据脚本中提供的Kafka连接参数,为每个Kafka数据源新建一个kafka消费者,即信息消费模块数量与脚本数量相同,而在本实施例中,则是根据脚本需要订阅的信息主题创建kafka消费者,即信息消费模块数量与订阅的信息主题数量相同,由此便于减少kafka消费者数量,进而便于减少资源浪费。0039步骤S103,通过各个信息消费模块从信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容。

26、发送至多个脚本。0040在数据传递的过程中,目标处理单元承担所有脚本的kafka数据源的数据代理的角色。当目标处理单元创建好一个信息消费模块以后,就会立刻启动该信息消费模块从kafka不断读取对应的信息主题的数据,然后将这些数据转发给每一个订阅该信息主题的说明书4/13 页7CN 117707707 A7脚本中的kafka数据源。0041基于上述步骤S101至步骤S103所限定的方案,可以获知,在本发明实施例中,采用在多个脚本需要获取相同数据的情况下共享同一个信息消费模块的方式,通过获取多个脚本的数据需求信息,然后对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块,从。

27、而通过各个信息消费模块从信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容发送至多个脚本。其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识。0042在上述过程中,通过获取多个脚本的数据需求信息,实现了对各个脚本需要获取的数据的有效确定,通过对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块,实现了在多个脚本需要获取相同数据的情况下共享同一个信息消费模块,从而可以避免存在冗余的信息消费模块,减少内存资源浪费。通过利用信息消费模块实现数据获取并将数据转达给脚本,避免了多个脚本均执行数据读取时浪费IO资源,从而更进一步地减少了资源浪费。0043由此可见,。

28、本申请所提供的方案达到了在多个脚本需要获取相同数据的情况下共享同一个信息消费模块的目的,从而实现了减少资源浪费的技术效果,进而解决了相关技术中多个脚本在运行时各自读取相同的数据,从而导致资源浪费的技术问题。0044在一种可选的实施例中,在对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块的过程中,目标处理单元可以对于每个数据需求信息,判断第一映射表中是否存在数据需求信息中的主题标识,从而在第一映射表中不存在数据需求信息中的主题标识的情况下,在第一映射表中新增主题标识,并创建与主题标识所属的信息主题对应的信息消费模块。其中,第一映射表用于记录主题标识与信息消费模块之间的。

29、映射关系。0045可选的,如图2所示,目标处理单元内维护有消费者映射表,该消费者映射表即为第一映射表。在第一映射表中每一个信息主题的主题标识对应一个kafka消费者的模块标识。例如,图2中消费者映射表左侧的“topic1”、“topic2”分别为主题标识,图2中消费者映射表右侧的“消费者1”、“消费者2”分别为kafka消费者的模块标识。通过查询该表,目标处理单元可以知道每一个信息主题所对应的kafka消费者,例如,图2中“topic1”对应的kafka消费者为“消费者1”,“topic2”对应的kafka消费者为“消费者2”。其中,主题标识与信息主题一一对应。0046在创建kafka消费者(。

30、也即创建信息消费模块)的过程中,对于每个数据需求信息,在消费者映射表中不存在该数据需求信息中的主题标识的情况下,确定之前没有其它脚本订阅该主题标识对应的信息主题,在此情况下,目标处理单元可以在消费者映射表中新建一个用于填写主题标识的表项,将主题标识导入该表项中,并创建与该主题标识所属的信息主题对应的kafka消费者。图3是根据本发明实施例的一种可选的数据处理方法的示意图,如图3所示,目标处理单元可以通过所创建的kafka消费者订阅对应的信息主题,并启动该kafka消费者以获取Kafka中信息主题(即图3中的topic1、topic2)中的数据。可选的,目标处理单元还将kafka消费者的模块标识。

31、添加到匹配的主题标识所对应的位置,以实现对kafka消费者与该主题标识之间的映射关系的建立。其中,图3中的消费者映射表与图2中的消费者映射表内容相同,故此处不再赘述。说明书5/13 页8CN 117707707 A80047若第一映射表中存在数据需求信息中的主题标识,则确定之前已有其它脚本订阅该主题标识对应的信息主题,也即该信息主题对应的信息消费模块已创建,因此,在此情况下目标处理单元无需作额外处理。0048需要说明的是,通过上述过程,使得信息消费模块的数量与脚本需要订阅的信息主题的数量能够保持一致,从而避免了资源浪费。0049在一种可选的实施例中,在将获取到的数据的内容发送至多个脚本的过程中。

32、,目标处理单元可以获取第二映射表,然后对于获取到的每个数据,根据数据所属的信息主题以及第二映射表,从多个脚本中确定至少一个目标脚本,从而将数据的内容发送至至少一个目标脚本,以实现将获取到的数据的内容发送至多个脚本。其中,第二映射表用于记录各个脚本与主题标识之间的映射关系。0050可选的,如图2、图3所示,目标处理单元中还维护有订阅者列表,该订阅者列表即为第二映射表。第二映射表用于记录各个脚本与主题标识之间的映射关系,例如,在订阅者列表存放订阅各个信息主题的脚本的名称与主题标识之间的映射关系,又例如,在订阅者列表存放订阅各个信息主题的脚本的kafka数据源的名称与主题标识之间的映射关系。如图2、。

33、图3所示,订阅者列表左侧的“topic1”、“topic2”分别为主题标识,订阅者列表右侧的“source1”、“source2”以及“sourcek”分别为kafka数据源的名称。通过查询该表,目标处理单元可以知道每一个信息主题有哪些订阅者,例如,在图2、图3中,订阅“topic1”的有“source1”、“source2”分别所属的脚本,订阅“topic2”的有“sourcek”所属的脚本。0051对于获取到的每个数据,如图3所示,目标处理单元可以根据第二映射表确定各个脚本与信息主题之间的映射关系,从而根据数据所属的信息主题以及各个脚本与信息主题之间的映射关系,从多个脚本中确定与数据的信息。

34、主题对应的至少一个目标脚本。之后,目标处理单元可以将每个数据的内容发送至与该数据的信息主题对应的至少一个目标脚本,从而实现将获取到的数据的内容发送至多个脚本。0052需要说明的是,通过上述过程,实现了将各脚本所需的数据准确的传递给脚本,从而提高了数据传输的准确性。0053在一种可选的实施例中,目标处理单元可以通过以下方式生成第二映射表:对于每个数据需求信息,判断第二映射表中是否存在数据需求信息中的主题标识;在第二映射表中存在数据需求信息中的主题标识的情况下,建立数据需求信息匹配的脚本与主题标识之间的映射关系;在第二映射表中不存在数据需求信息中的主题标识的情况下,在第二映射表中新增主题标识,并建。

35、立数据需求信息匹配的脚本与主题标识之间的映射关系。0054在生成订阅者列表(也即生成第二映射表)的过程中,对于每个数据需求信息,目标处理单元可以在订阅者列表中存在数据需求信息中的主题标识的情况下,将kafka数据源的名称或者脚本的名称添加到订阅者列表中与该主题标识对应的位置,从而实现对脚本与主题标识之间的映射关系的建立。在第二映射表中不存在数据需求信息中的主题标识的情况下,目标处理单元可以新建一个用于填写主题标识的表项,将主题标识导入该表项中,并将kafka数据源的名称或者脚本的名称添加到该主题标识对应的位置。0055需要说明的是,通过上述过程,实现了对脚本与信息主题之间的映射关系的准确确定,。

36、从而提高了目标处理单元确定数据与脚本之间的对应关系的准确性,进而提高了数据传输的准确性。说明书6/13 页9CN 117707707 A90056在一种可选的实施例中,在将数据的内容发送至至少一个目标脚本的过程中,目标处理单元可以获取第三映射表,并从第三映射表中确定各个目标脚本进行数据传输所需的数据通道,从而通过至少一个目标脚本所对应的数据通道,将数据的内容发送至至少一个目标脚本。其中,第三映射表用于记录各个脚本与数据通道之间的映射关系。0057可选的,如图2、图3所示,目标处理单元中还维护有数据通道映射表,该数据通道映射表即为第三映射表。第三映射表用于记录各个脚本与数据通道之间的映射关系,例。

37、如,在数据通道映射表中存放各个脚本的名称与数据通道的通道标识之间的映射关系,又例如,在数据通道映射表中存放各个脚本的kafka数据源的名称与数据通道的通道标识之间的映射关系。如图2、图3所示,数据通道映射表左侧的“source1”、“source2”“sourcek”分别为kafka数据源的名称,数据通道映射表右侧的“通道1”、“通道2”“通道k”分别为数据通道的通道标识。通过查询该表,目标处理单元可以知道每一个脚本进行数据传输所需的数据通道,例如,在图2、图3中,“source1”所属的脚本所需的数据通道为“通道1”,“source2”所属的脚本所需的数据通道为“通道2”,“sourcek”。

38、所属的脚本所需的数据通道为“通道k”。0058对于每个目标脚本,如图3所示,目标处理单元可以依据该目标脚本所对应的数据通道,将该目标脚本所需的数据发送至该目标脚本(即图3中的脚本1、脚本2脚本k)。0059需要说明的是,通过上述过程,实现了对数据的有效发送,避免了因数据通道错选导致数据发送失败的现象发生。0060在一种可选的实施例中,信息主题包括至少一个数据分区,第三映射表还用于记录至少一个脚本与信息主题中数据分区的映射关系,其中,在通过至少一个目标脚本所对应的数据通道,将数据的内容发送至至少一个目标脚本的过程中,目标处理单元可以对于每个目标脚本,判断第三映射表中是否存在目标脚本匹配的数据分区。

39、的分区标识,然后在第三映射表中存在目标脚本匹配的分区标识的情况下,确定数据中各条子数据的分区信息,从而依据分区信息从数据中确定属于目标脚本匹配的数据分区的子数据,得到目标子数据,并通过目标脚本所对应的数据通道将目标子数据发送至目标脚本。0061可选的,第三映射表还用于记录至少一个脚本与信息主题中数据分区的映射关系,例如,在数据通道映射表中存放各个脚本的名称与数据分区的分区标识之间的映射关系,又例如,在数据通道映射表中存放各个脚本的kafka数据源的名称与数据分区的分区标识之间的映射关系。如图2、图3所示,数据通道映射表左侧的“source1”、“source2”“sourcek”分别为kafk。

40、a数据源的名称,数据通道映射表右侧的“分区1”、“分区2”即为数据分区的分区标识。通过查询该表,目标处理单元可以知道每个脚本所订阅的数据分区,例如,在图2、图3中,“source2”所属的脚本订阅的数据分区为“分区1”和“分区2”。如果脚本没有订阅指定的数据分区,则确定该脚本订阅对应的信息主题中的所有数据分区,也即订阅对应的信息主题中的所有数据,例如,在图2、图3中,“source1”和“sourcek”所属的脚本订阅所有的数据分区。0062对于每个目标脚本,如图3所示,目标处理单元可以根据第三映射表判断该目标脚本是否有订阅指定的数据分区,如果有,则检查需要发送给该脚本的数据中各条子数据的分区。

41、信息,找到属于该目标脚本订阅的数据分区的子数据,也即找到目标子数据,从而通过该目标脚本所对应的数据通道将目标子数据发送至该目标脚本。如果第三映射表中不存在说明书7/13 页10CN 117707707 A10该目标脚本匹配的分区标识,则通过该目标脚本所对应的数据通道将数据直接发送至该目标脚本。0063需要说明的是,通过上述过程,实现了对脚本所需的数据进行更细粒度的确定,从而提高了本申请的灵活性,并避免了传递冗余数据所导致的资源浪费。0064在一种可选的实施例中,数据需求信息中包括脚本进行数据传输所需的数据通道,其中,目标处理单元可以通过以下方式生成第三映射表:对于每个数据需求信息,从数据需求信。

42、息中确定数据需求信息匹配的脚本所对应的数据通道;在第三映射表中创建数据需求信息匹配的脚本与数据通道的映射关系;判断数据需求信息中是否存在数据分区的分区标识;在数据需求信息中存在分区标识的情况下,在第三映射表中创建数据需求信息匹配的脚本与分区标识的映射关系。0065在获取到数据需求信息之后,对于每个数据需求信息,目标处理单元可以从数据需求信息中确定数据需求信息匹配的脚本所对应的数据通道,从而在第三映射表中新建一个表项,并将kafka数据源的名称或者脚本的名称、数据通道的通道标识导入该表项中,以实现对脚本与数据通道的映射关系的创建。0066由于数据需求信息未必存在数据分区的分区标识,当数据需求信息。

43、中未包含数据分区的分区标识时,确定该数据需求信息匹配的脚本需求对应的信息主题中的所有数据,因此,目标处理单元可以在数据需求信息中存在分区标识的情况下,将分区标识导入至与kafka数据源的名称或者脚本的名称对应的位置,从而实现对数据需求信息匹配的脚本与分区标识的映射关系建立。0067需要说明的是,通过上述过程,实现了对第三映射表的准确确定,从而便于提高数据传输的准确性。0068由此可见,本申请所提供的方案达到了在多个脚本需要获取相同数据的情况下共享同一个信息消费模块的目的,从而实现了减少资源浪费的技术效果,进而解决了相关技术中多个脚本在运行时各自读取相同的数据,从而导致资源浪费的技术问题。006。

44、9实施例20070根据本发明实施例,提供了一种数据处理装置的实施例,其中,如图4所示,该装置包括:0071获取模块401,用于获取多个脚本的数据需求信息,其中,数据需求信息至少包括脚本需要订阅的信息主题的主题标识;0072第一创建模块402,用于对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块;0073发送模块403,用于通过各个信息消费模块从信息消费模块对应的信息主题中获取数据,并将获取到的数据的内容发送至多个脚本。0074可选的,在本实施例中,将目标处理单元作为执行主体,图2是根据本发明实施例的一种可选的脚本与目标处理单元的示意图,如图2所示,目标处理单元与前述。

45、的多个脚本运行在系统的同一进程内。其中,脚本可以是指SiddhiQL脚本,根据实际应用场景的不同,脚本也可以是其它类型的脚本。0075每个脚本在进程内运行时包含kafka数据源实现,kafka数据源可以理解为是基于脚本中的部分内容实现的数据获取模块。在进程启动后,会先启动目标处理单元,再运行进说明书8/13 页11CN 117707707 A11程内的脚本,在脚本启动运行并构建kafka数据源后,如图2所示,目标处理单元与进程内所有脚本(即图2中的脚本1、脚本2脚本k)的kafka数据源进行通信,以收集每一个kafka数据源提供的数据需求信息。0076其中,数据需求信息至少包括脚本需要订阅的信。

46、息主题(Topic)的主题标识,还可以包括脚本的名称、kafka数据源在脚本中的名称、订阅的信息主题的数据分区的分区标识、脚本进行数据传输所需的数据通道的通道标识。其中,信息主题包括至少一个数据分区。0077例如,假设存在5个数据需求信息,若所有数据需求信息中的主题标识分别为A、B、C、D、E,则确定这5个数据需求信息对应于5个不同的信息主题,在此情况下,创建5个kafka消费者,也即创建5个信息消费模块。若所有数据需求信息中的主题标识分别为A、B、C、A、C,则确定这5个数据需求信息对应于3个不同的信息主题,此情况下,创建3个kafka消费者。0078在数据传递的过程中,目标处理单元承担所有。

47、脚本的kafka数据源的数据代理的角色。当目标处理单元创建好一个信息消费模块以后,就会立刻启动该信息消费模块从kafka不断读取对应的信息主题的数据,然后将这些数据转发给每一个订阅该信息主题的脚本中的kafka数据源。0079在上述过程中,通过获取多个脚本的数据需求信息,实现了对各个脚本需要获取的数据的有效确定,通过对于所有数据需求信息中不同的主题标识所对应的信息主题,创建不同的信息消费模块,实现了在多个脚本需要获取相同数据的情况下共享同一个信息消费模块,从而可以避免存在冗余的信息消费模块,减少内存资源浪费。通过利用信息消费模块实现数据获取并将数据转达给脚本,避免了多个脚本均执行数据读取时浪费。

48、IO资源,从而更进一步地减少了资源浪费。0080由此可见,本申请所提供的方案达到了在多个脚本需要获取相同数据的情况下共享同一个信息消费模块的目的,从而实现了减少资源浪费的技术效果,进而解决了相关技术中多个脚本在运行时各自读取相同的数据,从而导致资源浪费的技术问题。0081需要说明的是,上述获取模块401、第一创建模块402以及发送模块403对应于上述实施例中的步骤S101至步骤S103,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。0082可选的,第一创建模块402还包括:判断子模块,用于对于每个数据需求信息,判断第一映射表中是否存在数据需求信息中的主题标识。

49、,其中,第一映射表用于记录主题标识与信息消费模块之间的映射关系;创建子模块,用于在第一映射表中不存在数据需求信息中的主题标识的情况下,在第一映射表中新增主题标识,并创建与主题标识所属的信息主题对应的信息消费模块。0083可选的,如图2所示,目标处理单元内维护有消费者映射表,该消费者映射表即为第一映射表。在第一映射表中每一个信息主题的主题标识对应一个kafka消费者的模块标识。例如,图2中消费者映射表左侧的“topic1”、“topic2”分别为主题标识,图2中消费者映射表右侧的“消费者1”、“消费者2”分别为kafka消费者的模块标识。通过查询该表,目标处理单元可以知道每一个信息主题所对应的k。

50、afka消费者,例如,图2中“topic1”对应的kafka消费者为“消费者1”,“topic2”对应的kafka消费者为“消费者2”。其中,主题标识与信息主题一一对应。说明书9/13 页12CN 117707707 A120084在创建kafka消费者(也即创建信息消费模块)的过程中,对于每个数据需求信息,在消费者映射表中不存在该数据需求信息中的主题标识的情况下,确定之前没有其它脚本订阅该主题标识对应的信息主题,在此情况下,目标处理单元可以在消费者映射表中新建一个用于填写主题标识的表项,将主题标识导入该表项中,并创建与该主题标识所属的信息主题对应的kafka消费者。图3是根据本发明实施例的一。

展开阅读全文
内容关键字: 数据处理 方法 装置 计算机 可读 存储 介质 电子设备
关于本文
本文标题:数据处理方法、装置、计算机可读存储介质及电子设备.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/14494090.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1