System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,尤其涉及一种数据处理方法和装置、电子设备及存储介质。
技术介绍
1、目前,对于大批量业务数据,通常采用关系型数据库以年份分库按月分表策略进行存储,并且这种策略已经表现出性能瓶颈和维护成本上升等问题。随着业务数据的递增,使得关系型数据库中单一库或表的写入负荷不断攀升,给系统带来了更大的负担,维护索引、字段增加和系统监控工作等也变得更为复杂,系统架构扩展变得困难。
2、综上,相关技术中存在的技术问题有待得到改善。
技术实现思路
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、处理模块,用于通过分布式发布订阅消息系统根据所述消息查询所述第一索引获取第一编码列表,根据所述第一编码列表查询得到完整数据,通过所述完整数据进行第一实体对象创建,所述完整数据包括第一集合以及关联表的数据,所述第一实体对象包含所述第一集合与关联表的本文档来自技高网...
【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述第一集合的数据以第二时间维度进行拆分,根据拆分后的数据生成消息发送至分布式发布订阅消息系统,包括:
3.根据权利要求1所述的方法,其特征在于,所述消息包括第三编码,所述通过分布式发布订阅消息系统根据所述消息查询所述第一索引获取第一编码列表,根据所述第一编码列表查询得到完整数据,通过所述完整数据进行第一实体对象创建,包括:
4.根据权利要求1所述的方法,其特征在于,所述第一时间维度采用年,所述第二时间维度采用日,所述消息包括日期,所述通过分布式发布订阅消息系统根据所述消息查询所述第一索引获取第一编码列表,根据所述第一编码列表查询得到完整数据,通过所述完整数据进行第一实体对象创建,包括:
5.根据权利要求2所述的方法,其特征在于,所述第一实体对象包括创建时间,所述将所述第一实体对象以第一时间维度存储到非关系型数据库的第二集合,包括:
6.根据权利要求2所述的方法,其特征在于,所述将所述第一实体对象以第一时间维度存储到非关系型
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
8.一种数据处理装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
...【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述第一集合的数据以第二时间维度进行拆分,根据拆分后的数据生成消息发送至分布式发布订阅消息系统,包括:
3.根据权利要求1所述的方法,其特征在于,所述消息包括第三编码,所述通过分布式发布订阅消息系统根据所述消息查询所述第一索引获取第一编码列表,根据所述第一编码列表查询得到完整数据,通过所述完整数据进行第一实体对象创建,包括:
4.根据权利要求1所述的方法,其特征在于,所述第一时间维度采用年,所述第二时间维度采用日,所述消息包括日期,所述通过分布式发布订阅消息系统根据所述消息查询所述第一索引获取第一编码列表,根据所述第一编码列表查询得到完整数据,通过所述完整数据进行第一实体对象创建,包括:
5.根...
【专利技术属性】
技术研发人员:汪宗叶,
申请(专利权)人:广州今之港教育咨询有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。