System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据实时计算领域,具体涉及一种基于flink双流数据处理方法、装置及电子设备。
技术介绍
1、flink作为一种实时计算引擎,被广泛应用于大数据处理领域下的批量流数据或逐条流数据的实时处理,如通过flink intervaljoin方式,实现双流数据关联操作,满足数据处理需求。
2、然而,由于在flink双流join操作过程中,都是将双流数据存储于flink的两个state(状态)存储区后,再对双流数据进行关联,若双流数据产生间隔延迟较大,很容易造成相应数据丢失,无法保证数据准确性。
技术实现思路
1、为了解决上述问题,本申请实施例提供如下技术方案:
2、本申请提出了一种基于flink双流数据处理方法,所述基于flink双流数据处理方法包括:
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、可选的,所述通利用所述补充数据替换所述待定数据流中对应的所述缺失数据,获得属于所述第二数据流的具有对应的所述关联键的更新数据,包括:
28、利用所述补充数据替换所述待定数据流中对应的所述缺失数据,得到对应的关联连接数据;
29、确定所述关联连接数据不符合输出条件,对所述关联连接数据进行预处理;所述预处理包括去重处理和/或基于事件发生时间进行排序;
30、从预处理后的所述关联连接数据中,获得属于所述第二数据流的更新数据。
31、本申请还提出了一种基于flink双流数据处理装置,所述基于flink双流数据处理装置包括:
32、第一数据流写入模块,用于将第一数据流写入目标数据表;
33、待定数据流得到模块,用于基于事件发生时间,对第二数据流与所述第一数据流进行关联连接处理,得到待定数据流;所述事件发生时间是指接收到所述第一数据流或所述第二数据流的数据时的时间;
34、关联数据写入模块,用于将所述待定数据流中所述第二数据流与所述第一数据流关联上的关联数据写入所述目标数据表;
35、更新数据得到模块,用于通过查询关联所述第一数据流或所述第二数据流的数据快照,更新所述待定数据流中对应数据流的缺失数据,得到所述第二数据流的更新数据;所述数据流的缺失数据是在所述数据流未关联上当前接收到的对方数据流的数据时确定;
36、更新数据写入模块,用于将所述更新数据写入所述目数据表,得到所述第一数据流与所述第二数据流关联连接后的目标数据流。
37、可选的,所述第一数据流写入模块包括:
38、更新写入单元,用于通过局部更新方式,将第一数据流写入目标数据集。
39、本申请还提出了一种电子设备,所述电子设备包括:至少一个数据传输端口,至少一个存储器和至少一个处理器,其中:
40、所述数据传输端口,用于接收第一数据流和第二数据流;
41、所述处理器,用于加载执行所述存储器存储的计算机指令,实现以下步骤:
42、将第一数据流写入目标数据表;
43、基于事件发生时间,对第二数据流与所述第一数据流进行关联连接处理,得到待定数据流;所述事件发生时间是指接收到所述第一数据流或所述第二数据流的数据时的时间;
44、将所述待定数据流中所述第二数据流与所述第一数据流关联上的关联数据写入所述目标数据表;
45、通过查询关联所述第一数据流或所述第二数据流的数据快照,更新所述待定数据流中对应数据流的缺失数据,得到所述第二数据流的更新数据;所述数据流的缺失数据是在所述数据流未关联上当前接收到的对方数据流的数据时确定;
46、将所述更新数据写入所述目数据表,得到所述第一数据流与所述第二数据流关联连接后的目标数据流。
本文档来自技高网...【技术保护点】
1.一种基于Flink双流数据处理方法,其特征在于,所述基于Flink双流数据处理方法包括:
2.根据权利要求1所述的基于Flink双流数据处理方法,其特征在于,所述将第一数据流写入目标数据表,包括:
3.根据权利要求2所述的基于Flink双流数据处理方法,其特征在于,所述通过局部更新方式,将第一数据流写入目标数据表,包括:
4.根据权利要求1-3任一项所述的基于Flink双流数据处理方法,其特征在于,所述基于事件发生时间,对第二数据流与所述第一数据流进行关联连接处理,得到待定数据流,包括:
5.根据权利要求4所述的基于Flink双流数据处理方法,其特征在于,所述通过基于时间区间的连接方式,对接收到的第二数据流与所述第一数据流进行关联连接处理,得到待定数据流,包括:
6.根据权利要求4所述基于Flink双流数据处理方法,其特征在于,所述通过查询关联所述第一数据流或所述第二数据流的数据快照,更新所述待定数据流中对应数据流非关联到的缺失数据,得到所述第二数据流的更新数据,包括:
7.根据权利要求6所述的基于Fli
8.一种基于Flink双流数据处理装置,其特征在于,所述基于Flink双流数据处理装置包括:
9.根据权利要求8所述的基于Flink双流数据处理装置,其特征在于,所述第一数据流写入模块包括:
10.一种电子设备,其特征在于,所述电子设备包括:至少一个数据传输端口,至少一个存储器和至少一个处理器,其中:
...【技术特征摘要】
1.一种基于flink双流数据处理方法,其特征在于,所述基于flink双流数据处理方法包括:
2.根据权利要求1所述的基于flink双流数据处理方法,其特征在于,所述将第一数据流写入目标数据表,包括:
3.根据权利要求2所述的基于flink双流数据处理方法,其特征在于,所述通过局部更新方式,将第一数据流写入目标数据表,包括:
4.根据权利要求1-3任一项所述的基于flink双流数据处理方法,其特征在于,所述基于事件发生时间,对第二数据流与所述第一数据流进行关联连接处理,得到待定数据流,包括:
5.根据权利要求4所述的基于flink双流数据处理方法,其特征在于,所述通过基于时间区间的连接方式,对接收到的第二数据流与所述第一数据流进行关联连接处理,得到待定数据流,包括:
6.根据权...
【专利技术属性】
技术研发人员:周泽启,
申请(专利权)人:舟谱数据技术南京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。