1.本技术涉及大数据处理技术领域,特别是涉及一种业务指标计算方法、装置、计算机设备和存储介质。
背景技术:2.随着互联网的持续发展,企业需要及时的对业务指标进行计算和统计,以实时有效地掌握业务的发展情况,以及快速客观的评估业务运营状况。
3.然而,传统业务指标计算方法中业务指标的获取方案强依赖业务数据的统计表,从而造成程序开发工作量大、浪费业务数据库的存储空间或者业务指标计算速度慢等问题。
技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够防止程序开发工作量大、浪费业务数据库的存储空间和业务指标计算速度慢的业务指标计算方法、装置、计算机设备和存储介质。
5.第一方面,提供一种业务指标计算方法,所述方法包括:
6.响应于业务数据的统计表无需存储或统计表的预测数据量大于预设阈值,从日志消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据;其中,监控日志为用于记录业务数据的日志;
7.对监控日志的流数据进行解析处理后得到指标计算数据,并根据指标计算数据生成指标计算流数据;其中,指标计算数据为业务数据中计算业务指标所需的数据;
8.调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标。
9.在其中一个实施例中,上述方法还包括:响应于统计表需存储或预测数据量小于预设阈值,从业务数据库中获取业务数据,并根据业务数据生成统计表;将统计表同步至分析数据库,并对同步至分析数据库的统计表进行数据提取,得到指标计算数据;根据计算逻辑规则,对指标计算数据进行计算,得到业务指标。
10.在其中一个实施例中,上述方法还包括:将业务指标存入至指标结果消息队列;从指标结果消息队列中读取业务指标,并将业务指标写入指标分析引擎。
11.在其中一个实施例中,上述方法还包括:调用指标分析引擎,对业务指标进行统计分析,生成并展示业务指标统计表。
12.在其中一个实施例中,上述方法还包括:调用指标分析引擎,对业务指标和业务指标阈值进行比较分析,生成比较分析结果;根据比较分析结果,判断是否进行告警。
13.在其中一个实施例中,根据指标计算数据生成指标计算流数据,包括:根据指标计算数据生成待处理流数据;对待处理流数据进行数据清洗,得到结构化日志数据;根据结构化日志数据,生成指标计算流数据。
14.在其中一个实施例中,方法还包括:响应于计算逻辑规则的配置操作,读取计算逻辑规则。
15.第二方面,提供了一种业务指标计算装置,所述装置包括过滤处理模块、解析处理模块和流式计算模块。
16.其中,过滤处理模块用于响应于业务数据的统计表无需存储或统计表的预测数据量大于预设阈值,从日志消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据;其中,监控日志为用于记录业务数据的日志;解析处理模块用于对监控日志的流数据进行解析处理后得到指标计算数据,并根据指标计算数据生成指标计算流数据;其中,指标计算数据为业务数据中计算业务指标所需的数据;流式计算模块用于调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标。
17.第三方面,提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行所述计算机程序时实现上述方法实施例中任一方法的步骤。
18.第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中任一方法的步骤。
19.上述业务指标计算方法、装置、计算机设备和存储介质,通过响应于业务数据的统计表无需存储或统计表的预测数据量大于预设阈值,从日志消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据;而后,对监控日志的流数据进行解析处理后得到指标计算数据,并根据指标计算数据生成指标计算流数据;接着,调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标,也就避免了程序开发工作量大和浪费业务数据库的存储空间,提高了业务指标计算速度、算力和效率。
附图说明
20.图1为一个传统技术示例中业务指标计算的流程示意图;
21.图2为一个实施例中业务指标计算的应用环境图;
22.图3为一个实施例中业务指标计算方法的第一流程示意图;
23.图4为一个实施例中根据指标计算数据生成指标计算流数据的步骤的流程示意图;
24.图5为一个实施例中业务指标计算方法的第二流程示意图;
25.图6为一个实施例中业务指标计算方法的第三流程示意图;
26.图7为一个实施例中业务指标计算方法的第四流程示意图;
27.图8为一个具体示例中业务指标计算的流程示意图;
28.图9为一个实施例中业务指标计算装置的结构框图;
29.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
30.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本技术的公开内容更加透彻全面。
31.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
32.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一电阻称为第二电阻,且类似地,可将第二电阻称为第一电阻。第一电阻和第二电阻两者都是电阻,但其不是同一电阻。
33.可以理解,以下实施例中的“连接”,如果被连接的电路、模块、单元等相互之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
34.在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
35.在传统技术中,如图1所示,服务器仅能直接根据业务数据库中的业务数据生成业务数据的统计表;而后,将业务数据的统计表同步至分析数据库中;接着,指标系统根据同步至分析数据库中业务数据的统计表的指标计算数据计算得到业务指标。然而,传统技术中业务指标的获取方案强依赖业务数据的统计表,从而造成程序开发工作量大、浪费业务数据库的存储空间或者业务指标计算速度慢等问题。
36.本技术提供的业务指标计算,可以应用于如图2所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
37.第一方面,如图3所示,提供了一种业务指标计算,以该方法应用于图1中的服务器为例进行说明,包括以下步骤202至步骤206。
38.步骤202,响应于业务数据的统计表无需存储或统计表的预测数据量大于预设阈值,从日志消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据。
39.其中,监控日志为用于记录业务数据的日志。业务数据的统计表无需存储说明该类业务数据的统计表程序开发工作量较大和开发成本较高,同时也能说明该类业务数据的统计表的重要性较低。业务数据的统计表的预测数据量大于预设阈值则说明业务数据的统计表所占服务器的存储空间较大,可能浪费服务器的存储资源。此外,预设阈值可以根据客户实际应用需求而灵活设置,在此不进行限制。
40.服务器在业务数据的统计表无需存储或业务数据的统计表的预测数据量大于预设阈值的情况下,从日志消息队列中获取原始日志;而后,对原始日志进行过滤处理,从而得到用于记录业务数据的日志即监控日志;同时,即可根据监控日志确定监控日志的流数据。
41.在一个具体示例中,日志消息队列可以但不限于是原始日志kafka消息队列。可以理解的是,服务器基于预设的过滤规则,对原始日志进行过滤处理后得到监控日志的流数据。其中,预设的过滤规则可以根据监控日志的格式确定;监控日志的格式包括前缀标识、
业务key和业务数据。此外,业务key用于区分日志类型。值得注意的是,通过监控日志的格式的设计采用约定大于配置的思想,尽量简化开发者的工作。因此,在过滤处理过程中避免了出现业务key的碰撞。以上仅为具体示例,在实际应用中根据用户需求而灵活设置,在此不进行限制。
42.步骤204,对监控日志的流数据进行解析处理后得到指标计算数据,并根据指标计算数据生成指标计算流数据。
43.其中,指标计算数据为业务数据中计算业务指标所需的数据。服务器可以对监控日志的流数据进行解析处理,从而得到指标计算数据;而后,根据指标计算数据,即可生成指标计算流数据。
44.在一个具体示例中,监控日志得流数据通过解析得到字符串;而后,对该字符串进行处理,从而得到指标计算数据;接着,即可根据指标计算数据生成指标计算流数据。可以理解的是,对该字符串进行的处理可以但不限于数据提取处理。以上仅为具体示例,在实际应用中根据用户需求而灵活设置,在此不进行限制。
45.在其中一个实施例中,如图4所示,根据指标计算数据生成指标计算流数据,包括步骤401至步骤403。
46.步骤401,根据指标计算数据生成待处理流数据.
47.步骤402,对待处理流数据进行数据清洗,得到结构化日志数据。
48.步骤403,根据结构化日志数据,生成指标计算流数据。
49.其中,服务器可以根据指标计算数据生成待处理流数据;而后,对待处理流数据进行数据清洗,从而得到结构化日志数据;接着,根据结构化日志数据,生成指标计算流数据。
50.在本实施例中,通过根据指标计算数据生成待处理流数据;而后,对待处理流数据进行数据清洗,得到结构化日志数据;最后,根据结构化日志数据,生成指标计算流数据,从而实现待处理流数据的表达结构优化处理,通过对待处理流数据进行数据清洗得到的结构化日志数据也便于后续数据查询、数据分析和数据计算,提高了业务指标计算的效率和便利性。
51.步骤206,调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标。
52.其中,服务器可以调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,从而得到准确的业务指标。此外,流式计算引擎可以但不限于是flink流式计算引擎。
53.在其中一个实施例中,如图5所示,上述方法还包括步骤201。
54.步骤201,响应于计算逻辑规则的配置操作,读取计算逻辑规则。
55.其中,服务器响应于计算逻辑规则的配置操作,即可读取计算逻辑规则;同时,服务器还可以存储该计算逻辑规则,便于后续的业务指标计算过程。
56.在一个具体示例中,用户可以在用户终端的业务运营界面上完成计算逻辑规则的配置操作,从而服务器即可响应于计算逻辑规则的配置操作,读取计算逻辑规则。可以理解的是,计算逻辑规则可以但不限于采用sql语言。以上仅为具体示例,在实际应用中根据用户需求而灵活设置,在此不进行限制。
57.上述业务指标计算方法,通过响应于业务数据的统计表无需存储或统计表的预测
数据量大于预设阈值,从日志消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据;而后,对监控日志的流数据进行解析处理后得到指标计算数据,并根据指标计算数据生成指标计算流数据;接着,调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标,也就避免了程序开发工作量大和浪费业务数据库的存储空间,提高了业务指标计算速度、算力和效率。
58.在其中一个实施例中,如图6所示,上述方法还包括步骤601至步骤603。
59.步骤601,响应于统计表需存储或预测数据量小于预设阈值,从业务数据库中获取业务数据,并根据业务数据生成统计表。
60.步骤602,将统计表同步至分析数据库,并对同步至分析数据库的统计表进行数据提取,得到指标计算数据。
61.步骤603,根据计算逻辑规则,对指标计算数据进行计算,得到业务指标。
62.其中,业务数据的统计表需存储说明该类业务数据的统计表程序开发工作量较小和开发成本较低,同时也能说明该类业务数据的统计表的重要性较高。业务数据的统计表的预测数据量小于预设阈值则说明业务数据的统计表所占服务器的存储空间较小,不会浪费服务器的存储资源。此外,预设阈值可以根据客户实际应用需求而灵活设置,在此不进行限制。
63.可以理解的是,服务器在统计表需存储或预测数据量小于预设阈值的情况下,从业务数据库中获取业务数据,并根据业务数据生成业务数据的统计表;而后,将业务数据的统计表同步至分析数据库,并通过对同步至分析数据库的统计表进行数据提取,得到指标计算数据;接着,根据预先配置的计算逻辑规则,对指标计算数据进行计算,即可得到业务指标。
64.在本实施例中,通过设置统计表需存储或预测数据量小于预设阈值的条件,从而使服务器在统计表需存储或预测数据量小于预设阈值的情况下,从业务数据库中获取业务数据,并根据业务数据生成业务数据的统计表;而后,将业务数据的统计表同步至分析数据库,并通过对同步至分析数据库的统计表进行数据提取,得到指标计算数据,也就避免了传统技术中服务器仅能直接根据业务数据库中的业务数据生成业务数据的统计表,并强依赖于将业务数据的统计表完成业务指标的计算,从而防止了程序开发工作量大和浪费业务数据库的存储空间,提高了业务指标计算速度、算力和效率。
65.在其中一个实施例中,如图7所示,上述方法还包括步骤701至步骤702。
66.步骤701,将业务指标存入至指标结果消息队列。
67.步骤702,从指标结果消息队列中读取业务指标,并将业务指标写入指标分析引擎。
68.其中,指标结果消息队列可以但不限于是指标结果kafka消息队列。服务器可以将业务指标存入至指标结果消息队列;而后,从指标结果消息队列中读取业务指标,并将业务指标写入指标分析引擎。
69.在本实施例中,通过将业务指标存入至指标结果消息队列;且,从指标结果消息队列中读取业务指标,并将业务指标写入指标分析引擎,也就便于后续指标分析引擎对业务指标进行统计分析,提高了业务指标统计的效率和便利性,也提高了业务指标的数据传输稳定性和务指标的数据可追溯性。
70.在其中一个实施例中,如图7所示,上述方法还包括步骤703.
71.步骤703,调用指标分析引擎,对业务指标进行统计分析,生成并展示业务指标统计表。
72.其中,服务器可以调用指标分析引擎,对业务指标进行统计分析,生成业务指标统计表;同时,展示业务指标统计表;也就便于工作人员及时了解业务指标的相关情况。
73.在本实施例中,通过调用指标分析引擎,对业务指标进行统计分析,生成并展示业务指标统计表,便于工作人员及时了解业务指标的相关情况,提高了业务指标计算方法的便利性。
74.在其中一个实施例中,如图7所示,上述方法还包括步骤704和步骤705。
75.步骤704,调用指标分析引擎,对业务指标和业务指标阈值进行比较分析,生成比较分析结果。
76.步骤705,根据比较分析结果,判断是否进行告警。
77.其中,服务器可以调用指标分析引擎,对业务指标和业务指标阈值进行比较分析,生成比较分析结果;而后,根据比较分析结果,判断是否进行告警。
78.在一个具体示例中,业务指标包括当日坐席登陆数量或当日坐席登陆率。服务器可以调用指标分析引擎,将当日坐席登陆数量和登录数量阈值进行比较分析,从而生成比较分析结果。在比较分析结果表征当日坐席登陆数量小于登录数量阈值,则判定进行告警,以及时提醒业务管理人员当日坐席登陆数量过小;同时,在比较分析结果表征当日坐席登陆数量大于或等于登录数量阈值,则不进行告警。服务器可以调用指标分析引擎,将当日坐席登陆率和登陆率阈值进行比较分析,从而生成比较分析结果。在比较分析结果表征当日坐席登陆率小于登录率阈值,则判定进行告警,以及时提醒业务管理人员当日坐席登陆率过小;同时,在比较分析结果表征当日坐席登陆率大于或等于登录率阈值,则不进行告警。以上仅为具体示例,在实际应用中根据用户需求而灵活设置,在此不进行限制。
79.在一个具体示例中,如图8所示,用户终端可以通过操作控制服务器端,服务器端在业务数据的统计表无需存储或统计表的预测数据量大于预设阈值的情况下,从原始日志kafka消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据;而后,对监控日志的流数据进行解析处理后得到指标计算数据;接着,调用flink流式计算引擎,根据指标计算数据生成待处理流数据,并对待处理流数据进行数据清洗,得到结构化日志数据;然后,根据结构化日志数据生成指标计算流数据,并调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标;且,将业务指标存入至指标结果kafka消息队列,并从指标结果消息队列中读取业务指标,并将业务指标写入指标分析引擎;最后,调用指标分析引擎,对业务指标进行统计分析,生成并展示业务指标统计表;同时,调用指标分析引擎,对业务指标和业务指标阈值进行比较分析后生成比较分析结果,并根据比较分析结果判断是否进行告警。
80.服务器在统计表需存储或预测数据量小于预设阈值的情况下,从业务数据库中获取业务数据,并根据业务数据生成统计表;而后,将统计表同步至分析数据库,并对同步至分析数据库的统计表进行数据提取,得到指标计算数据;接着,根据计算逻辑规则,对指标计算数据进行计算,得到业务指标;然后,即可将业务指标存入指标分析引擎;最后,调用指标分析引擎,对业务指标进行统计分析,生成并展示业务指标统计表;同时,调用指标分析
引擎,对业务指标和业务指标阈值进行比较分析后生成比较分析结果,并根据比较分析结果判断是否进行告警。以上仅为具体示例,在实际应用中根据用户需求而灵活设置,在此不进行限制。
81.应该理解的是,虽然图3-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
82.第二方面,如图9所示,提供了一种业务指标计算装置,所述装置包括过滤处理模块910、解析处理模块920和流式计算模块930。
83.其中,过滤处理模块910用于响应于业务数据的统计表无需存储或统计表的预测数据量大于预设阈值,从日志消息队列中获取原始日志,并对原始日志进行过滤处理后得到监控日志的流数据;其中,监控日志为用于记录业务数据的日志;解析处理模块920用于对监控日志的流数据进行解析处理后得到指标计算数据,并根据指标计算数据生成指标计算流数据;其中,指标计算数据为业务数据中计算业务指标所需的数据;流式计算模块930用于调用流式计算引擎,根据预先配置的计算逻辑规则,对指标计算流数据进行计算,得到业务指标。
84.在其中一个实施例中,上述装置还包括统计表生成模块、数据提取模块和数据计算模块。
85.其中,统计表生成模块用于响应于统计表需存储或预测数据量小于预设阈值,从业务数据库中获取业务数据,并根据业务数据生成统计表;数据提取模块用于将统计表同步至分析数据库,并对同步至分析数据库的统计表进行数据提取,得到指标计算数据;数据计算模块用于根据计算逻辑规则,对指标计算数据进行计算,得到业务指标。
86.在其中一个实施例中,上述装置还包括第一消息队列模块。
87.其中,第一消息队列模块用于将业务指标存入至指标结果消息队列;从指标结果消息队列中读取业务指标,并将业务指标写入指标分析引擎。
88.在其中一个实施例中,上述装置还包括第一调用模块。
89.其中,第一调用模块用于调用指标分析引擎,对业务指标进行统计分析,生成并展示业务指标统计表
90.在其中一个实施例中,第一调用模块还用于调用指标分析引擎,对业务指标和业务指标阈值进行比较分析,生成比较分析结果;第一调用模块还用于根据比较分析结果,判断是否进行告警。
91.在其中一个实施例中,解析处理模块920包括数据清洗单元。
92.其中,数据清洗单元用于根据指标计算数据生成待处理流数据;数据清洗单元用于对待处理流数据进行数据清洗,得到结构化日志数据;数据清洗单元用于根据结构化日志数据,生成指标计算流数据。
93.在其中一个实施例中,上述装置还包括规则读取模块。
94.其中,规则读取模块用于响应于计算逻辑规则的配置操作,读取计算逻辑规则。
95.关于业务指标计算装置的具体限定可以参见上文中对于业务指标计算方法的限定,在此不再赘述。上述业务指标计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
96.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储指标计算流数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务指标计算方法。
97.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
98.第三方面,提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行所述计算机程序时实现上述方法实施例中任一方法的步骤。
99.第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中任一方法的步骤。
100.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
101.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
102.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。