1.本发明涉及计算机技术领域,尤其涉及一种流式数据处理方法、规则插件、流式数据处理模块及系统。
背景技术:2.随着智能家居行业日新月异的发展,智能家用电器可以为用户提供更丰富、更优质的服务。智能家用电器可以连接至物联网平台,并可以向物联网平台发送流式数据,例如:周期性采集的环境温度、环境湿度以及智能家用电器的地理位置信息等。物联网平台可以基于用户自定义的业务规则,对智能家用电器发送的流式数据进行实时的数据处理,并将数据处理结果实时返回智能家用电器。
3.通常情况下,物联网平台连接有海量的智能家用电器。物联网平台需基于每一智能家用电器对应的业务规则,对各智能家用电器发送的海量的流式数据的进行数据处理。
4.基于现有的流式数据处理方法对海量的流式数据进行数据处理时,难以实现不同语言的业务规则的加载,例如:基于flink对物联网平台接收到的海量数据进行流式数据处理时,flink仅支持简单的规则录入,难以实现lambda表达式或sql语句的业务规则的加载。
技术实现要素:5.本发明提供一种流式数据处理方法、规则插件、流式数据处理模块及系统,用以解决现有技术中难以实现不同语言的业务规则的加载的缺陷,实现加载不同数据源类型的业务规则。
6.本发明提供一种流式数据处理方法,包括:
7.响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则;
8.基于待处理流式数据的数据源类型,对所述原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的目标业务规则,以使得所述流式数据处理模块基于所述目标业务规则,对所述待处理流式数据进行处理。
9.根据本发明提供的一种流式数据处理方法,所述获取待处理流式数据对应的原始业务规则,包括:
10.基于所述待处理流式数据的特征信息,从业务规则模块调取所述待处理流式数据对应的原始业务规则;
11.其中,所述业务规则模块,用于存储业务规则;所述业务规则,包括所述原始业务规则;所述业务规则的语言为目标语言。
12.根据本发明提供的一种流式数据处理方法,所述基于待处理流式数据的数据源类型,对所述原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的目标业务规则,包括:
13.基于目标协议对所述原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的目标业务规则;
14.其中,所述目标协议,与所述目标语言和所述待处理流式数据的数据源类型相对应。
15.根据本发明提供的一种流式数据处理方法,所述业务规则模块,还可以用于对所述业务规则进行更新。
16.根据本发明提供的一种流式数据处理方法,所述基于待处理流式数据的数据源类型,对所述原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的目标业务规则之后,所述方法还包括:
17.在所述业务规则模块对所述业务规则进行更新的情况下,获取更新后的原始业务规则,并基于所述待处理流式数据的数据源类型,对所述更新后的原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的更新后的目标业务规则,以使得所述流式数据处理模块基于所述更新后的目标业务规则,对所述待处理流式数据进行处理。
18.根据本发明提供的一种流式数据处理方法,所述响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则之前,所述方法还包括:
19.基于所述目标语言进行初始化。
20.本发明还提供一种流式数据处理方法,包括:
21.获取待处理流式数据;
22.规则插件获取所述待处理流式数据对应的原始业务规则,并基于所述待处理流式数据的数据源类型,对所述原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的目标业务规则;
23.接收所述规则插件发送的所述目标业务规则,并基于所述目标业务规则,对所述待处理流式数据进行处理。
24.根据本发明提供的一种流式数据处理方法,所述基于所述目标业务规则,对所述待处理流式数据进行处理,包括:
25.基于所述目标业务规则,对所述待处理流式数据进行数据源演变,获取所述待处理流式数据的数据处理结果;
26.相应地,所述基于所述目标业务规则,对所述待处理流式数据进行处理之后,所述方法还包括:
27.将所述数据处理结果存储至所述数据处理结果的数据源类型对应的数据存储模块。
28.本发明还提供一种流式数据处理模块,包括:
29.规则获取模块,用于响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则;
30.规则解析模块,用于基于待处理流式数据的数据源类型,对所述原始业务规则进行解析,获取与所述待处理流式数据的数据源类型匹配的目标业务规则,以使得所述流式数据处理模块基于所述目标业务规则,对所述待处理流式数据进行处理。
31.本发明还提供一种流式数据处理模块,包括:
32.数据获取模块,用于获取待处理流式数据;
33.规则加载模块,用于触发规则插件获取所述待处理流式数据对应的原始业务规则,并基于所述待处理流式数据的数据源类型,对所述原始业务规则进行解析,获取与所述
待处理流式数据的数据源类型匹配的目标业务规则;
34.数据处理模块,用于接收所述规则插件发送的所述目标业务规则,并基于所述目标业务规则,对所述待处理流式数据进行处理。
35.本发明还提供一种流式数据处理系统,包括:如上所述的流式数据处理模块和如上所述的规则插件。
36.根据本发明提供的一种流式数据处理系统,还包括:业务规则模块;
37.所述规则插件,用于响应于流式数据处理模块的触发,基于所述待处理流式数据的特征信息,从所述业务规则模块调取所述待处理流式数据对应的原始业务规则;
38.所述业务规则模块,用于存储业务规则;所述业务规则,包括所述原始业务规则;所述业务规则的语言为目标语言。
39.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述流式数据处理方法的步骤。
40.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述流式数据处理方法的步骤。
41.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述流式数据处理方法的步骤。
42.本发明提供的流式数据处理方法、规则插件、流式数据处理模块及系统,通过流式数据处理模块获取流式的待处理流式数据之后,规则插件获取待处理流式数据对应的原始业务规则,规则插件基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据源类型匹配的目标业务规则,流式数据处理模块基于上述目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的加载,能实现远程调用业务规则或跨平台调用业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
附图说明
43.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是现有的流式数据处理方法的流程示意图;
45.图2是本发明提供的流式数据处理方法的流程示意图之一;
46.图3是本发明提供的流式数据处理方法的流程示意图之二;
47.图4是本发明提供的规则插件的结构示意图;
48.图5是本发明提供的流式数据处理模块的结构示意图;
49.图6是本发明提供的流式数据处理系统的结构示意图;
50.图7是本发明提供的电子设备的结构示意图。
具体实施方式
51.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
52.在发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
53.需要说明的是,物联网(internet of things,简称iot),是一种基于互联网、传统电信网等的信息承载体,可以让所有能够被独立寻址的普通物理对象形成互联互通的网络。通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。
54.通常情况下,数据源类型可以包括但不限于kafka数据源、mq数据源、mysql数据源、flink数据源、spark数据源以及sql数据源等。基于kafka、kafka stream、redis、spark以及flink等数据处理引擎可以对物联网平台接收到的海量数据进行流式数据处理。
55.但是,基于上述数据处理引擎进行流式数据处理的过程中,若任一业务规则的语言与上述数据处理引擎的数据源类型不匹配,则上述数据处理引擎难以该业务规则。基于上述数据处理引擎进行流式数据处理的过程中,上述数据处理引擎也难以实现远程调用业务规则或多语言跨平台调用业务规则,需要引入额外的规则配置引擎才能对语言语言与上述数据处理引擎的数据源类型不匹配的业务规则进行加载,或实现远程调用业务规则或多语言跨平台调用业务规则。
56.图1是现有的流式数据处理方法的流程示意图。如图1所示,流式数据输入如上所述的数据处理引擎101之后,数据处理引擎101将流式数据发送至如上所述的规则配置引擎102,规则配置引擎102基于预设的业务规则对流式数据进行筛选,输出符合上述业务规则的数据。
57.基于规则配置引擎102对业务规则进行加载的灵活性较差,对于海量数据以及对应的海量业务规则会占用规则配置引擎102较多的内存,导致加载业务规则的效率较低,从而降低海量数据的流式处理效率。
58.图2是本发明提供的流式数据处理方法的流程示意图之一。下面结合图2描述本发明的流式数据处理方法。如图2所示,该方法包括:步骤201、响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则。
59.需要说明的是,本发明实施例的执行主体为规则插件。规则插件可以与流式数据处理模块无缝集成。本发明实施例中的流式数据处理模块,可以包括kafka、kafka stream、redis、spark以及flink等流式数据处理引擎。
60.具体地,流式数据处理模块获取流式的待处理流式数据之后,可以通过多种方式对规则插件进行触发。例如:可以通过向规则插件发送触发指令的方式,对规则插件进行触发;或者,规则插件还可以对流式数据处理模块进行监听,并在监听到流式数据处理模块获
取到待处理流式数据的情况下,实现自行触发。
61.规则插件可以响应于流式数据处理模块的触发,从已存储的业务规则中调取待处理流式数据对应的原始业务规则。
62.需要说明的是,已存储的所有业务规则的编写语言均为目标语言。原始业务规则的编写语言为目标语言。
63.优选地,结构化查询语言(structured query language,简称sql),是一种通用的编程语言,是一种数据库查询和程序设计语言,允许用户在高层数据结构上工作,并不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,使得sql具有极大的灵活性和强大的功能。
64.优选地,基于sql语言的上述优势,本发明实施例中的目标语言可以为sql语言,从而可以实现业务规则的一致化存储,还可以使得用户基于通用的sql语言更简单、更高效的进行业务规则配置等。
65.规则插件还可以响应于流式数据处理模块的触发,通过远程调用、跨平台调用等方式获取待处理流式数据对应的原始业务规则。其中,上述原始业务规则的语言也为目标语言。
66.步骤202、基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,以使得流式数据处理模块基于目标业务规则,对待处理流式数据进行处理。
67.具体地,规则插件获取待处理流式数据的原始业务规则之后,可以基于待处理流式数据的数据源类型,通过多种方式对上述原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,例如:可以基于预先构建的机器编程语言转化模型,基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则。例如:在原始业务规则为sql语言,待处理流式数据的数据源类型为kafka数据源的情况下,可以基于预先构建的机器编程语言转化模型,对原始业务规则进行解析,获取语义与kafka数据源匹配的目标业务规则。
68.规则插件获取与待处理流式数据的数据源类型匹配的目标业务规则之后,可以将上述目标业务规则发送至流式数据处理模块。
69.流式数据处理模块接收上述目标业务规则之后,可以基于上述目标业务规则,对待处理流式数据进行处理,并可以向待处理流式数据的发送端实时返回数据处理结果。
70.优选地,本发明实施例里中待处理流式数据的数据源类型,可以包括kafak数据源、mq数据源、mysql数据源、flink数据源以及spark数据源。
71.本发明实施例通过流式数据处理模块获取流式的待处理流式数据之后,规则插件获取待处理流式数据对应的原始业务规则,规则插件基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据源类型匹配的目标业务规则,流式数据处理模块基于上述目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的加载,能实现远程调用业务规则或跨平台调用业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
72.基于上述各实施例的内容,获取待处理流式数据对应的原始业务规则,包括:基于待处理流式数据的特征信息,从业务规则模块调取待处理流式数据对应的原始业务规则。其中,业务规则模块,用于存储业务规则;业务规则,包括原始业务规则;业务规则的语言为目标语言。
73.具体地,规则插件可以通过多种方式获取待处理流式数据的特征信息,例如:流式数据处理模块可以向规则插件发送携带有待处理流式数据的特征信息的触发指令,规则插件接收到上述触发指令之后,可以获取待处理流式数据的特征信息;或者,规则插件还可以对待处理流式数据进行特征提取,获取待处理流式数据的特征信息。
74.需要说明的是,待处理流式数据的特征信息,可以包括但不限于待处理流式数据的发送端的标识信息、待处理流式数据的业务信息以及待处理流式数据的数据源类型等。
75.业务规则模块可以用于存储目标语言的业务规则,可以与规则插件进行配合。
76.需要说明的是,业务规则模块可以通过多种方式获取目标语言的业务规则。例如:业务规则模块可以响应于用户基于目标语言的业务规则配置操作,获取并存储目标语言的业务规则;或者,业务规则模块还可以通过远程调用、跨平台获取业务规则,并在业务规则的语言不为目标语言的情况下,通过对上述业务规则的解析,获取并存储目标语言的业务规则。
77.规则插件基于待处理流式数据的特征信息,可以在业务规则模块中进行查找并调用待处理流式数据对应的原始业务规则。
78.本发明实施例通过基于待处理流式数据的特征信息,从业务规则模块调取待处理流式数据对应的原始业务规则,能基于存储有目标语言的业务规则的业务规则模块更高效、更准确的获取待处理流式数据对应的原始业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
79.基于上述各实施例的内容,基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取待处理流式数据对应的目标业务规则,包括:基于目标协议对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则;其中,目标协议,与目标语言和待处理流式数据的数据源类型相对应。
80.具体地,规则插件获取待处理流式数据对应的原始业务规则之后,可以基于待处理流式数据的数据源类型,将与目标语言和待处理流式数据的数据源类型对应的数据源交互协议作为目标协议。
81.基于上述目标协议,可以对上述原始业务规则进行解析,获得目标业务规则。上述目标业务规则的语义与待处理流式数据的数据源类型相匹配,例如:在原始业务规则为sql语言,待处理流式数据的数据源类型为kafka数据源的情况下,可以基于sql语言和kafka数据源对应的目标协议,对原始业务规则进行解析,获取语义与kafka数据源匹配的目标业务规则。
82.本发明实施例通过基于目标协议对待处理流式数据对应的原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
83.基于上述各实施例的内容,业务规则模块,还可以用于对业务规则进行更新。
84.通常情况下,物联网平台连接有海量的智能家用电器。对于连接至物联网平台的
每一智能家用电器,上述智能家用电器的用户可以随时进行新规则的配置或对已配置的规则进行更新。物联网平台需基于每一智能家用电器对应的可变的业务规则,对各智能家用电器发送的海量的流式数据进行数据处理。
85.具体地,业务规则模块还可以接收用户的输入,并可以基于用户的输入,对业务规则模块中已存储的业务规则进行更新。
86.需要说明的是,对业务规则进行更新,可以包括在业务规则模块中新增目标语言的业务规则、删除已存储的业务规则,冻结某一业务规则使之暂时无法被规则插件调取以及启用某一已被冻结的业务规则使之可以被规则插件调取。
87.可选地,业务规则模块还可以基于用户的输入对原始业务规则进行更新。
88.本发明实施例中的业务规则模块可以基于用户的数据对已存储的业务规则进行更新,能实现业务规则的自定义配置,能支持更丰富的特性设置,能为动态加载不同语言的业务规则提供数据基础。
89.基于上述各实施例的内容,基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取待处理流式数据对应的目标业务规则之后,方法还包括:在业务规则模块对业务规则进行更新的情况下,获取更新后的原始业务规则,并基于待处理流式数据的数据源类型,对更新后的原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的更新后的目标业务规则,以使得流式数据处理模块基于更新后的目标业务规则,对待处理流式数据进行处理。
90.具体地,业务规则模块基于用户的输入对已存储的业务规则进行更新之后,规则插件可以基于待处理流式数据的特征信息,在更新后的业务规则中进行查找并调用更新后的原始业务规则。
91.规则插件还可以基于待处理流式数据的数据源类型,基于目标语言和待处理流式数据的数据源类型对应的目标协议,对更新后的原始业务规则进行解析,获取语义与待处理流式数据的数据源类型匹配的更新后的目标业务规则。
92.流式数据处理模块可以基于更新后的目标业务规则,对待处理流式数据进行处理,并可以向待处理流式数据的发送端实时返回数据处理结果。
93.本发明实施例通过在业务规则模块基于用户的输入,对业务规则进行更新的情况下,规则插件获取更新后的原始业务规则,并基于待处理流式数据的数据源类型,对更新后的原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的更新后的目标业务规则,流式数据处理模块基于更新后的目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的动态加载,能更灵活、更高效和更简单的实现业务规则的动态加载。
94.基于上述各实施例的内容,响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则之前,上述方法还包括:基于目标语言进行初始化。
95.具体地,规则插件在基于待处理流式数据的数据源类型,对待处理流式数据对应的原始业务规则进行解析之前,规则插件可以基于目标语言进行初始化。例如:基于目标语言进行预编译,获取不同的数据源类型的语义;或者,获取目标语言与不同数据源类型对应的数据源交互协议;或者,获取预先构建的机器编程语言转化模型等。
96.本发明实施例通过规则插件响应于流式数据处理模块的触发,获取待处理流式数
据对应的原始业务规则之前,基于目标语言进行初始化,能提高动态加载不同语言的业务规则的效率和准确率。
97.图3是本发明提供的流式数据处理方法的流程示意图之二。下面结合图3描述本发明的流式数据处理方法。如图3所示,该方法包括:
98.步骤301、获取待处理流式数据。
99.需要说明的是,本发明实施例的执行主体为流式数据处理模块。上述流式数据处理模块,可以包括kafka、kafka stream、redis、spark以及flink等流式数据处理引擎。
100.可选地,流式数据处理模块可以通过多种方式获取待处理流式数据,例如:可以通过监听的方式获取待处理流式数据。
101.需要说明的是,待处理流式数据可以为某一电子设备发送的流式数据。其中,上述电子设备作为待处理流式数据的发送端,可以为智能家用电器、移动终端以及pc端等。
102.步骤302、规则插件获取待处理流式数据对应的原始业务规则,并基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则。
103.具体地,规则插件可以与流式数据处理模块无缝集成。流式数据处理模块获取待处理流式数据之后,可以规则插件获取待处理流式数据对应的原始业务规则。
104.可选地,流式数据处理模块可以向规则插件发送携带有待处理流式数据的特征信息的触发指令,规则插件接收到上述触发指令之后,可以响应于上述触发指令,基于待处理流式数据的特征信息,可以从已存储的业务规则中,获取待处理流式数据对应的原始业务规则。
105.需要说明的是,待处理流式数据的特征信息,可以包括但不限于待处理流式数据的发送端的标识信息、待处理流式数据的业务信息以及待处理流式数据的数据源类型等。
106.可选地,规则插件还可以对流式数据处理模块进行监听,在流式数据处理模块获取到待处理流式数据的情况下,获取待处理流式数据的特征数据,并基于待处理流式数据的特征数据,自行触发获取待处理流式数据对应的原始业务规则。
107.需要说明的是,已存储的所有业务规则的语言均为目标语言。原始业务规则的语言为目标语言。
108.需要说明的是,结构化查询语言(structured query language,简称sql),是一种通用的编程语言,是一种数据库查询和程序设计语言,允许用户在高层数据结构上工作,并不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,使得sql语言具有极大的灵活性和强大的功能。
109.优选地,基于sql语言的上述优势,本发明实施例中的目标语言可以为sql语言,从而可以实现业务规则的一致化存储,还可以使得用户基于通用的sql语言更简单、更高效的进行业务规则配置等。
110.可选地,规则插件还可以通过远程调用、跨平台调用等方式获取待处理流式数据对应的原始业务规则。其中,上述原始业务规则的语言也为目标语言。
111.规则插件获取待处理流式数据对应的原始业务规则之后,可以基于目标语言和待处理流式数据的数据源类型,基于预先确定的数据源交互协议,对上述原始业务规则进行
解析,获得语义与待处理流式数据的数据源类型相匹配目标业务规则。其中,预先确定的数据源交互协议与目标语言和待处理流式数据的数据源类型相对应。例如:在原始业务规则为sql语言,待处理流式数据的数据源类型为kafka数据源的情况下,可以基于sql语言和kafka数据源对应的数据源交互协议,对原始业务规则进行解析,获取语义与kafka数据源匹配的目标业务规则。
112.优选地,本发明实施例中待处理流式数据的数据源类型,可以包括kafak数据源、mq数据源、mysql数据源、flink数据源以及spark数据源。
113.规则插件获取与待处理流式数据的数据源类型匹配的目标业务规则之后,可以将上述目标业务规则发送至流式数据处理模块。
114.步骤303、接收规则插件发送的目标业务规则,并基于目标业务规则,对待处理流式数据进行处理。
115.具体地,基于与待处理流式数据的数据源类型匹配的目标业务规则,可以对待处理流式数据进行处理,并可以向待处理流式数据的发送端实时返回数据处理结果。
116.本发明实施例通过流式数据处理模块获取流式的待处理流式数据之后,规则插件获取待处理流式数据对应的原始业务规则,规则插件基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据源类型匹配的目标业务规则,流式数据处理模块基于上述目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的加载,能实现远程调用业务规则或跨平台调用业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
117.基于上述各实施例的内容,所述基于所述目标业务规则,对所述待处理流式数据进行处理,包括:基于所述目标业务规则,对所述待处理流式数据进行数据源演变,获取所述待处理流式数据的数据处理结果;
118.具体地,流式数据处理模块接收到规则插件发送的目标业务规则之后,若目标业务规则包括对待处理流式数据进行数据源演变的内容,则可以基于目标业务规则对待处理流式数据进行数据源演变,并可以获取待处理流式数据的数据处理结果。
119.相应地,所述基于所述目标业务规则,对所述待处理流式数据进行处理之后,所述方法还包括:将所述数据处理结果存储至所述数据处理结果的数据源类型对应的数据存储模块。
120.具体地,获取待处理流式数据的数据处理结果之后,可以基于上述数据处理结果的数据源类型,将上述数据处理结果存储至上述数据处理结果的数据源类型对应的数据存储模块。
121.例如:若上述数据处理结果的数据源类型为kafka数据源、mq数据源或mysql数据源等具有数据存储功能的数据源,则可以将上述数据处理结果存储至第一数据存储模块。其中,第一数据存储模块与kafka数据源、mq数据源和mysql数据源相对应。
122.又例如:若上述数据处理结果的数据源类型为flink数据源或spark数据源等具备计算功能但不具备数据存储功能的数据源,则可以将上述数据处理结果存储至第二数据存储模块。其中,第二数据存储模块可以与flink数据源和spark数据源相对应。
123.需要说明的是,数据存储模块,可以为本地存储模块,还可以是外设的存储模块,
例如:云端存储模块。
124.本发明实施例通过基于目标业务规则对待处理流式数据进行数据源演变,获取待处理流式数据的数据处理结果之后,将上述数据处理结果存储至上述数据处理结果的数据源对应的数据存储模块,能对待处理流式处理的数据处理结果进行留存,能为后期的数据分析提供数据基础。
125.图4是本发明提供的规则插件的结构示意图。下面结合图4对本发明提供的规则插件进行描述,下文描述的规则插件与上文描述的本发明提供的流式数据处理方法可相互对应参照。如图4所示,该规则插件包括:规则获取模块401和规则解析模块402。
126.规则获取模块401,用于响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则。
127.规则解析模块402,用于基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,以使得流式数据处理模块基于目标业务规则,对待处理流式数据进行处理。
128.具体地,规则获取模块401和规则解析模块402。
129.需要说明的是,本发明实施例中的规则插件可以与流式数据处理模块无缝集成。上述流式数据处理模块,可以包括kafka、kafka stream、redis、spark以及flink等流式数据处理引擎。
130.规则获取模块401可以响应于流式数据处理模块的触发,从已存储的业务规则中调取待处理流式数据对应的原始业务规则。
131.规则解析模块402可以基于待处理流式数据的数据源类型,通过多种方式对上述原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,例如:可以基于预先构建的机器编程语言转化模型,基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则。例如:在原始业务规则为sql语言,待处理流式数据的数据源类型为kafka数据源的情况下,可以基于预先构建的机器编程语言转化模型,对原始业务规则进行解析,获取语义与kafka数据源匹配的目标业务规则。
132.本发明实施例通过流式数据处理模块获取流式的待处理流式数据之后,规则插件获取待处理流式数据对应的原始业务规则,规则插件基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据源类型匹配的目标业务规则,流式数据处理模块基于上述目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的加载,能实现远程调用业务规则或跨平台调用业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
133.图5是本发明提供的流式数据处理模块的结构示意图。下面结合图5对本发明提供的流式数据处理模块进行描述,下文描述的流式数据处理模块与上文描述的本发明提供的流式数据处理方法可相互对应参照。如图5所示,该装置包括:数据获取模块501、规则加载模块502和数据处理模块503。
134.数据获取模块501,用于获取待处理流式数据。
135.规则加载模块502,用于规则插件获取待处理流式数据对应的原始业务规则,并基
于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则。
136.数据处理模块503,用于接收规则插件发送的目标业务规则,并基于目标业务规则,对待处理流式数据进行处理。
137.具体地,数据获取模块501、规则加载模块502和数据处理模块503电连接。
138.需要说明的是,本发明实施例中的流式数据处理模块可以包括kafka、kafka stream、redis、spark以及flink等流式数据处理引擎。
139.数据获取模块501可以通过多种方式获取待处理流式数据,例如:可以通过监听的方式获取待处理流式数据。
140.需要说明的是,待处理流式数据可以为某一电子设备发送的流式数据。其中,上述电子设备作为待处理流式数据的发送端,可以为智能家用电器、移动终端以及pc端等。
141.规则插件可以与规则加载模块502无缝集成。规则加载模块502规则插件获取待处理流式数据对应的原始业务规则。
142.可选地,规则加载模块502可以向规则插件发送携带有待处理流式数据的特征信息的触发指令,规则插件接收到上述触发指令之后,可以响应于上述触发指令,基于待处理流式数据的特征信息,可以从已存储的业务规则中,获取待处理流式数据对应的原始业务规则。
143.需要说明的是,待处理流式数据的特征信息,可以包括但不限于待处理流式数据的发送端的标识信息、待处理流式数据的业务信息以及待处理流式数据的数据源类型等。
144.数据处理模块503可以基于与待处理流式数据的数据源类型匹配的目标业务规则,对待处理流式数据进行处理,并可以向待处理流式数据的发送端实时返回数据处理结果。
145.本发明实施例通过流式数据处理模块获取流式的待处理流式数据之后,规则插件获取待处理流式数据对应的原始业务规则,规则插件基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据源类型匹配的目标业务规则,流式数据处理模块基于上述目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的加载,能实现远程调用业务规则或跨平台调用业务规则,能更灵活、更高效和更简单的实现业务规则的加载,能提高海量数据的流式处理效率。
146.图6是本发明提供的流式数据处理系统的结构示意图。下面结合图6对本发明提供的流式数据处理系统进行描述,下文描述的流式数据处理系统与上文描述的本发明提供的流式数据处理方法可相互对应参照。如图6所示,该系统包括:如上所述的流式数据处理模块601和规则插件602。
147.具体地,本发明实施例中的流式数据处理系统包括如上所述的流式数据处理模块601和规则插件602,可以在进行流式数据处理时实现不同语言的业务规则的动态加载,并实现远程调用业务规则或跨平台调用业务规则。
148.需要说明的是,流式数据处理模块601和规则插件602的具体结构、工作流程,以及流式数据处理模块601与规则插件602之间的交互过程可以参见上述各实施例的内容,此处不再赘述。
149.本发明实施例通过流式数据处理模块获取流式的待处理流式数据之后,规则插件获取待处理流式数据对应的原始业务规则,规则插件基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据源类型匹配的目标业务规则,流式数据处理模块基于上述目标业务规则,对待处理流式数据进行处理,能基于与流式数据处理模块无缝集成的规则插件,在进行流式数据处理时实现不同语言的业务规则的动态加载,能实现远程调用业务规则或跨平台调用业务规则,能更灵活、更高效和更简单的实现业务规则的动态加载,能提高海量数据的流式处理效率。
150.基于上述各实施例的内容,流式数据处理系统,还包括业务规则模块603。
151.规则插件602,用于响应于流式数据处理模块的触发,基于待处理流式数据的特征信息,从业务规则模块调取待处理流式数据对应的原始业务规则。
152.业务规则模块603,用于存储业务规则;业务规则,包括原始业务规则;业务规则的语言为目标语言。
153.具体地,规则插件602基于待处理流式数据的特征信息,可以在业务规则模块中进行查找并调用待处理流式数据对应的原始业务规则。
154.业务规则模块603可以用于存储目标语言的业务规则,可以与规则插件进行配合。
155.需要说明的是,业务规则模块603可以通过多种方式获取目标语言的业务规则。例如:业务规则模块603可以响应于用户基于目标语言的业务规则配置操作,获取并存储目标语言的业务规则;或者,业务规则模块603还可以通过远程调用、跨平台获取业务规则,并在业务规则的语言不为目标语言的情况下,通过对上述业务规则的解析,获取并存储目标语言的业务规则。
156.可选地,业务规则模块603还可以用于基于用户的输入,对业务规则进行更新。
157.相应地,规则插件602还可以用于在业务规则模块基于用户的输入,对业务规则进行更新的情况下,获取更新后的原始业务规则,并基于待处理流式数据的数据源类型,对更新后的原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的更新后的目标业务规则,以使得流式数据处理模块基于更新后的目标业务规则,对待处理流式数据进行处理。
158.需要说明的是,流式数据处理系统还可以包括至少一个数据存储模块。
159.流式数据处理模块基于目标业务规则,对待处理流式处理进行数据源演变,获取待处理流式数据的数据处理结果之后,数据存储模块可以用于存储数据源类型对应的上述数据处理结果。
160.本发明实施例中的流式数据处理系统,规则插件基于待处理流式数据的特征信息,从业务规则模块调取待处理流式数据对应的原始业务规则,能基于存储有目标语言的业务规则的业务规则模块更高效、更准确的获取待处理流式数据对应的原始业务规则,能更灵活、更高效和更简单的实现业务规则的动态加载,能提高海量数据的流式处理效率。
161.图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communications interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行流式数据处理方法,该方法包括:响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则;基于待处理
流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,以使得流式数据处理模块基于目标业务规则,对待处理流式数据进行处理。以及获取待处理流式数据;规则插件获取待处理流式数据对应的原始业务规则,并基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则;接收规则插件发送的目标业务规则,并基于目标业务规则,对待处理流式数据进行处理。
162.此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
163.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的流式数据处理方法,该方法包括:响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则;基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,以使得流式数据处理模块基于目标业务规则,对待处理流式数据进行处理。以及获取待处理流式数据;规则插件获取待处理流式数据对应的原始业务规则,并基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则;接收规则插件发送的目标业务规则,并基于目标业务规则,对待处理流式数据进行处理。
164.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的流式数据处理方法,该方法包括:响应于流式数据处理模块的触发,获取待处理流式数据对应的原始业务规则;基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则,以使得流式数据处理模块基于目标业务规则,对待处理流式数据进行处理。以及获取待处理流式数据;规则插件获取待处理流式数据对应的原始业务规则,并基于待处理流式数据的数据源类型,对原始业务规则进行解析,获取与待处理流式数据的数据源类型匹配的目标业务规则;接收规则插件发送的目标业务规则,并基于目标业务规则,对待处理流式数据进行处理。
165.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
166.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可
借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
167.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。