一种异构多源数据处理方法及装置与流程

摘要: 本公开属于数据处理,尤其涉及一种异构多源数据处理方法及装置。背景技术:1、当前民航软件全景监控视图的指标分析处理,通常采用硬编码式、紧耦合的数据处理架构:2、为...
一种异构多源数据处理方法及装置与流程

本公开属于数据处理,尤其涉及一种异构多源数据处理方法及装置。

背景技术:

1、当前民航软件全景监控视图的指标分析处理,通常采用硬编码式、紧耦合的数据处理架构:

2、为每种数据源(prometheus时序数据库、elasticsearch日志系统、业务api接口)分别开发专用采集适配器,连接认证、字段映射、查询逻辑直接写入程序代码;新增或变更数据源时,需重构采集器代码,运维成本高且扩展性差。例如,对接带 sasl 认证的 kafka集群时,认证参数需直接写入采集器源码,无法动态调整。

3、数据转换与聚合规则(如平均处理延迟、百分位数计算)固化在应用代码中,形成“代码即配置”模式;当业务需求变更(如新增百分位数延迟指标)时,需经历“修改源码-测试-部署”全流程,响应周期长达数天,无法适配民航运维的实时性需求。

4、各数据源处理结果输出格式不统一,下游告警/可视化平台需逐一适配解析;即为每种格式开发专用解析器,形成 n×m 的集成复杂度。同时,输出数据缺乏统一元数据描述(如指标单位、告警阈值),导致消费方无法准确理解数据含义,易引发监控误判。

5、聚合计算多依赖简单批处理或数据库查询,缺乏专门的实时流式计算引擎。虽通过限流缓解系统过载,但未从架构层面解决问题,导致跨实例、跨维度聚合(如全航线平均延迟)的实时性无法保证。

6、由此可见,现有方案将业务逻辑与程序代码强耦合,导致系统集成复杂且需求响应迟钝,无法满足业务对数据处理的动态化和及时响应的需求。

技术实现思路

1、为解决上述问题,本公开提供了一种异构多源数据处理方法及装置,用以满足业务对数据处理的动态化和及时响应的需求。

2、本发明提供一种异构多源数据处理方法,针对不同的数据源分别构建采集配置文件、规则配置文件和指标规则表;所述方法,包括:

3、根据所述采集配置文件从数据源采集原始数据并封装为内部数据对象后发送给第一数据消息队列;

4、从所述第一数据消息队列拉取数据消息,根据所述规则配置文件,将拉取的数据消息中包含的内部数据对象转换为基础指标数据并发送给第二数据消息队列;

5、从所述第二数据消息队列获取基础指标数据,基于所述指标规则表,对获取的基础指标数据进行处理得到相应的指标值。

6、进一步的,所述采集配置文件为yaml配置文件,数据源的启用和配置通过所述yaml配置文件控制;所述yaml配置文件中还包含数据源连接参数和指标查询逻辑;

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、针对不同数据源产生的数据格式不同的问题,本发明实施例通过针对不同的数据源分别定义软件源指标名、标准指标名和两者对应的转换规则,无论上游数据来源如何,均可将其转换为基础指标数据,实现了对数据的标准化处理,降低了数据处理的复杂度。

41、此外,本发明实施例中,在进行指标计算之前,通过脚本预编译技术预先对指标计算表进行编译并放入缓存中,这样避免了每次进行指标计算时的解析开销,提升了计算效率,减少了计算延迟。

42、本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。