基于数据流式引擎实现营销事件数据实时处理方法及系统
文献发布时间:2024-04-18 19:58:26
技术领域
本发明涉及数据处理领域,具体地说是一种基于数据流式引擎实现营销事件数据实时处理方法及系统。
背景技术
数据流式引擎是一种用于处理实时数据流的计算引擎。它提供了一种实时处理大规模数据流的架构和工具,支持高吞吐量、低延迟和高可靠性的数据处理。常用于实时监控和分析、实时数据处理等,具有实时性、可扩展性、容错性等特点。
但是如果输入的数据流存在一些问题,那么数据流式引擎将不能很好地发挥作用。具体地,存在以下问题:(1)数据流为无序数据流,如果无序数据流进入系统,模型的效果会大大下降;(2)数据流中存在实时虚假数据注入(FDI)攻击,比如入侵者可以通过启动虚假数据注入(FDI)攻击来干扰控制系统的操作,这无疑会对电网系统产生影响。
因此,在对实时数据流进行相应的计算与处理之前,需要对数据流进行预处理。
发明内容
本发明的目的是对输入到电网系统的数据流进行处理,提供一种基于数据流式引擎实现营销事件数据实时处理方法及系统,其将无序数据流转化为有序数据流,并检测出电力系统中不可观测的实时FDI攻击。
为实现上述目的,本发明采取下述的技术方案:一种基于数据流式引擎实现营销事件数据实时处理方法,其包括:
步骤1),无序数据流分析步骤,将无序数据流转换为有序数据流;
步骤2),借助ORIGIN模型拟合一个最小二乘圆,实时识别虚假数据注入攻击;
步骤3),调用攻击分类器ICON模型,对实时虚假数据注入攻击进行分类;
步骤4),使用前两个步骤所提取的分类后的虚假数据注入攻击检索控制信号,并将其发送给控制单元。
本发明将无序数据流转换为有序数据流;对虚假数据注入攻击实时识别,检测出FDI攻击并将其分类后剔除。当数据流经过上述两步操作后,数据流的性质会大大得到改善,进而更有利于后续操作。
进一步地,所述的步骤1)包括:
步骤11),将窗口划分为若干个检查点,在每个检查点以按需方式保留聚合结果;
步骤12),滑动窗口聚合;
步骤13),在滑动窗口的基础上,将无序数据流转化为有序数据流。
在滑动窗口聚合时,并不保留每一时刻的输出结果,而是在每个检查点以按需方式(如取最值等)保留聚合结果。通过这一操作,可以节省系统的内存,同时即使有延迟到达的数据,聚合结果也不一定会发生改变,避免了延迟到达对系统的干扰。通过滑动窗口聚合,操作者可以看到长时间的输出结果而并非某一时刻的输出结果,同时也为后续无序数据流转换为有序数据流提供了便利。由于滑动窗口聚合,操作者可以看到当前状态之前几秒的输出结果,所以可以较清楚地看到数据流由无序转化为有序的过程。
进一步地,所述的步骤2)中,借助ORIGIN模型拟合一个最小二乘圆,当遭到攻击时,中断信号会与控制信号间产生一个偏差,如果偏差大于系统设定的阈值,则认为电网系统遭受到实时虚假数据注入攻击。
入侵者可以通过启动虚假数据注入(FDI)攻击来干扰控制系统的操作,这无疑会对营销事件数据事实处理产生影响。所以使用ORIGIN模型来检测与识别电力系统中不可观测的实时FDI攻击。如果中断信号较控制信号的偏差大于一个设定的阈值,就认为系统遭受了实时FDI攻击。而对于正常信号,即使信号的半径发生变化,路径仍然以原点为中心。
进一步地,所述的步骤2)中,将阈值设置为
进一步地,所述的步骤3),当电网系统遭到实时虚假数据注入攻击,即设置入侵检测标志时,创建一个攻击示例
更进一步地,所述的步骤3),设置灵敏度参数
(1)
其中,
比较灵敏度参数与相似性测度的三种情况:
(3.1)如果相似性测度
(3.2)如果相似性测度
(3.3)如果相似性测度
再进一步地,训练样本
(2)
其中,星号表示复共轭,
相似性度量的计算公式如下所示:
(3)
其中,
进一步地,所述的步骤4)中,一旦攻击样本分类,就能估计原始相量测量值,通过逐采样方式在采样中动态地计算和去除注入的误差与检索控制信号;并在检索控制信号后,将其发送给控制单元。
更进一步地,所述的检索控制信号、并将其发送给控制单元,具体内容如下:当电网系统遭到实时虚假数据注入攻击,即设置入侵检测标志时,对于任意
(4)
其中,
本发明还提供一种基于数据流式引擎实现营销事件数据实时处理系统,其用于实现上述基于数据流式引擎实现营销事件数据实时处理方法。
本发明具有的有益效果如下:本发明对无序数据流进行有效处理,避免了信息不对称的情况,弱化了数据流到达次序的影响;对电力系统中不可观测的实时FDI攻击进行了检测和识别,揭示了攻击的特征,避免其对电力系统造成影响。
附图说明
图1为本发明具体实施方式中营销事件数据相关类型图;
图2为本发明具体实施方式中处理数据流ACQ时CPiX当前状态图;
图3为本发明具体实施方式中窗口滑动时CPiX有效更新non-FIFO流上受影响的中间结果图;
图4为本发明具体实施方式中CPiX总体结构图;
图5为本发明具体实施方式中0-18秒时在数据流上运行ACQ的CPiX示例图;
图6为本发明具体实施方式中2-20秒时在数据流上运行ACQ的CPiX示例图;
图7为本发明具体实施方式中4-22秒时在数据流上运行ACQ的CPiX示例图;
图8为本发明具体实施方式中6-24秒时在数据流上运行ACQ的CPiX示例图;
图9为本发明具体实施方式中检查点被完全处理时在数据流上运行ACQ的CPiX示例图;
图10为本发明具体实施方式中虚假数据注入攻击实时识别步骤中控制信号与中断信号对比说明图;
图11为本发明具体实施方式中虚假数据注入攻击实时识别步骤中控制信号与中断信号拟合最小二乘圆时的偏差图;
图12为本发明具体实施方式中实时FDI攻击分类步骤说明图;
图13为本发明基于数据流式引擎实现营销事件数据实时处理方法的流程图。
具体实施方式
下面将结合说明书附图和具体实施方式对本发明作进一步的说明。
本实施例提供了一种基于数据流式引擎实现营销事件数据实时处理方法,对输入到电网系统的数据流进行处理。
营销事件是指与市场营销活动相关的特定活动或情况,而营销事件数据流是指与市场营销活动相关的数据不断流动和记录的过程。营销事件的数据结构包括ID、类型、时间戳等基本因素,同时具有时序性、实时性等特点。将营销事件与电网的相关数据结合,对电力公司电价的调整、电能消费的反馈、电网的可视化与实时监控有着积极的作用和影响,因此电网中的营销事件数据对于整个电力系统而言有着重要的影响。
如图1所示,营销事件数据包括文本、数字等类型,本发明考虑数字数据中的电网运行数据。但也存在一些因素会对电网运行数据产生影响,如不可预料的攻击,最常见的便是黑客攻击。黑客的侵入会干扰和控制电力系统,产生一系列的安全问题,造成营销事件数据的泄露与隐私的侵犯。例如影响控制信号,使中断信号与控制信号间产生一个较大的偏差,同时中断信号的起伏波动远远大于控制信号。又如营销事件数据中可能包含着一些无序数据流,相较于有序数据流,无序数据流为先进后出,这可能会导致营销事件数据的丢失和覆盖、存储内存的增加,因此在正式处理数据前需要将无序数据流进行转化。
本发明包括两方面内容,一方面是判断数据流的类型,将营销事件中的无序数据流转化为有序数据流;另一方面是检测实时FDI攻击,防止其对营销事件数据与电力系统造成影响。
具体地,一种基于数据流式引擎实现营销事件数据实时处理方法,如图13所示,其包括:
步骤1),无序数据流分析步骤,将无序数据流转换为有序数据流;
步骤2),借助ORIGIN模型拟合一个最小二乘圆,实时识别虚假数据注入攻击;
步骤3),调用攻击分类器ICON模型,对实时虚假数据注入攻击进行分类;
步骤4),使用前两个步骤所提取的分类后的虚假数据注入攻击检索控制信号,并将其发送给控制单元。
本发明包括以下具体步骤:
1、无序数据流分析步骤。如图2至图4所示:
(1.1)将窗口划分为若干个检查点,在每个检查点以按需方式保留聚合结果。如图4所示,在图4中将整个窗口划分为k个检查点,第一个检查点为最古老的检查点、第k个检查点为当前检查点,并且每个检查点包括|n/k|个索引。在每个检查点内部,以取最大值的方法保留聚合结果,即每两秒内取最大值得到p-value,在第一个检查点内的所有p-value中取最大值为t-value,在第二个检查点至第k个检查点内所有的p-value中取最大值得到c-value,并从所有的c-value中保留最大值g-value,最后取t-value与g-value中的最大值作为聚合结果。如此处理的好处有两个:一是节省了系统的内存;二是即使存在延迟到达的数据,聚合结果也有概率不发生变化,从而避免了延迟到达对系统的干扰。
(1.2)滑动窗口聚合。如图2所示,其中p-value、t-value与g-value仍按照取最大值的方法得出。可以看出,在当前窗口可以看到0秒至18秒的输出结果,同时(15s,9)、(19s,5)以及(20s,1)这三个数据在等待进入系统。2秒后,这三个数据进入系统,并且操作者可以看到下一窗口2秒至20秒的输出结果。
(1.3)无序数据流转化。如图3所示,当上述三个数据进入系统后,操作者可以看到2秒至20秒的输出结果。此时已经无法看到0秒至2秒的输出结果,所以将0秒至2秒的p-value18抹去,这也导致了最终的t-value发生变化,其值由18变为16。对于19秒与20秒的数据,取其最大值p-value等于5,但是其不会对g-value的值产生影响。对于15秒的数据,由于其结果大于原来的p-value,所以用15秒的数据代替索引8中p-value的值,但是也不会对g-value的最终结果产生任何影响。这也验证了(1.1)中所说的:在每个检查点以按需方式保留聚合结果避免了延迟到达对系统的干扰。同时经过(1.3)这一步操作后,原先15秒的数据被传输到相应的位置,成功将无序数据流转化为有序数据流。
在步骤1中,涉及的算法为CPiX算法,该算法具体如下:
算法1:CPiX
输入:一个带有窗口
输出:查询结果
1:
2:
3:
4:
5:
6:构建双精度数组
7:构建双精度数组
8:窗口滑动,新的流
9:
10:对于
11:
12:结束循环
13:对于
14:
15:
16:
17:结束循环
18:如果当前检查点已完全处理,那么
19:对于最古老检查点中的
20:
21:结束循环
22:对于
23:
24:结束循环
25:结束如果
26:
27:结束循环
算法1的具体解释如下,在本实施例中聚合操作为取所有数值中的最大值。
其中,p1为最古老的检查点;p2为其他检查点。图5为初始状态。
通过从二进制树中删除最古老的p-value(expValue)来清除过期的记录(算法第9行)。
(5)
对于p1的每个聚合值(p-value)(算法1第10行),使用式(6)更新树(算法第10至12行),如图6所示。
(6)
对于p2中的所有记录(算法第13行),pValue表示要聚合到受影响分区的值,其索引为pIndex。同样,cIndex表示相应的受影响检查点的索引。此时将执行以下流程:
通过式(7)更新每个受影响的分区(算法第14行):
(7)
通过式(8)更新每个受影响的检查点(算法第15行):
(8)
上述两步操作如图7所示。
通过式(9)更新g-value(算法第16行),如图8所示:
(9)
如果当前检查点已完全处理或在每个|n/k|滑动之后(算法第18行),将执行以下两个进程:
通过式(10)从最古老的检查点中的所有分区(p-values)创建一个二叉树(算法第19至21行),如图9所示。
(10)
通过式(11)聚合所有的k个c-value来重新计算g-value
,/>
通过式(12)计算ACQ的结果(算法第26行)
(12)
2、虚假数据注入攻击实时识别步骤。如图10所示,其中实线为控制信号、虚线为中断信号。可以看出,当电网系统遭到实时FDI攻击时,中断信号与控制信号并不重合,中断信号的上下起伏波动远远大于控制信号。此外,借助ORIGIN模型拟合一个最小二乘圆,如图11所示,当遭到攻击时,中断信号会与控制信号间产生一个偏差,如果偏差大于系统设定的阈值,则认为电网系统遭受到了实时FDI攻击。而对于正常信号,即使信号的半径发生变化,路径仍然以原点为中心。此外,如图12前半部分所示,将阈值设置为
ORIGIN模型的算法如下所示:
算法2:ORIGIN
输入:PMU(相量测量单元)数据P
输出:入侵检测结果F,攻击分类结果h,检索到的控制信号S
定义:
初始化:
1:初始化FIFO队列Q为空集
2:设置入侵检测标志F=0
3:设置计数器j=1
训练:
4:在P
测试:
5:当P(P为P
6:更新滑动窗口
7:在
8:
9:
10: 更新FIFO队列Q
11: 如果
12:设置入侵检测标志F=1
13:创建一个攻击示例
14:调用攻击分类器
15:
16:结束如果
17:结束循环
3、实时FDI攻击分类步骤。如图12后半部分所示,当电网系统遭到了实时FDI攻击,即设置了入侵检测标志时,创建一个攻击示例
比较灵敏度参数与相似性测度的三种情况:
(3.1)如果相似性测度
(3.2)如果相似性测度
(3.3)如果相似性测度
ICON模型的算法如下所示:
算法3:ICON
输入:攻击示例
输出:攻击分类结果
定义:
返回标签
初始化:
1:初始化一个空的集合E
2:初始化第一类内存
训练:
3:当
4:计算
5:
6:计算相似性测度
7:使用公式(1)更新
8:结束循环
测试:
9:当
10:
11:如果
12:
13:
14:否则
15:
16:如果
17:
18:否则
19:
20:结束如果
21:结束如果
22:返回
23:结束循环
具体地,训练样本
其中,星号表示复共轭,
相似性度量的计算公式如下所示,card表示集合的基数。
4、控制信号检索步骤。如图12后半部分所示,当电网系统遭到了实时FDI攻击,即设置了入侵检测标志时,对于任意
其中,
- 一种数据实时处理系统及数据实时处理方法
- 一种基于Flink流式计算引擎实现海量数据近实时处理的方法
- 一种基于流式计算引擎的实时数据处理方法及装置