System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,更具体地说,涉及一种针对实时计算框架的数据处理方法及装置。
技术介绍
1、在实时系统的实时计算中,经常遇到的问题是数据重放中遇到数据源数据重复导致的结果集重复问题。另外实时程序重启时也会自动处理上一个批次没有处理完的数据,同样会导致结果集重复问题。
2、数据重放是实时系统中因逻辑修改、原处理方式不正确等原因,需要重新接收之前某时间点接收过的数据源的数据,并重新进行计算,重写结果集。在实时程序在停止时,可能还没完整处理完一个批次的数据,当再次重启实时程序时,会自动再次处理一遍上一个批次的数据,而这个过程会导致该批次的结果集全部或者部分重复。
3、因此,如何解决结果集的重复问题,确保结果集的平滑性和一致性,是本申请亟需解决的问题。
技术实现思路
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、读取单元,用于读取在所述日志内时间内的数据;
28、约束单元,用于通过唯一索引机制,对所述数据进行约束;所述唯一索引机制用于确保数据库的表中的任意一列的值或多列的值唯一;
29、第二获取单元,用于根据约束后的数据与结果集,得到目标指标;所述目标指标为同一索引下的最大值指标;
30、写入单元,用于通过覆盖写入方式将所述目标指标写入数据库,以确保实时计算框架在数据处理过程中数据的平滑性和一致性。
31、优选的,所述第一获取单元,包括:
32、第一获取模块,用于获取结果集写入数据库的日志内开始时间和日志内开始时间结束时间;
33、第一确定模块,用于根据所述日志内开始时间和日志内开始时间结束时间,确定结果集写入数据库的日志内时间。
34、优选的,所述读取单元,包括:
35、第二获取模块,用于获取当前系统时间和数据上报时间;
36、第二确定模块,用于根据所述当前系统时间、所述日志内时间和所述数据上报时间,确定周期性读取方式;
37、读取模块,用于根据所述周期性读取方式,读取在所述日志内时间内的数据。
38、优选的,所述约束单元,具体用于:
39、通过唯一索引机制,对所述数据进行约束,以确保数据的表中的任意一列的值或多列的值唯一。
40、经由上述技术可知,本申请公开了一种针对实时计算框架的数据处理方法及装置,获取结果集写入数据库的日志内时间,读取在日志内时间内的数据,通过唯一索引机制,对数据进行约束,唯一索引机制用于确保数据库的表中的任意一列的值或多列的值唯一,根据约束后的数据与结果集,得到目标指标,目标指标为同一索引下的最大值指标,通过覆盖写入方式将目标指标写入数据库,以确保实时计算框架在数据处理过程中数据的平滑性和一致性。通过上述方案,在需要保证数据一致性的场景中,由于唯一索引机制用于确保数据库的表中的任意一列的值或多列的值唯一,即不能有重复的值,通过唯一索引机制得到约束后的目标指标,并通过覆盖写入方式将目标指标写入数据库,覆盖写入方式可在检测到主键或唯一索引冲突时,先删除冲突的行,然后插入新行,新行会替换已有的冲突行,在后续写入数据库的所有维度与数据库中的维度一样时就会自动覆盖该条记录,从而解决结果集的重复问题。并且由于目标指标为同一索引下的最大值指标,即在同一索引下保留与实际业务定义的正确指标,使得在数据重放和重启下也能确保结果集的平滑性和一致性。
本文档来自技高网...【技术保护点】
1.一种针对实时计算框架的数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取结果集写入数据库的日志内时间,包括:
3.根据权利要求1所述的方法,其特征在于,所述读取在所述日志内时间内的数据,包括:
4.根据权利要求1所述的方法,其特征在于,所述通过唯一索引机制,对所述数据进行约束,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据约束后的数据与结果集,得到目标指标,包括:
6.根据权利要求1所述的方法,其特征在于,所述通过覆盖写入方式将所述目标指标写入数据库,以确保实时计算框架在数据处理过程中数据的平滑性和一致性,包括:
7.一种针对实时计算框架的数据处理装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述第一获取单元,包括:
9.根据权利要求7所述的装置,其特征在于,所述读取单元,包括:
10.根据权利要求7所述的装置,其特征在于,所述约束单元,具体用于:
【技术特征摘要】
1.一种针对实时计算框架的数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取结果集写入数据库的日志内时间,包括:
3.根据权利要求1所述的方法,其特征在于,所述读取在所述日志内时间内的数据,包括:
4.根据权利要求1所述的方法,其特征在于,所述通过唯一索引机制,对所述数据进行约束,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据约束后的数据与结果集,得到目标指标,包括:
【专利技术属性】
技术研发人员:邵位,
申请(专利权)人:北京搜狐新媒体信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。