CN116955427A - 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 - Google Patents
一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 Download PDFInfo
- Publication number
- CN116955427A CN116955427A CN202311202854.3A CN202311202854A CN116955427A CN 116955427 A CN116955427 A CN 116955427A CN 202311202854 A CN202311202854 A CN 202311202854A CN 116955427 A CN116955427 A CN 116955427A
- Authority
- CN
- China
- Prior art keywords
- data
- rule
- processing
- expression
- stream
- 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
- 230000014509 gene expression Effects 0.000 title claims abstract description 110
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012544 monitoring process Methods 0.000 claims abstract description 33
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 230000002776 aggregation Effects 0.000 claims description 28
- 238000004220 aggregation Methods 0.000 claims description 28
- 238000001914 filtration Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000005192 partition Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000379 polymerizing effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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)
- 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)
- Computing Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置,包括:从消息队列中获取数据流;通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。本申请可以在数据流中直接执行规则流的多个表达式规则,提升数据处理效率。
Description
技术领域
本申请各实施例属于数据处理技术领域,具体涉及一种基于Flink框架的实时多规则动态表达式数据方法以及装置。
背景技术
随着大数据分布式数据处理技术从基于Hadoop MR2(MapReduce2)技术的离线计算向基于Spark技术的内存离线和准实时计算发展,数据的处理周期从天级降到了分钟级。尽管Spark是非常优秀的分布式内存计算引擎,但根本上还是以批处理来实现流计算,无法真正意义上的实现实时处理,此时,Flink计算框架技术应运而生。
但是,Flink计算框架有着一定的使用门槛,通常需要通过基于Datastream API的方式写代码开发,开发周期长,代码可变动性小,且基于Yarn模式时,提交任务就需要20-50秒才能将任务运行起来,每个任务都会从Kafka拉取相同的数据,造成Kafka数据扇出非常大,任务量到一定量之后,数据拉取时的网络带宽占用和Kafka性能消耗较大,直接影响分析任务的启动数量。
当前,业界开源的Flink开发方案仍无法实现不编写代码即可实现数据分析,无法实现毫秒级提交任务进行计算,无法实现在数据流中执行表达式规则,无法实现动态的改变正在执行的任务内容和任务个数。
发明内容
为了解决现有技术存在的无法实现不编写代码即可实现数据分析,无法实现毫秒级提交任务进行计算,无法实现在数据流中执行表达式规则,无法实现动态的改变正在执行的任务内容和任务个数的技术问题,本发明提供了基于Flink框架的实时多规则动态表达式数据处理方法以及装置。
第一方面,本申请实施例提供了一种基于Flink框架的实时多规则动态表达式数据处理方法,包括:
从消息队列中获取数据流;
通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;
通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;
根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;
根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。
作为本申请一优选实施例,所述从消息队列中获取数据流,具体包括:
获取所述消息队列的安全日志,将Json格式的安全日志转换为Map类型的安全日志以获取数据流。
作为本申请一优选实施例,通过与所述数据流对应的表达式规则对所述数据流进行处理,包括:
通过所述数据流对应的规则流中的filter元素配置对数据流进行过滤,所述filter元素为通过表达式进行过滤,所述表达式通过java语言表达式和函数任意层级嵌套组成;
通过所述数据流对应的规则流中groupby元素配置的聚合条件对数据进行分区,将符合聚合条件的数据分发到各自的分区中;
通过所述数据流对应的规则流中window元素划分时间区域,对分区的数据进行指定时间区域内的聚合操作。
作为本申请一优选实施例,还包括:
配置第一监控数据点、第二监控数据点和第三监控数据点;
其中,所述第一监控数据点用于反馈经过过滤处理后数据,所述第二监控数据点用于反馈经过分区处理后数据,所述第三监控数据点用于反馈经聚合操作后的数据。
作为本申请一优选实施例,所述通过所述数据流对应的规则流中的filter元素配置对数据流进行过滤,包括:
设定数据筛选条件;
根据数据过滤表达式对数据进行过滤;
通过函数确定过滤后的数据是否符为符合要求的数据。
作为本申请一优选实施例,根据所述数据流过滤的表达式动态体调整函数;根据动态调整的函数选择待应用函数。所述函数可以无限进行扩充。
作为本申请一优选实施例,所述通过与所述数据流对应的规则流中window元素划分时间区域,对分区的数据进行指定时间区域内的聚合操作,包括:
判断是否通过所述数据流按照划分时间区域进行处理;
如果是,则所述数据流根据对应的规则流中window元素划分时间区域;
则对所述分区的数据进行指定时间区域内的聚合操作,并获取聚合操作结果,根据划分时间区域结束对所述分区的数据进行指定时间区域内的聚合操作以便将聚合操作结果上报至消息队列中。
作为本申请一优选实施例,所述通过与所述数据流对应的表达式规则对所述数据流进行处理,还包括:
获取停止规则请求,停止表达式规则对所述数据流处理过程。
作为本申请一优选实施例,所述将所述数据流处理结果同步到所述消息队列中之前,包括:
将所述数据流进行处理结果由Map类型转为Json结构。
与现有技术相比,本申请通过从消息队列中获取数据流;通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。本申请通过restful服务接收规则提交请求,规则提交请求采用规则流的方式提交任务,可以实现毫秒级提交任务,并可以在数据流中直接执行规则流的多个表达式规则,提升数据处理效率。
第二方面,本申请实施例还提供了一种基于Flink框架的实时多规则动态表达式数据处理装置,包括:
第一获取模块,用于从消息队列中获取数据流;
输入模块,用于通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;
第二获取模块,用于通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;
匹配模块,用于根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;
处理模块,用于根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。
第二方面,本申请实施例提供的一种基于Flink框架的实时多规则动态表达式数据处理装置有益效果与第一方面相同,在此不再赘述。
附图说明
图1是本发明提供的一种基于Flink框架的实时多规则动态表达式数据处理方法的流程示意图。
图2是本发明提供的一种基于Flink框架的实时多规则动态表达式数据处理装置的结构示意图。
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都应当属于本申请保护的范围。
本发明提供了一种基于Flink框架的实时多规则动态表达式数据处理方法,可以在Flink框架中实施,Flink框架是Apache基金会开发的顶级开源项目,它支持在大规模数据集上进行高效的实时计算。Flink框架提供了流处理和批处理的能力,以及基于事件驱动模型的精确一次处理保证,这使得它成为处理实时数据的首选框架之一。Flink框架的流处理模型是基于有向无环图(DAG)的流数据流图,它允许用户在数据流中定义一系列的操作,如数据的过滤、转换、聚合、窗口化、状态管理等。这些操作可以被组合成复杂的数据处理流程,Flink框架提供了高效的流数据传输和调度机制,保证了流数据的低延迟和高吞吐。
第一方面,参照图1,示出了本发明实施例提供的一种基于Flink框架的实时多规则动态表达式数据处理方法的流程示意图。
所述方法具体包括:
S101:从消息队列中获取数据流。
可选地,获取消息队列Kafka中的安全日志,Kafka是一种高性能分布式消息队列***,它是一种高吞吐量、低延迟的消息队列***,可以处理大量的实时数据流。
所述从消息队列中获取数据流,具体包括:
获取所述消息队列的安全日志,将Json格式的安全日志转换为Map类型的安全日志以获取数据流。
在一种可能的实施方式中,所述从消息队列中获取数据流,具体包括:
获取所述消息队列的安全日志,将Json格式的安全日志转换为Map类型的安全日志以获取数据流。
其中,Map是一种常用的数据结构,可以方便地存储和处理数据,Map类型数据的字段名称和值都可以直接读取和操作,使得数据分析和处理更加直观和简单。
对于Json格式的数据流,需要使用Json解析库进行解析,然后才能对数据进行操作。而将Json格式的数据流转换为Map类型数据后,可以使用各种编程语言的Map相关操作进行数据处理和分析。例如,在Java中,可以使用Map的遍历、查找、过滤、排序等操作,方便地进行数据分析和处理。数据处理的代码可以更加清晰和简洁,提高代码的可读性和可维护性。同时,将Json格式的数据流转换为Map类型数据还可以方便地进行数据转换和格式化。
具体的,获取消息队列的安全日志,从安全日志中提取数据流。
可选地,安全日志是一种用于记录安全事件的日志文件,当然获取数据流的方式不仅仅局限于安全日志,其他日志只要满足格式要求,也可以提取数据流。
S102:通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中。
其中,在实时多规则动态表达式数据处理引擎上设置有多个规则,通过用户点击开启规则,规则才能被启用,所有的数据都过每条规则,过规则中的filter元素,如果符合条件就来进入下一步,当数据流中的元素满足某个规则的条件时,相应的执行动作就会被触发,对数据进行相应的处理和操作。
其中,规则流可以理解为由多个按照顺序排列的表达式规则。
其中,ZooKeeper是一个开放源码的分布式应用程序协调服务。ZooKeeper中存储表达式规则的目录,可以通过Flink的ZooKeeper Connector(ZooKeeper连接器)来监测ZooKeeper中存储表达式规则的目录。当这些规则发生变化时,ZooKeeper会通知Flink应用程序,并触发广播流的更新。随后,任务的并行实例可以获取更新后的广播流,并使用其中的规则来进行相关的计算和处理。通过此种方式获取规则流可以实现动态的表达式规则的管理和使用,以便应对不断变化的业务需求。
需要说明的是,用户在提交规则时,***中的Resful服务可以接收用户的规则提交请求,并将规则按照提交顺序存储在ZooKeeper中。
步骤S103,通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;
需要说明的时,当监听到分布式应用程序服务Zookeeper中存储的规则目录有新增时,获取新增的规则内容以便处理数据流。
步骤104,根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;
需要说明的是,因为在消息队列中数据流是根据分类进行存储,所以对应每类数据需要同时分配多个表达式规则,以建立多个所述数据流与其对应的表达式规则的映射关系;具体的建立映射关系是在对应的数据流上进行打标以标注此数据流对应的表达式规则。
步骤105,根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。
通过与所述数据流对应的表达式规则对所述数据流进行处理,包括:
通过所述数据流对应的规则流中的filter元素配置对数据流进行过滤,所述filter元素为通过表达式进行过滤,所述表达式通过java语言表达式和函数任意层级嵌套组成;采用规则流中配置表达式规则的方式对数据流处理的优点在于:可以在运行时动态地添加、删除和修改规则,以便应对不断变化的业务需求。需要说明是,通过多个进程进行处理至少一个规则,多个进程可以并行进行。
通过所述数据流对应的规则流中groupby元素配置的聚合条件对数据进行分区,将符合聚合条件的数据分发到各自的分区中;
需要说明的是,通过Flink框架和Janino规则引擎结合进行数据过滤,Janino规则引擎实际上为代码编译器,通过Janino规则引擎可以实时对表达式规则进行编译。
通过所述数据流对应的规则流中window元素划分时间区域,对分区的数据进行指定时间区域内的聚合操作。
所述通过所述数据流对应的规则流中的filter元素配置对数据流进行过滤,包括:
设定数据筛选条件;
根据数据过滤表达式对数据进行过滤;
通过函数确定过滤后的数据是否符为符合要求的数据。
在具体的应用过程中,比如筛选数据中源IP为127.0.0.1且目的IP为192.168.1.1的数据,支持的数据过滤表达式举例如下“src_ip==127.0.0.1 &&dest_ip==192.168.1.1”(其中src_ip,dest_ip代表数据中的字段名),"ipContains(192.168.122.3,192.168.122.1/24)"该表达式中,ipContains为函数名可以判断IP192.168.122.3是否192.168.122.1/24网段,如果在该网段代表为符合条件的数据。其中,ipContains为自定义函数,用于判断IP是否在固定网段。
作为本申请一优选实施例,根据对所述数据流过滤的表达式动态调整函数,函数库可以根据业务需求动态扩展。
所述方法还包括:
配置第一监控数据点、第二监控数据点和第三监控数据点;
其中,所述第一监控数据点用于反馈经过过滤处理后数据,所述第二监控数据点用于反馈经过分区处理后数据,所述第三监控数据点用于反馈经聚合操作后的数据。
需要说明的是,第一监控数据点、第二监控数据点和第三监控数据点的反馈结果将反馈到消息队列中。消息队列中一方面可以接收监控数据点反馈的反馈数据,另一方面可以接收数据处理后的结果数据。
进一步地,配置第一监控数据点、第二监控数据点和第三监控数据点可以监控数据处理进度,或整个数据处理流程出现错误,可以及时寻找到出错位置,便于调试整个数据处理流程。
需要说明的是,规则流中存储有多个表达式规则,也可通过一下方式实施,先将第一个表达式规则确定为当前表达式规则,根据第一个表达式规则对数据进行过滤、分区和数据聚合,将处理结果同步到消息队列中。之后,将第二个表达式规则确定为当前表达式规则,根据第二个表达式规则对数据进行过滤、分区和数据聚合,将处理结果同步到消息队列中。以此类推,直至将第N个表达式规则确定为当前表达式规则,根据第N个表达式规则对数据进行过滤、分区和数据聚合,将处理结果同步到消息队列中。
其中,聚合操作包括:不去重计数、去重计数、聚合、去重聚合和条件计数等。去重计数是指在内存中去重数据,数据中指定字段值不重复计数加1;聚合是指把每条数据中指定字段拼接成一个字符串;去重聚合是指在内存中去重,把不重复的字段拼接成一个字符串;条件计数是指如果数据中指定字段满足什么条件,计数加1(例如:数据中源IP字段值为“127.0.0.1”,则计数加1)。
其中,条件计数可以支持自定义函数条件,可以做到线性扩展条件函数。
将处理结果同步到消息队列中,包括:
将处理后的MAP类型的结果数据转换为Json格式,将Json格式的结果数据同步到消息队列中。
若之前采用将Json格式的数据流转换为Map类型数据后,再进行数据处理,此时需要将处理后的数据重新转换为Json格式,以满足消息队列对于数据类型的要求。
在本发明中多个表达式规则使用同一份原始数据的方案,成功解决数据扇出影响网络性能的问题。并且可以解决传统数据分析任务不能共享内存和CPU资源的问题,在本发明中将多个表达式规则动态地注册到同一个资源池,能够很好的提高硬件资源的利用率。
在具体应用本申请的实施例时,本申请动态主要体现在:1、任务提交、任务修改和任务停止无需用户重启服务只需要在运行的引擎上提交规则,在页面上实时对规则进行修改、启动和停止操作;2、动态新增函数以便进行数据处理,函数为自定义添加。
与现有技术相比,本申请通过从消息队列中获取数据流;通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。本申请通过restful服务接收规则提交请求,规则提交请求采用规则流的方式提交任务,可以实现毫秒级提交任务,并可以在数据流中直接执行规则流的多个表达式规则,提升数据处理效率。
第二方面,本申请实施例还提供了一种基于Flink框架的实时多规则动态表达式数据处理装置20,包括:
第一获取模块21,用于从消息队列中获取数据流;
输入模块22,用于通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;
第二获取模块23,用于通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;
匹配模块24,用于根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;
处理模块25,用于根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。
第二方面,本申请实施例提供的一种基于Flink框架的实时多规则动态表达式数据处理装置有益效果与第一方面相同,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,包括:
从消息队列中获取数据流;
通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;
通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;
根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;
根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。
2.根据权利要求1所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,所述从消息队列中获取数据流,具体包括:
获取所述消息队列的安全日志,将Json格式的安全日志转换为Map类型的安全日志以获取数据流。一种基于Flink框架的实时多规则动态表达式数据处理方法。
3.根据权利要求1所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,通过与所述数据流对应的表达式规则对所述数据流进行处理,包括:
通过所述数据流对应的规则流中的filter元素配置对数据流进行过滤,所述filter元素为通过表达式进行过滤,所述表达式通过java语言表达式和函数任意层级嵌套组成;
通过所述数据流对应的规则流中groupby元素配置的聚合条件对数据进行分区,将符合聚合条件的数据分发到各自的分区中;
通过所述数据流对应的规则流中window元素划分时间区域,对分区的数据进行指定时间区域内的聚合操作。
4.根据权利要求3所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,还包括:
配置第一监控数据点、第二监控数据点和第三监控数据点;
其中,所述第一监控数据点用于反馈经过过滤处理后数据,所述第二监控数据点用于反馈经过分区处理后数据,所述第三监控数据点用于反馈经聚合操作后的数据。
5.根据权利要求3所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,所述通过所述数据流对应的规则流中的filter元素配置对数据流进行过滤,包括:
设定数据筛选条件;
根据数据过滤表达式对数据进行过滤;
通过函数确定过滤后的数据是否符为符合要求的数据。
6.根据权利要求5所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,所述方法还包括:
根据所述数据流过滤的表达式动态体调整函数;
根据动态调整的函数选择待应用函数。
7.根据权利要求3所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,所述通过与所述数据流对应的规则流中window元素划分时间区域,对分区的数据进行指定时间区域内的聚合操作,包括:
判断是否通过所述数据流按照划分时间区域进行处理;
如果是,则所述数据流根据对应的规则流中window元素划分时间区域;则对所述分区的数据进行指定时间区域内的聚合操作,并获取聚合操作结果,根据划分时间区域结束对所述分区的数据进行指定时间区域内的聚合操作以便将聚合操作结果上报至消息队列中。
8.根据权利要求1所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,所述通过与所述数据流对应的表达式规则对所述数据流进行处理,还包括:
获取停止规则请求,停止表达式规则对所述数据流处理过程。
9.根据权利要求1所述的一种基于Flink框架的实时多规则动态表达式数据处理方法,其特征在于,所述将所述数据流处理结果同步到所述消息队列中之前,包括:
将所述数据流进行处理结果由Map类型转为Json结构。
10.一种基于Flink框架的实时多规则动态表达式数据处理装置,其特征在于,包括:
第一获取模块,用于从消息队列中获取数据流;
输入模块,用于通过restful服务接收规则提交请求,并将提交的规则输入到分布式应用程序协调服务zookeeper中;
第二获取模块,用于通过Flink广播流方式实时监听分布式应用程序服务Zookeeper中存储的规则目录,根据规则目录实时获取规则内容,所述规则内容中包括多个表达式规则;
匹配模块,用于根据获取的规则内容,对所述数据流匹配不同的表达式规则以获取多个所述数据流与其对应的表达式规则的映射关系;
处理模块,用于根据多个所述数据流与其对应的表达式规则的映射关系,通过与所述数据流对应的表达式规则对所述数据流进行处理,并将所述数据流处理结果同步到所述消息队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311202854.3A CN116955427B (zh) | 2023-09-18 | 2023-09-18 | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311202854.3A CN116955427B (zh) | 2023-09-18 | 2023-09-18 | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116955427A true CN116955427A (zh) | 2023-10-27 |
CN116955427B CN116955427B (zh) | 2023-12-15 |
Family
ID=88442817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311202854.3A Active CN116955427B (zh) | 2023-09-18 | 2023-09-18 | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955427B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170083579A1 (en) * | 2015-09-18 | 2017-03-23 | Alibaba Group Holding Limited | Distributed data processing method and system |
CN108614862A (zh) * | 2018-03-28 | 2018-10-02 | 国家计算机网络与信息安全管理中心 | 基于流计算引擎的实时标签处理方法和装置 |
CN109254982A (zh) * | 2018-08-31 | 2019-01-22 | 杭州安恒信息技术股份有限公司 | 一种流数据处理方法、***、装置及计算机可读存储介质 |
CN112131014A (zh) * | 2020-09-02 | 2020-12-25 | 广州市双照电子科技有限公司 | 决策引擎***及其业务处理方法 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
US11010191B1 (en) * | 2020-07-02 | 2021-05-18 | Ryan L. Hornbeck | Platform-independent interface for generating virtualized multi-service hardware systems and infrastructure |
CN113055430A (zh) * | 2019-12-27 | 2021-06-29 | 华为技术有限公司 | 一种数据同步的方法及相关设备 |
CN114372084A (zh) * | 2020-10-14 | 2022-04-19 | 北方工业大学 | 面向传感流数据的实时处理*** |
KR20220126884A (ko) * | 2021-03-10 | 2022-09-19 | 주식회사 푸른새벽 | 금융상품 에이전트용 서버 및 그것의 동작 방법 |
CN115129736A (zh) * | 2022-07-04 | 2022-09-30 | 东方合智数据科技(广东)有限责任公司 | 基于规则引擎的规则事件动态加载与更新方法及相关设备 |
CN115374102A (zh) * | 2021-07-30 | 2022-11-22 | 北京大杏科技有限责任公司 | 数据处理方法及*** |
CN115665284A (zh) * | 2022-10-28 | 2023-01-31 | 上海浦东发展银行股份有限公司 | 基于分布式配置中心的报文处理方法、装置及计算机设备 |
CN115794445A (zh) * | 2023-02-06 | 2023-03-14 | 北方健康医疗大数据科技有限公司 | 一种基于flink和规则表达式的数据处理方法、装置及设备 |
-
2023
- 2023-09-18 CN CN202311202854.3A patent/CN116955427B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170083579A1 (en) * | 2015-09-18 | 2017-03-23 | Alibaba Group Holding Limited | Distributed data processing method and system |
CN108614862A (zh) * | 2018-03-28 | 2018-10-02 | 国家计算机网络与信息安全管理中心 | 基于流计算引擎的实时标签处理方法和装置 |
CN109254982A (zh) * | 2018-08-31 | 2019-01-22 | 杭州安恒信息技术股份有限公司 | 一种流数据处理方法、***、装置及计算机可读存储介质 |
CN113055430A (zh) * | 2019-12-27 | 2021-06-29 | 华为技术有限公司 | 一种数据同步的方法及相关设备 |
US11010191B1 (en) * | 2020-07-02 | 2021-05-18 | Ryan L. Hornbeck | Platform-independent interface for generating virtualized multi-service hardware systems and infrastructure |
CN112131014A (zh) * | 2020-09-02 | 2020-12-25 | 广州市双照电子科技有限公司 | 决策引擎***及其业务处理方法 |
CN114372084A (zh) * | 2020-10-14 | 2022-04-19 | 北方工业大学 | 面向传感流数据的实时处理*** |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
KR20220126884A (ko) * | 2021-03-10 | 2022-09-19 | 주식회사 푸른새벽 | 금융상품 에이전트용 서버 및 그것의 동작 방법 |
CN115374102A (zh) * | 2021-07-30 | 2022-11-22 | 北京大杏科技有限责任公司 | 数据处理方法及*** |
CN115129736A (zh) * | 2022-07-04 | 2022-09-30 | 东方合智数据科技(广东)有限责任公司 | 基于规则引擎的规则事件动态加载与更新方法及相关设备 |
CN115665284A (zh) * | 2022-10-28 | 2023-01-31 | 上海浦东发展银行股份有限公司 | 基于分布式配置中心的报文处理方法、装置及计算机设备 |
CN115794445A (zh) * | 2023-02-06 | 2023-03-14 | 北方健康医疗大数据科技有限公司 | 一种基于flink和规则表达式的数据处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116955427B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ben-Nun et al. | Groute: An asynchronous multi-GPU programming model for irregular computations | |
US10911369B2 (en) | Processing event data using dynamic data server nodes | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
CN108280023B (zh) | 任务执行方法、装置和服务器 | |
JP6205066B2 (ja) | ストリームデータ処理方法、ストリームデータ処理装置及び記憶媒体 | |
US9122726B2 (en) | Tuple routing in a streaming application | |
US20190258733A1 (en) | Methods and devices for joining multiple events in data streaming analytics systems | |
US20170228358A1 (en) | Encoding a spreadsheet program for stream processing | |
CN110224896B (zh) | 一种网络性能数据采集方法、装置及存储介质 | |
EP3698243B1 (en) | Asynchronously processing sequential data blocks | |
US9147010B2 (en) | Reconfiguring an operator graph based on attribute usage | |
US20140365612A1 (en) | Monitoring similar data in stream computing | |
CN114372084A (zh) | 面向传感流数据的实时处理*** | |
Song et al. | Bridging the semantic gaps of GPU acceleration for scale-out CNN-based big data processing: Think big, see small | |
WO2023124543A1 (zh) | 用于大数据的数据处理方法和数据处理装置 | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
Wang et al. | CEFS: Compute-efficient flow scheduling for iterative synchronous applications | |
CN116955427B (zh) | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 | |
CN108519908A (zh) | 一种任务动态管理方法和装置 | |
Chakraborty et al. | Non-blocking PMI extensions for fast MPI startup | |
Belkhiria et al. | A fully decentralized autoscaling algorithm for stream processing applications | |
Vinay et al. | A methodology for migration of software from single-core to multi-core machine | |
Halas | Performance Measurement of Stream Data Processing in Apache Spark | |
Nikolić et al. | Optimal minimal routing and priority assignment for priority-preemptive real-time NoCs | |
Matejetz | Extending modeling concepts of OpenClams to support performance analysis with layered queuing |
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 |