本发明涉及实时数据统计领域,尤其涉及一种基于多表变化轨迹的多维度数据实时统计方法、装置。
背景技术:
1、在对业务数据进行查询统计时,现有方案一般基于传统业务informix数据库,将业务库中增量数据写在到文本文件中,使用传统etl工具处理后,与存量数据合并,最终实现汇总用于前端报表展现。
2、随着业务的逐渐发展,出现了以下缺陷:
3、1、传统的informix数据库源数据端数据量逐年增大,查询效率越来越慢,卸载数据报错的频率和风险在增加;
4、2、对informix源数据库高频率的查询,对源端数据库运维压力增大;
5、3、不能实现真正意义的实时数据统计,无法满足业务实际需求。
技术实现思路
1、本发明提供了一种基于多表变化轨迹的多维度数据实时统计方法、装置,解决了由于业务逐年增长带来的查询效率缓慢、业务数据统计实时性不高的问题。
2、一种基于多表变化轨迹的多维度数据实时统计方法,包括:
3、从关系型数据库informix获取存量数据,通过etl对所述存量数据进行批处理,将处理后的存量数据存储至redis数据库;
4、从kafka平台获取增量数据,通过flink对所述增量数据进行流处理,将处理后的增量数据存储至redis数据库;
5、获取所述增量数据中的更新数据,对所述更新数据进行批处理,将处理后的更新数据存储至redis数据库;
6、从所述redis数据库中获取处理后的存量数据、增量数据和更新数据,并根据不同维度进行汇总统计,将汇总统计结果实时更新展示在终端应用中。
7、在本发明的一种实施例中,所述从关系型数据库informix获取存量数据,通过etl对所述存量数据进行批处理,具体包括:获取informix数据库中的收付原因数据和统计时间范围内的数据,将所述数据通过etl处理转换成文本文件;将所述文本文件存储至中间关系型数据库oracle中;将存储至oracle数据库中的文本文件关联不同维度的表信息后进行汇总;基于预设频率定时将汇总后的数据更新到oracle结果表中;通过flink任务工作流将oracle结果表中的数据加载更新到redis数据库中。
8、在本发明的一种实施例中,所述通过flink对所述增量数据进行流处理,具体包括:从kafka平台消费相关topic数据,筛选出固定收付原因和收付日期范围内的增量数据,将筛选出的增量数据存储至关系型数据库postgresql中;将所述增量数据作为主数据流,将不同维度的表信息加载为维表数据流;将所述主数据流和所述维表数据流依次关联;将关联后的结果集按不同维度进行聚合,将属于相同维度的聚合结果进行合并,将合并后的数据集存储到redis数据库中。
9、在本发明的一种实施例中,所述获取所述增量数据中的更新数据,对所述更新数据进行批处理,具体包括:获取存储至postgresql中的增量数据中的更新数据;通过主键关联确定与所述更新数据对应的历史新增数据;将所述历史新增数据中的金额乘以预设数值后,再和所述更新数据进行合并汇总。
10、在本发明的一种实施例中,所述将所述数据通过etl处理转换成文本文件,具体包括:对从informix数据库中获取到的数据进行数据清洗,包括删除无效数据、填充缺失值和去除重复记录;将数据清洗后的数据进行格式转换,得到文本文件。
11、在本发明的一种实施例中,所述方法还包括:对流处理和批处理过程进行日志监控,获取流处理和批处理过程中的日志数据;对所述日志进行多维分析,根据多维分析结果判断是否存在异常;当监控到日志异常时,自动将批处理或流处理的报错信息发送到相关人员。
12、在本发明的一种实施例中,所述方法还包括:在flink任务中启用检查点机制并配置检查点,配置任务失败时的重启策略;捕获可能出现的异常情况,当捕获到异常情况时,触发flink任务失败,将失败的flink任务进行标记;查询被标记的flink任务的最近检查点,根据最近检查点的数据状态重新执行失败的任务,并从上次保存的检查点开始恢复。
13、一种基于多表变化轨迹的多维度数据实时统计装置,包括:
14、存量数据处理模块,用于从关系型数据库informix获取存量数据,通过etl对所述存量数据进行批处理,将处理后的存量数据存储至redis数据库;
15、增量数据处理模块,用于从kafka平台获取增量数据,通过flink对所述增量数据进行流处理,将处理后的增量数据存储至redis数据库;
16、更新数据处理模块,用于获取所述增量数据中的更新数据,对所述更新数据进行批处理,将处理后的更新数据存储至redis数据库;
17、汇总统计模块,用于从所述redis数据库中获取处理后的存量数据、增量数据和更新数据,并根据不同维度进行汇总统计,将汇总统计结果实时更新展示在终端应用中。
18、一种基于多表变化轨迹的多维度数据实时统计设备,包括:
19、至少一个处理器;以及,
20、与所述至少一个处理器通过总线通信连接的存储器;其中,
21、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被执行,以实现如上述各实施例任一项所述的方法。
22、一种非易失性存储介质,存储有计算机可执行指令,所述计算机可执行指令由处理器执行,以实现如上述各实施例任一项所述的方法。
23、本发明提供了一种基于多表变化轨迹的多维度数据实时统计方法、装置,至少包括以下有益效果:
24、1、使用公司全量数据kafka平台作为增量数据源,降低了增量数据批处理的数据库计算压力,降低了增量数据查询效率逐渐增加的风险;
25、2、降低了对公司informix数据库实时查询数据的压力;
26、3、使用flink流数据处理技术,大幅提升了数据实时处理频率,达成了业务更高频率的实际需求。
1.一种基于多表变化轨迹的多维度数据实时统计方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述从关系型数据库informix获取存量数据,通过etl对所述存量数据进行批处理,具体包括:
3.根据权利要求1所述的方法,其特征在于,所述通过flink对所述增量数据进行流处理,具体包括:
4.根据权利要求3所述的方法,其特征在于,所述获取所述增量数据中的更新数据,对所述更新数据进行批处理,具体包括:
5.根据权利要求2所述的方法,其特征在于,所述将所述数据通过etl处理转换成文本文件,具体包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.一种基于多表变化轨迹的多维度数据实时统计装置,其特征在于,包括:
9.一种基于多表变化轨迹的多维度数据实时统计设备,其特征在于,包括:
10.一种非易失性存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令由处理器执行,以实现如权利要求1-7任一项所述的方法。