CN114661563B - 基于流处理框架的数据处理方法以及系统 - Google Patents
基于流处理框架的数据处理方法以及系统 Download PDFInfo
- Publication number
- CN114661563B CN114661563B CN202210568296.1A CN202210568296A CN114661563B CN 114661563 B CN114661563 B CN 114661563B CN 202210568296 A CN202210568296 A CN 202210568296A CN 114661563 B CN114661563 B CN 114661563B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- stream
- monitoring
- flow
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- 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
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例提供基于流处理框架的数据处理方法以及装置,其中所述基于流处理框架的数据处理方法包括:接收所述流处理框架的任务数据流;确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子;基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据,能够实现在任务数据流正常处理的前提下,仅需要实时确定任务数据流对应的监控任务流,就能根据监控任务流对任务数据流进行监控处理,不仅流处理框架无需消耗大量的时间和资源,也能够保障对任务数据流的监控任务处理的实时性。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种基于流处理框架的数据处理方法。
背景技术
Flink是大数据领域一个新兴的使用流式处理来模拟批量处理的框架,使用场景之一是构建实时的数据通道,在不同的存储之间搬运和转换数据,并且还可扩展到实时监控、实时报表和实时仓库等应用场景。Flink作为一种主流的流式计算框架,还提供了丰富的窗口聚合功能,可以实现大部分的业务场景下的监控任务,比如统计5分钟内,指定主机的CPU最大使用率;但在某些业务场景下对于监控任务的改变,需要重新调整Flink架构下的任务逻辑,导致流处理框架将消耗大量的时间和资源,也无法保障监控任务的数据处理的实时性。
发明内容
有鉴于此,本说明书实施例提供了一种基于流处理框架的数据处理方法。本说明书一个或者多个实施例同时涉及一种基于流处理框架的数据处理系统,一种基于流处理框架的数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种基于流处理框架的数据处理方法,包括:
接收所述流处理框架的任务数据流;
确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子;
基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据。
根据本说明书实施例的第二方面,提供了一种基于流处理框架的数据处理装置,包括:
数据流接收模块,被配置为接收所述流处理框架的任务数据流;
任务流确定模块,被配置为确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子;
目标数据确定模块,被配置为基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据。
根据本说明书实施例的第三方面,提供了一种基于流处理框架的数据处理系统,包括:数据分区模块以及数据聚合模块;
所述数据分区模块,被配置为接收所述流处理框架的任务数据流,并确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子,基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据;
所述数据聚合模块,被配置为基于所述至少一个监控任务因子,对所述目标数据进行聚合处理。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述基于流处理框架的数据处理方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述基于流处理框架的数据处理方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述基于流处理框架的数据处理方法的步骤。
本说明书一个实施例通过接收所述流处理框架的任务数据流;确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子;基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据。
具体的,通过确定任务数据流对应的监控任务流,以确定监控任务流中的监控任务因子,并根据监控任务因子,确定流处理框架下执行监控任务所需的目标数据;通过上述确定每个任务数据流对应的监控任务流,能够实现在任务数据流正常处理的前提下,仅需要实时确定任务数据流对应的监控任务流,就能根据监控任务流对任务数据流进行监控处理,进而,由于监控任务流也为流数据,与任务数据流的流数据可实时动态调整与处理,所以上述方法中无需调整流处理框架下的任务逻辑,就能根据监控任务流对任务数据流执行监控数据等操作,不仅流处理框架无需消耗大量的时间和资源,也能够保障对任务数据流的监控任务处理的实时性。
附图说明
图1示出了Flink流处理框架提供的窗口机制示意图;
图2是本说明书一个实施例提供的一种基于流处理框架的数据处理方法的流程图;
图3是本说明书一个实施例提供的一种基于流处理框架的数据处理方法的规则广播示意图;
图4是本说明书一个实施例提供的一种基于流处理框架的数据处理方法的动态分区示意图;
图5是本说明书一个实施例提供的一种基于流处理框架的数据处理方法的固定的key执行分区的示意图;
图6是本说明书一个实施例提供的一种基于流处理框架的数据处理方法针对任务数据流的动态分区示意图;
图7是本说明书一个实施例提供的一种基于流处理框架的数据处理方法的动态聚合示意图;
图8是本说明书一个实施例提供的一种基于流处理框架的数据处理方法的处理过程流程图;
图9是本说明书一个实施例提供的一种基于流处理框架的数据处理系统的系统结构示意图;
图10是本说明书一个实施例提供的一种基于流处理框架的数据处理装置的结构示意图;
图11是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
Flink:一种开源流处理框架,其核心是用java和scala编写的分布式流数据引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序;另外,Flink的运行时本身也支持迭代算法的执行。
窗口(window):是用来处理无限数据集的有限块。窗口就是把流切成了有限大小的多个存储桶(bucket)。
窗口机制:窗口机制实质上是Flink的算子(operator)对数据流的处理过程,即数据流如何被拆分成窗口,何时触发计算逻辑等。
滚动窗口:将每一个事件分配给一个有特定大小的窗口,滚动窗口有固定大小,不会重叠,比如一个滚动窗口大小(window size)为5分钟。
广播流(BroadcastStream):可以通过查询配置文件,广播到某个operator的所有并发实例中,然后与另一个条流数据连接进行计算。
Flink广播流:适用于规则匹配,当规则数据比较少的情况,Flink会把规则流广播,数据流就会拿到最新的规则流进行处理。
Map算子:Map算子的输入流是DataStream,经过Map算子后返回的数据格式是SingleOutputStreamOperator类型,获取一个元素并生成一个元素。
Flink作为一种主流的流式计算框架,提供了丰富的窗口聚合功能,可以实现在无界流上取一段时间对某一个特定主键进行特殊的聚合运算,聚合运算包括求总和(sum)、最大/最小值(max/min)、平均值(avg)等。这种方式有以下特点:
窗口分组字段需要事先确定:定义一个窗口聚合,需要事先约定好基于数据的某一个或某几个字段进行分组(keyby),如果任务运行一段时间需要更改分组字段,需要重新更改任务逻辑并重启任务。
窗口的划分规则相对固定:在给定一个事件时间、窗口长度、窗口类型、偏移量等的前提下,无界流的时间线上每一个窗口的划分就已经确定,如果任务运行一段时间需要更改窗口长度,需要重新更改任务逻辑并重启任务。
聚合运算表达式需要事先确定,给定一个窗口,可以对这个窗口内的数据进行求总和(sum)、最大/最小值(max/min)、平均值(avg)等,如果任务运行一段时间需要更改聚合运行表达式,需要重新更改任务逻辑并重启任务。
参见图1,图1示出了Flink流处理框架提供的窗口机制示意图。图1的平面直角坐标系中横轴表示时间,纵轴表示用户,在坐标系中利用虚线区分开每个窗口,图1中以5个窗口为例,分别为窗口1、窗口2、窗口3、窗口4以及窗口5;以3个用户为例,分别为用户1、用户2以及用户3;其中,每个用户在每个窗口中对应的圆圈,表示用户在对应的某一时刻发送的待处理流数据。
基于Flink流处理框架的窗口机制可以解决大部分业务场景,这些场景的特点是可以事先明确窗口分组字段、窗口长度、聚合运算表达式。比如统计5分钟内,指定主机的CPU最大使用率,这个场景有明确的分组字段为主机IP、明确的窗口长度为5分钟、明确的窗口聚合运算表达式为对订单价格最大(max),因此,图1中Flink原生的窗口机制比较容易实现大部分的业务场景,能够对某一个窗口中的流数据进行聚合计算。
而针对另一种场景,比如统计一段时间内,某些指标类型的指标聚合值,其中的一段时间并不能提前明确,可能是1分钟、1小时、一天等。某些指标类型也不明确,可能是内存、CPU、磁盘空间大小中的某一个或其中的组合。聚合值可能是求和、最大值、最小值或其中的组合。这种场景需要可以动态更改窗口分组字段、窗口长度、聚合运算表达式,因此,Flink原生的窗口机制并不能满足上述具有不确定性的场景应用。若依旧要利用图1的原生窗口机制,则需要通过更改任务逻辑(更改Java的任务代码)并重启任务来实现,即将原监控任务暂停,重新开启一个新的监控任务,即重新确定窗口长度、窗口分组字段以及聚合表达式;这种方式缺点很明显,对于聚合的条件和规则需要频繁更改,即任务需要频繁重启,而Flink流处理框架下,重启操作将会耗费一定时间和资源,数据处理的实时性也将无法保障。
基于此,本说明书实施例提供的基于流处理框架的数据处理方法,通过将窗口分组字段、窗口长度、聚合运算表达式抽象为规则,而该规则可支持动态配置和更改;基于Flink广播流,将动态确定好的规则以广播流的方式分发到数据处理的每一个实例(算子)中;即可支持在监控任务不重启的情况下,动态更改分组字段和窗口长度以及聚合运算表达式(即动态调整监控规则),以实现统计一段时间内,某些指标类型的指标聚合值这类不确定的聚合场景。
在本说明书中,提供了一种基于流处理框架的数据处理方法,本说明书同时涉及一种基于流处理框架的数据处理系统,一种基于流处理框架的数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
参见图2,图2示出了根据本说明书一个实施例提供的一种基于流处理框架的数据处理方法的流程图,具体包括以下步骤。
需要说明的是,本说明书实施例提供的基于流处理框架的数据处理方法,可应用于流处理框架的数据处理系统,且该数据处理系统中包括数据分区模块以及数据聚合模块,其中,该数据分区模块可以理解为根据动态分区函数,对待处理数据流进行分区处理,以便于动态确定每个待聚合运算窗口对应的流数据;该数据聚合模块可以理解为对每个动态分区后的流数据,按照动态确定的聚合规则执行聚合运算的模块。
步骤202:接收所述流处理框架的任务数据流。
其中,任务数据流可以理解为流处理框架中执行待处理任务对应的流数据,且对于待处理任务可以为任何Flink架构下的执行任务,本实施例中对具体的任务不做任何限定。
实际应用中,数据分区模块可接收到该流处理框架执行某一待处理任务对应的任务数据流,根据该任务数据流可以实现各种监控任务,比如,统计10分钟内,该流处理框架下的主机A执行某任务的CPU最大使用率;或者统计15分钟内,该流处理框架下的主机B执行某任务的GPU最大使用率。需要说明的是,本实施例中重点在于,对流处理框架上执行某一个任务对应的流数据,如何实现动态窗口聚合的过程,而对于流处理框架下所具体执行的任务则不作任何限定。
步骤204:确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子。
其中,监控任务流可以理解为针对任务数据流对应的监控任务抽象出的规则数据流,且该监控任务流中还携带有至少一个监控任务因子;该监控任务因子可以理解为监控任务抽象出的规则数据流中的影响监控统计任务的因素,比如窗口长度、窗口分组字段、窗口聚合运算表达式等。
本说明书实施例提供的基于流处理框架的数据处理方法,提供了一种动态聚合窗口中的流数据的方法,其中,动态聚合过程可体现于,监控任务流可动态调整,同时也并不会影响流处理框架中任务数据流的正常处理;具体的,所述确定所述任务数据流对应的监控任务流,包括:
在数据库的规则存储表中加载所述任务数据流对应的历史全量任务规则,其中,所述数据库与所述流处理框架相连接;
基于所述数据库的增量日志数据,确定所述任务数据流对应的增量任务规则;
基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流。
其中,规则存储表可以理解为在数据库中存储执行历史监控任务对应的历史规则数据的存储表;历史全量任务规则可以理解为处理任务数据流的历史规则数据,比如,在统计CPU使用率时,可获取CPU相关的指标数据、时间等字段的规则。
增量日志数据可以理解为用户在数据库的binlog中,更改操作对应的日志数据;增量任务规则可以理解为根据更改操作对应的日志数据抽象出的新的任务规则数据。
实际应用中,数据分区模块可先从数据库中的规则存储表中,加载到任务数据流对应的历史全量任务规则,即可以理解为在动态算子初始化的时,从规则存储表中全量加载Mysql的规则,具体实施时,可根据Mysql snapshot读取当前时刻任务数据流所对应的历史全量任务规则;进一步地,Flink中还可根据数据库的增量日志数据,实时动态捕获到任务数据流对应的增量任务规则,具体实施时,Flink可以通过Mysql CDC连接器实时捕获Mysql Binlog变化,消费规则表的增量数据,实现规则的更新能够让规则流实时捕获到。
最后,数据分区模块可根据历史全量任务规则以及增量任务规则,进一步地获得该任务数据流对应的监控任务流,其中,该监控任务流可根据用户在binlog中实时更改任务规则,以实时抽象出不同的增量任务规则,实现对监控任务流的动态配置和更改。
本说明书实施例提供的基于流处理框架的数据处理方法,通过从数据库的binlog中实时捕获到动态变更的任务规则,实现动态确定任务数据流对应的监控任务流,便于后续对Flink架构下的流数据实现动态聚合处理。
进一步地,由于监控任务流中携带有至少一个监控任务因子,所以任务数据流对应的监控任务流中,应由至少一个监控任务因子所组成;具体的,所述基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流,包括:
基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的目标窗口分组字段、目标窗口长度以及目标聚合运算类型;
将所述目标窗口分组字段、所述目标窗口长度以及所述目标聚合运算类型,确定为所述监控任务流中携带的至少一个监控任务因子;
其中,所述监控任务流为所述任务数据流对应的动态监控规则流。
其中,目标窗口分组字段可以理解为用户需要该任务数据流实现的分组操作,所依据的一个或多个字段,并后续基于该目标窗口分组字段确定每个窗口对应的数据流;目标窗口长度可以理解为用户所需统计监控任务对应窗口的时间长度,比如1分钟、5分钟或者10分钟等;目标聚合运算类型可以理解为用户需要对某一窗口的数据流对应的聚合运算表达式,比如求总和(sum)、最大/最小值(max/min)、平均值(avg)等。
实际应用中,数据分区模块通过加载任务数据流对应的历史全量任务规则,以及通过Mysql CDC连接器实时捕获Mysql Binlog变化,确定实时捕获到的规则流,即增量任务规则;进一步地,可基于历史全量任务规则以及增量任务规则,抽象出任务数据流对应的目标窗口分组字段、目标窗口长度以及目标聚合运算类型;同时,将该目标窗口分组字段、目标窗口长度以及目标聚合运算类型,确定为监控任务流所携带的至少一个监控任务因子;需要说明的是,该监控任务流为上述任务数据流对应的动态修改监控任务的规则数据流。
需要说明的是,由于在流处理框架的窗口机制下,监控任务流中携带的至少一个监控任务因子,为窗口机制对应的各个规则数据;若该监控任务流是处理流处理框架下的其他数据流对应的规则数据,则其携带的至少一个监控任务因子可以理解为其他规则数据,本实施例中对此不作任何限定。
本说明书实施例提供的基于流处理框架的数据处理方法,通过任务数据流对应的历史全量任务规则以及增量任务规则,将窗口分组字段、窗口长度以及聚合运算类型抽象为监控任务因子,并作为规则对任务数据流进行动态监控,以适用于实现统计一段时间内,某些指标类型的指标聚合值的这种不确定性的应用场景。
此外,在数据分区模块确定了用户所更改的新的监控任务流之后,该可将新更改的规则数据作为历史规则数据,以更新至数据库中的规则存储表中;具体的,所述基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流之后,还包括:
将所述增量任务规则缓存至所述数据库的规则存储表中。
实际应用中,数据分区模块在上述监控任务流动态配置之后,还可将从数据库的binlog中抽象出的规则数据缓存至数据库的规则存储表中,以便于后续能够获取到任务数据流对应的全量规则数据。
步骤206:基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据。
其中,参数信息可以理解为任务数据流中所携带的执行该任务过程中的参数值,比如执行该任务过程中的CPU各个参数指标值,GPU的各个参数指标值等等;也即是说,该参数信息的具体数据信息与不同的任务数据流相关联,本实施例对此不作具体限定。
实际应用中,数据分区模块从监控任务流中确定至少一个监控任务因子之后,根据该监控任务因子以确定用户所需调整后的监控任务规则,进而,即可根据任务数据流中做携带的参数值,能够计算出任务数据流执行监控任务所需要的目标数据。需要说明的是,针对不同的任务,所具体确定任务数据流中携带的参数信息并不相同,以及具体确定目标数据的计算方式也并不相同。
进一步地,数据分区模块在实时确定不同的监控任务流之后,还可将该规则流作为广播流,与任务数据流进行连接操作,以实现规则能够分发到动态算子的每个并发实例上;具体的,所述基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据之前,还包括:
通过广播通道,将携带有至少一个监控任务因子的监控任务流与所述任务数据流执行连接操作。
实际应用中,数据分区模块可将规则流作为广播流,即利用广播通道,将动态配置的键控制任务流和主流(任务数据流)进行连接操作,从而后续基于监控任务流对任务数据流实现动态分区以及动态聚合操作。
具体可参见图3,图3示出了本说明书实施例提供的基于流处理框架的数据处理方法的规则广播示意图。
图3中以4个算子为例,对规则进行广播进行详细的说明,具体的,4个算子可分别为算子1-1、算子1-2、算子2-1以及算子2-2;实际应用中,将窗口分组字段、窗口长度、聚合运算表达式抽象为规则通过广播通道“混合”到主处理数据流中。广播会让每个消息在算子的所有并行实例的输入上可用。广播流连接非常适合两个流中一个吞吐大,一个吞吐小,或者需要动态修改处理逻辑的情况。
规则数据一般量比较小,我们选择存储到Mysql数据库中,Flink可以通过MysqlCDC连接器实时捕获Mysql Binlog变化,消费规则表的增量数据,实现规则的更新能够让规则流实时捕获到。进一步地,将规则流作为广播流,和主流进行连接操作,这样规则就会分发到动态算子的每一个并发上,如图3中连接线所示。
在动态算子中定义一个Map类型的rulesCache(规则缓存空间)来缓存规则,由于将规则作为广播流和主流进行连接操作,因此在动态算子中可以基于processBroadcastElement来处理规则,每收到一条规则,我们将其缓存到rulesCache中。需要说明的是,上述提及的CDC连接器只能消费mysql的增量数据,因此rulesCache仅保存了增量的规则;若需要全量的规则,则需要有个全量加载规则的过程;或者可以选择将全量+增量的规则保存到kafka(队列)中,但是broadcast join中的处理广播数据的processBroadcastElement方法和处理主流数据的processElement方法执行先后顺序无法保证,可能会发生处理主流数据的时候规则数据还没到;基于此,本说明书实施例提供的基于流处理框架的数据处理方法,即可选择增量数据用广播流的方式下发,全量数据通过初始化open时全量加载的方式。
进而,在动态算子初始化的时候会全量加载Mysql的规则,并存储到rulesCache中。这样rulesCache中就拥有了全量规则的一份快照,加上广播流过来的增量数据,rulesCache就拥有了一份全量的规则数据。基于全量加增量的规则数据,即可便于动态算子对每一条到来的主流数据实现动态分区以及后续的动态聚合操作。
基于此,上述实施例中表述的数据分区模块所具体执行的分区操作,可以下述方式进行分区处理;具体的,所述基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据,包括:
基于所述至少一个监控任务因子,对所述任务数据流中的记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据;
根据所述任务数据流中的参数信息,从每个分区记录数据中确定目标分区数据。
其中,记录数据可以理解为任务数据流中的原始数据(明细数据),以计算CPU使用率这个场景为例,记录数据包括但不限定于主机IP、CPU相关指标数据、时间字段等。
分区记录数据可以理解为对任务数据流中的所有记录数据执行分区操作后的记录数据;进而,从每个分区记录数据中采集的目标数据,记作目标分区数据,其中,具体的采集目标是根据不同任务下的参数信息确定的,且具体的获得方式也可计算获得,也可直接采集获得,本实施例对获得方式不作任何限定。
实际应用中,数据分区模块在确定了至少一个监控任务因子之后,还可基于至少一个监控任务因子对任务数据流中的记录数据进行分区处理,进而,确定出任务数据流对应的至少一个分区记录数据;进而还可根据任务数据流中所携带的参数信息,从每个分区记录数据中确定目标分区数据。
本说明书实施例提供的基于流处理框架的数据处理方法,可对任务数据流中的所有记录数据进行分区处理,便于后续根据分区处理后的任务数据流执行窗口聚合操作。
进一步地,数据分区模块可对任务数据流中的每条记录数据都可生成对应的key,并可将相同key对应的任务数据流的记录数据分区在一块,以获得分区记录数据;具体的,所述基于所述至少一个监控任务因子,对所述任务数据流中的记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据,包括:
基于所述至少一个监控任务因子,确定所述任务数据流中的每条记录数据对应的关键值信息;
基于所述每条记录数据对应的关键值信息,对所述任务数据流中的所有记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据。
其中,关键值信息可以理解为需要将记录根据窗口分组字段进行分组,且以窗口时间为长度所确定的字符串key。
实际应用中,数据分区模块可基于至少一个监控任务因子,确定出任务数据流中每一条记录数据所划分在哪一窗口分组字段,以及窗口时间区间内的关键值信息;进而,根据每一条记录数据对应的关键值信息,对任务数据流中的所有记录数据进行分区处理,即实现动态分区的过程,以确定出该任务数据流对应的多个分区记录数据。
具体可参见图4,图4示出了本说明书实施例提供的基于流处理框架的数据处理方法的动态分区示意图。
图4中左侧的“ABABCABD”可以理解为任务数据流对应的一段记录数据所对应的key,右侧的每一个矩形框中的数据可以理解为分区后的key,分别包括“AAA”、“BBB”、“C”以及“D”,即相同的key可分为同一分区中。具体实施时,数据分区模块即可根据监控任务因子,先对每个记录数据确定对应的key,然后将相同的key确定为一个分区,最终的目的是将相同key对应的记录数据作为同一分区记录数据。
实际应用中,Flink的有一种keyby(分组)算子,可以根据key重排任务数据流的所有记录数据,以便将具有相同key对应的元素(记录数据)分配给同一分区,意味着所有具有相同key的记录数据将由下一个算子的同一个物理实例处理。
此外,在典型的流应用程序中,key的选择是固定的,由元素内的某些静态字段确定。例如,当构建一个简单的基于窗口的交易流聚合时,可能会按交易账户ID进行分组。也就是说Flink中keyby的大多数示例都使用硬编码的KeySelector,其会提取特定固定事件的字段。如附图5所示,图5示出了本说明书实施例提供的基于流处理框架的数据处理方法的固定的key执行分区的示意图。
图5中可对原始数据流进行分组,利用分组器(KeySelector)对原始数据流进行分组,其中,分组器中如何分组,是由固定的key决定的;目前流处理框架下的任务逻辑,在key无法动态变更的情况下,一旦用户所需监控的监控任务流需要更改,那么整个前述已经配置好任务逻辑的监控任务即可暂停,需要根据更改后的监控任务流重启一个新的监控任务,这就会造成计算资源的浪费。
进一步地,为了支持所需的灵活性,本说明书实施例提供的数据处理方法支持动态生成key。为此,则使用一个额外的Operator算子DynamicKeyFunction(动态分区模块),该算子为每个事件做准备以将其分发到正确的聚合实例中。如图6所示,图6示出了本说明书实施例提供的基于流处理框架的数据处理方法针对任务数据流的动态分区示意图。
图6中动态分区模块(DynamicKeyFunction)来完成key的提取和事件的分发,DynamicKeyFunction迭代一组已定义的规则,并提取所需的分组key来为每个要由keyBy()函数处理的事件作准备。实际应用中,任务数据流中包括任务M...任务2、任务1,并对每个任务数据流中的记录确定对应的key,再根据相同的key执行动态分区;需要说明的是,由于监控任务流的不同,对于同一个任务1根据不同的监控任务流所确定的分区也并不相同,若监控任务流为规则1,那么分区后的任务数据流可用任务1-规则1表示,若监控任务流为规则2,那么分区后的任务数据流可用任务1-规则2表示,若监控任务流为规则3,那么分区后的任务数据流可用任务1-规则3表示。
另外,任务数据流中的每个记录数据对应的key如何确定,为下述实施例中所具体描述的内容;具体的,所述至少一个监控任务因子包括目标窗口分组字段、目标窗口长度;
相应地,所述基于所述至少一个监控任务因子,确定所述任务数据流中的每条记录数据对应的关键值信息,包括:
基于所述目标窗口分组字段以及所述目标窗口长度,确定所述任务数据流中的每条记录数据对应的关键值信息。
具体实施时,在确定监控任务因子中包括目标窗口分组字段以及目标窗口长度时,监控关键值信息提取模块可根据窗口分组字段以及窗口长度,确定每条巨鹿数据对应的关键值信息。实际应用中,KeysExtractor(监控关键值信息提取模块)负责提取groupingKeyNames(分组)字段的必需值,并将它们组合为单个串联的字符串key。这里key的构造规则为groupingKeyNames+窗口起止时间,例如,若groupingKeyNames为host&monitorKey(规则中定义,其中&为分隔符),窗口长度为10分钟(规则中定义),假设当前处理的数据对应的host值为10.10.10.10,monitorKey值为monitor001,事件时间单位为毫秒,值为1623283990075L(北京时间为2021-06-10 08:13:10),窗口长度换算为毫秒单位值为10*60*1000=60000L。
根据窗口分配方法计算得到窗口起止时间分别为1623283800000L(北京时间为2021-06-10 08:10:00)和1623284400000L(北京时间为2021-06-10 08:20:00),因此,key为“10.10.10.10-monitor001-2021-06-10 08:10:00-2021-06-10 08:20:00”。其中窗口起止时间算法可参考为:
long start=timestamp-(timestamp-offset+windowSize)% windowSize;
long end = start + windowMillis;
本说明书实施例提供的基于流处理框架的数据处理方法,通过动态变更的窗口分组字段、窗口长度,确定满足动态变更的关键值信息,以确定相应的数据分区,完成对每个窗口分区后的任务数据流实现窗口聚合处理。
基于此,数据分区模块的执行步骤完成,并将数据分区模块的输出可作为动态聚合模块的输入,以实现对每个窗口中的任务数据流进行窗口聚合处理;具体的,所述至少一个监控任务因子还包括目标聚合运算类型;
相应地,所述基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据之后,还包括:
基于所述目标聚合运算类型,对所述目标分区数据进行聚合处理,获得每个分区记录数据对应的目标聚合数据。
其中,目标聚合运算类型可以与上述聚合运算表达式的含义相一致;目标聚合数据可以理解为对每个目标分区数据执行聚合操作之后的数据,比如统计5分钟内,主机1的CPU的最大使用率为百分之七十,则目标聚合数据即为百分之七十这个数值。
实际应用中,动态聚合模块可根据目标聚合运算类型的监控任务因子,对每个目标分区数据进行聚合处理,以确定每个分区记录数据对应的目标聚合数据,即可确定出每5分钟内,主机1的CPU的最大使用率分别为多少。
具体可参见图7,图7示出了本说明书实施例提供的基于流处理框架的数据处理方法的动态聚合示意图。
图7中可根据聚合类型抽象分为最大值、最小值、聚合值等。实际应用中,动态聚合的输入为动态分区算子的输出,经过动态分区算子,数据按照groupingKeyNames+窗口起止时间进行分组,动态聚合只需要从规则中获取聚合类型进行相应操作即可,聚合函数基于Accumulator来实现,可支持求总和(sum)、最大/最小值(max/min)、平均值(avg)等。
综上,本说明书实施例提供的基于流处理框架的数据处理方法,基于广播流技术,规则可以被分发到下游算子的每一个实例,做到规则的一致性变更,同时,基于CDC技术,可以实时捕获规则的每一次变更,包括新增、修改、删除。实现窗口分组字段、窗口长度、聚合运算表达式做到毫秒级实时更新并生效。由于规则是在线更新,所以不需要重启任务,做到热更新。进一步地,动态算子初始化时全量加载规则,保证在处理主流数据之前规则已经准备好,避免因为初始阶段主流数据因为缺少存量规则导致部分数据不准确问题。另外,规则的变更可以实时反应到动态分区和动态聚合算子,动态分区算子根据最新的规则对数据进行动态分区,路由到对应分组、时间窗口的分区,动态聚合算子根据最新的规则选择合适的聚合函数进行聚合操作,从而实现窗口分组字段、窗口长度、聚合运算表达式均可实时更新的动态窗口聚合。
下述结合附图8,图8示出了本说明书一个实施例提供的一种基于流处理框架的数据处理方法的处理过程流程图,具体包括以下步骤。
步骤802:待处理数据读取模块读取待处理数据,即任务数据流。
步骤804:规则读取模块全量加载全量规则。
步骤806:规则读取模块实时捕获增量规则。
步骤808:规则读取模块基于增量规则与全量规则抽象出的规则,广播至动态分区模块。
步骤810:规则读取模块基于增量规则与全量规则抽象出的规则,广播至动态聚合模块。
步骤812:动态分区模块基于规则确定待处理数据中每条记录数据对应的key,并根据key对待处理数据进行分区处理。
步骤814:动态聚合模块对每个分区的待处理数据,按照广播的规则执行聚合操作。
基于上述基于流处理框架的数据处理方法,本说明书另一实施例还提供了一种基于流处理框架的数据处理系统,可参见图9,图9示出了本说明书实施例提供的一种基于流处理框架的数据处理系统示意图。
图9中包括流处理框架的数据处理系统900,其中该流处理框架的数据处理系统900中包括数据分区模块902以及数据聚合模块904。
实际应用中,数据分区模块902接收到任务数据流以及监控任务流,并基于监控任务流对任务数据流件分组处理,并将分组后的结果输出至数据聚合模块904,该数据聚合模块904再基于监控任务流中的聚合表达式对分组后的数据执行聚合操作,以获得每个分区中的任务数据流对应的聚合结果。
具体实施时,所述数据分区模块,被配置为接收所述流处理框架的任务数据流,并确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子,基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据;
所述数据聚合模块,被配置为基于所述至少一个监控任务因子,对所述目标数据进行聚合处理。
此外,所述数据分区模块,进一步被配置为基于所述至少一个监控任务因子,对所述任务数据流中的记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据,并根据所述任务数据流中的参数信息,从每个分区记录数据中确定目标分区数据。
进一步地,所述数据聚合模块,进一步被配置为基于所述至少一个监控任务因子,对所述每个分区记录数据中确定目标分区数据进行聚合处理。
基于此,本说明书实施例提供的基于流处理框架的数据处理系统,通过配置数据分区模块以及数据聚合模块,实现基于广播流技术,规则可以被分发到下游算子的每一个实例,做到规则的一致性变更。同时,基于CDC技术,可以实时捕获规则的每一次变更,包括新增、修改、删除。实现窗口分组字段、窗口长度、聚合运算表达式做到毫秒级实时更新并生效。因为规则是在线更新,所以不需要重启任务,做到热更新。
进一步地,动态算子初始化时全量加载规则,保证在处理主流数据之前规则已经准备好,避免因为初始阶段主流数据因为缺少存量规则导致部分数据不准确问题。
另外,规则的变更可以实时反应到动态分区和动态聚合算子,动态分区算子根据最新的规则对数据进行动态分区,路由到对应分组、时间窗口的分区,动态聚合算子根据最新的规则选择合适的聚合函数进行聚合操作,从而实现窗口分组字段、窗口长度、聚合运算表达式均可实时更新的动态窗口聚合。
与上述方法实施例相对应,本说明书还提供了基于流处理框架的数据处理装置实施例,图10示出了本说明书一个实施例提供的一种基于流处理框架的数据处理装置的结构示意图。如图10所示,该装置包括:
数据流接收模块1002,被配置为接收所述流处理框架的任务数据流;
任务流确定模块1004,被配置为确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子;
目标数据确定模块1006,被配置为基于所述至少一个监控任务因子,根据所述任务数据流中的参数信息确定目标数据。
可选地,所述目标数据确定模块1006,进一步被配置为:
基于所述至少一个监控任务因子,对所述任务数据流中的记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据;
根据所述任务数据流中的参数信息,从每个分区记录数据中确定目标分区数据。
可选地,所述目标数据确定模块1006,进一步被配置为:
基于所述至少一个监控任务因子,确定所述任务数据流中的每条记录数据对应的关键值信息;
基于所述每条记录数据对应的关键值信息,对所述任务数据流中的所有记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据。
可选地,所述至少一个监控任务因子包括目标窗口分组字段、目标窗口长度;
可选地,所述目标数据确定模块1006,进一步被配置为:
基于所述目标窗口分组字段以及所述目标窗口长度,确定所述任务数据流中的每条记录数据对应的关键值信息。
可选地,所述至少一个监控任务因子还包括目标聚合运算类型;
可选地,所述装置,还包括:
数据聚合模块,被配置为基于所述目标聚合运算类型,对所述目标分区数据进行聚合处理,获得每个分区记录数据对应的目标聚合数据。
可选地,所述任务流确定模块1004,进一步被配置为:
在数据库的规则存储表中加载所述任务数据流对应的历史全量任务规则,其中,所述数据库与所述流处理框架相连接;
基于所述数据库的增量日志数据,确定所述任务数据流对应的增量任务规则;
基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流。
可选地,所述任务流确定模块1004,进一步被配置为:
基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的目标窗口分组字段、目标窗口长度以及目标聚合运算类型;
将所述目标窗口分组字段、所述目标窗口长度以及所述目标聚合运算类型,确定为所述监控任务流中携带的至少一个监控任务因子;
其中,所述监控任务流为所述任务数据流对应的动态监控规则流。
可选地,所述装置,还包括:
规则缓存模块,被配置为将所述增量任务规则缓存至所述数据库的规则存储表中。
可选地,所述装置,还包括:
数据流连接模块,被配置为通过广播通道,将携带有至少一个监控任务因子的监控任务流与所述任务数据流执行连接操作。
本说明书实施例提供的基于流处理框架的数据处理装置,通过确定任务数据流对应的监控任务流,以确定监控任务流中的监控任务因子,并根据监控任务因子,确定流处理框架下执行监控任务所需的目标数据;通过上述确定每个任务数据流对应的监控任务流,能够实现在任务数据流正常处理的前提下,仅需要实时确定任务数据流对应的监控任务流,就能根据监控任务流对任务数据流进行监控处理,进而,由于监控任务流也为流数据,与任务数据流的流数据可实时动态调整与处理,所以上述方法中无需调整流处理框架下的任务逻辑,就能根据监控任务流对任务数据流执行监控数据等操作,不仅流处理框架无需消耗大量的时间和资源,也能够保障对任务数据流的监控任务处理的实时性。
上述为本实施例的一种基于流处理框架的数据处理装置的示意性方案。需要说明的是,该基于流处理框架的数据处理装置的技术方案与上述的基于流处理框架的数据处理方法的技术方案属于同一构思,基于流处理框架的数据处理装置的技术方案未详细描述的细节内容,均可以参见上述基于流处理框架的数据处理方法的技术方案的描述。
图11示出了根据本说明书一个实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
其中,处理器1120用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述基于流处理框架的数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的基于流处理框架的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述基于流处理框架的数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述基于流处理框架的数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的基于流处理框架的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述基于流处理框架的数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述基于流处理框架的数据处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的基于流处理框架的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述基于流处理框架的数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (9)
1.一种基于Flink流处理框架的数据处理方法,其特征在于,包括:
接收所述Flink流处理框架的任务数据流;
确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子,所述至少一个监控任务因子包括目标窗口分组字段、目标窗口长度;
基于所述目标窗口分组字段以及所述目标窗口长度,确定所述任务数据流中的每条记录数据对应的关键值信息;
基于所述每条记录数据对应的关键值信息,对所述任务数据流中的所有记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据;
根据所述任务数据流中的参数信息,从每个分区记录数据中确定目标分区数据;
基于所述至少一个监控任务因子中携带的目标聚合运算类型,对所述目标分区数据进行聚合处理,获得每个分区记录数据对应的目标聚合数据,其中,所述目标聚合运算类型根据动态修改的监控任务流获得。
2.根据权利要求1所述的方法,其特征在于,所述确定所述任务数据流对应的监控任务流,包括:
在数据库的规则存储表中加载所述任务数据流对应的历史全量任务规则,其中,所述数据库与所述流处理框架相连接;
基于所述数据库的增量日志数据,确定所述任务数据流对应的增量任务规则;
基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流。
3.根据权利要求2所述的方法,其特征在于,所述基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流,包括:
基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的目标窗口分组字段、目标窗口长度以及目标聚合运算类型;
将所述目标窗口分组字段、所述目标窗口长度以及所述目标聚合运算类型,确定为所述监控任务流中携带的至少一个监控任务因子;
其中,所述监控任务流为所述任务数据流对应的动态监控规则流。
4.根据权利要求3所述的方法,其特征在于,所述基于所述历史全量任务规则以及所述增量任务规则,确定所述任务数据流对应的监控任务流之后,还包括:
将所述增量任务规则缓存至所述数据库的规则存储表中。
5.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个监控任务因子,对所述任务数据流中的记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据之前,还包括:
通过广播通道,将携带有至少一个监控任务因子的监控任务流与所述任务数据流执行连接操作。
6.一种基于Flink流处理框架的数据处理装置,其特征在于,包括:
数据流接收模块,被配置为接收所述Flink流处理框架的任务数据流;
任务流确定模块,被配置为确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子,所述至少一个监控任务因子包括目标窗口分组字段、目标窗口长度;
目标数据确定模块,被配置为基于所述目标窗口分组字段以及所述目标窗口长度,确定所述任务数据流中的每条记录数据对应的关键值信息;基于所述每条记录数据对应的关键值信息,对所述任务数据流中的所有记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据;根据所述任务数据流中的参数信息,从每个分区记录数据中确定目标分区数据;
数据聚合模块,被配置为基于所述至少一个监控任务因子中携带的目标聚合运算类型,对所述目标分区数据进行聚合处理,获得每个分区记录数据对应的目标聚合数据,其中,所述目标聚合运算类型根据动态修改的监控任务流获得。
7.一种基于Flink流处理框架的数据处理系统,其特征在于,包括数据分区模块以及数据聚合模块;
所述数据分区模块,被配置为接收所述Flink流处理框架的任务数据流,并确定所述任务数据流对应的监控任务流,其中,所述监控任务流中携带有至少一个监控任务因子,所述至少一个监控任务因子包括目标窗口分组字段、目标窗口长度;基于所述目标窗口分组字段以及所述目标窗口长度,确定所述任务数据流中的每条记录数据对应的关键值信息;基于所述每条记录数据对应的关键值信息,对所述任务数据流中的所有记录数据进行分区处理,确定所述任务数据流对应的至少一个分区记录数据,并根据所述任务数据流中的参数信息,从每个分区记录数据中确定目标分区数据;
所述数据聚合模块,被配置为基于所述至少一个监控任务因子中携带的目标聚合运算类型,对所述目标分区数据进行聚合处理,获得每个分区记录数据对应的目标聚合数据,其中,所述目标聚合运算类型根据动态修改的监控任务流获得。
8.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至5任意一项所述基于Flink流处理框架的数据处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至5任意一项所述基于Flink流处理框架的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210568296.1A CN114661563B (zh) | 2022-05-24 | 2022-05-24 | 基于流处理框架的数据处理方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210568296.1A CN114661563B (zh) | 2022-05-24 | 2022-05-24 | 基于流处理框架的数据处理方法以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114661563A CN114661563A (zh) | 2022-06-24 |
CN114661563B true CN114661563B (zh) | 2022-10-04 |
Family
ID=82037220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210568296.1A Active CN114661563B (zh) | 2022-05-24 | 2022-05-24 | 基于流处理框架的数据处理方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661563B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344170A (zh) * | 2018-09-04 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 流数据处理方法、系统、电子设备及可读存储介质 |
CN110659307A (zh) * | 2019-09-06 | 2020-01-07 | 西安交大捷普网络科技有限公司 | 一种事件流的关联分析方法与系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965330B2 (en) * | 2015-09-18 | 2018-05-08 | Salesforce.Com, Inc. | Maintaining throughput of a stream processing framework while increasing processing load |
CN106326006A (zh) * | 2016-08-23 | 2017-01-11 | 成都卡莱博尔信息技术股份有限公司 | 针对数据平台任务流的任务管理系统 |
US10791134B2 (en) * | 2016-12-21 | 2020-09-29 | Threat Stack, Inc. | System and method for cloud-based operating system event and data access monitoring |
US10387426B2 (en) * | 2017-10-27 | 2019-08-20 | Streamsimple, Inc. | Streaming microservices for stream processing applications |
CN111444067A (zh) * | 2020-05-18 | 2020-07-24 | 湖南御家科技有限公司 | 一种基于规则引擎的配置化系统监控方法、装置及设备 |
CN112463543A (zh) * | 2020-12-17 | 2021-03-09 | 江苏苏宁云计算有限公司 | 业务数据的监控方法、规则数据生成方法、装置及系统 |
-
2022
- 2022-05-24 CN CN202210568296.1A patent/CN114661563B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344170A (zh) * | 2018-09-04 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 流数据处理方法、系统、电子设备及可读存储介质 |
CN110659307A (zh) * | 2019-09-06 | 2020-01-07 | 西安交大捷普网络科技有限公司 | 一种事件流的关联分析方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114661563A (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362544B (zh) | 日志处理系统、日志处理方法、终端及存储介质 | |
CN106815254B (zh) | 一种数据处理方法和装置 | |
CN110727697B (zh) | 数据的处理方法和装置、存储介质、电子装置 | |
WO2020228289A1 (zh) | 日志获取方法、装置、终端及存储介质 | |
WO2019232927A1 (zh) | 分布式数据删除流控方法、装置、电子设备及存储介质 | |
CN111966289A (zh) | 基于Kafka集群的分区优化方法和系统 | |
WO2021068113A1 (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
CN113468226A (zh) | 一种业务处理方法、装置、电子设备和存储介质 | |
CN108875035B (zh) | 分布式文件系统的数据存储方法及相关设备 | |
CN113485962A (zh) | 日志文件的存储方法、装置、设备和存储介质 | |
CN113448752A (zh) | 一种指标数据获取方法、装置、电子设备和存储介质 | |
CN111078404A (zh) | 一种计算资源确定方法、装置、电子设备及介质 | |
CN112491609A (zh) | 基于业务服务的系统应用架构发现方法及系统 | |
CN112115039B (zh) | 测试用例生成方法、装置及设备 | |
CN110460668B (zh) | 一种文件上传方法、装置、计算机设备和存储介质 | |
CN112650618A (zh) | 用于备份数据的方法、设备和计算机程序产品 | |
CN114661563B (zh) | 基于流处理框架的数据处理方法以及系统 | |
CN107748711B (zh) | 自动优化Storm并行度的方法、终端设备及存储介质 | |
CN112817687A (zh) | 一种数据同步方法和装置 | |
CN115525717A (zh) | 一种数据同步处理方法及装置 | |
CN115905151A (zh) | 基于备份日志的流转信息查询方法、系统和装置 | |
CN114385596A (zh) | 数据处理方法及装置 | |
CN112764988A (zh) | 一种数据分段采集方法及装置 | |
CN112905457A (zh) | 软件测试方法及装置 | |
US10372436B2 (en) | Systems and methods for maintaining operating consistency for multiple users during firmware updates |
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 |