CN114840550A - 指标生成方法、装置、计算机设备、介质及程序产品 - Google Patents
指标生成方法、装置、计算机设备、介质及程序产品 Download PDFInfo
- Publication number
- CN114840550A CN114840550A CN202210570279.1A CN202210570279A CN114840550A CN 114840550 A CN114840550 A CN 114840550A CN 202210570279 A CN202210570279 A CN 202210570279A CN 114840550 A CN114840550 A CN 114840550A
- Authority
- CN
- China
- Prior art keywords
- index
- configuration data
- granularity
- mode
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种指标生成方法、装置、计算机设备、存储介质和计算机程序产品,其中方法包括:获取指标需求配置数据;根据所述指标需求配置数据,识别指标计算方式;若所述指标计算方式为SQL方式,则提取所述指标需求配置数据中携带的指标颗粒度,根据所述指标颗粒度,计算指标值;若所述指标计算方式为DSL方式,则根据所述指标需求配置数据解析指标依赖关系,根据所述指标依赖关系,计算指标值;基于指标身份标识、指标对象以及指标值,生成指标。整个过程中,基于指标需求配置数据采用SQL方式或DSL方式来计算指标值,可以实现指标的高效自动生成。
Description
技术领域
本申请涉及大数据技术领域,特别是涉及一种指标生成方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了大数据技术,在大数据技术中有海量的数据需要进行处理。为了实现数据高效处理,通过数据仓库的方式来实现数据的缓存、提取与处理是非常常见的一种方式。
在数据仓库中主要有指标和报表两种具体应用,两者的区别,在于报表数据更具关联性,指标则是各个不同业务系统数据的拼凑,面向特定需求的特殊报表,如数据大屏等。报表数据都是同一个批次一起跑出来,通常都是离线计算。而指标数据则是逐个跑出来,之间没有必然先后顺序。指标数据明显带有周期性或实时性,且更具粗颗粒度。
目前,业界对于指标开发,普遍的做法是定制化开发,来一个指标,开发展示一个指标。指标的计算和查询,散落在各个业务系统中。且普遍存在重复开发的现象。比如某大屏需要指标数据,在大屏业务系统中,逐个计算指标并查询。在业务某系统需要指标,在相应的接口服务中计算指标并查询。另外一个明显的缺点是,缺乏统一的生成管理,导致指标生成效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种高效的指标生成方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种指标生成方法。方法包括:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL(Structured Query Language,结构化查询语言)方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL(Domain Specific Language,领域特定语言)方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
在其中一个实施例中,获取指标需求配置数据包括:
获取业务数据;
根据业务数据,分析业务类型以及业务对象;
基于业务类型以及业务对象,生成指标需求配置数据。
在其中一个实施例中,若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值包括:
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度;
判断指标颗粒度为全局颗粒度或表征客户级颗粒度;
若为全局颗粒度,则执行指标逻辑计算指标值;
若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,根据计算范围以及指标计算逻辑,计算指标值。
在其中一个实施例中,若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值包括:
若指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;
根据指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;
计算被依赖指标的指标值;
针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据被依赖指标的指标值,调用DSL模块计算依赖指标的指标值。
在其中一个实施例中,提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标包括:
提取指标需求配置数据中携带的指标身份标识与指标对象;
获取日期;
根据指标身份标识、指标对象以及日期,生成键名;
以指标值作为键值,组合键名和键值生成指标键值对。
在其中一个实施例中,提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标之后,还包括:
接收指标查询请求;
提取指标查询请求中携带的指标需求标识;
基于指标需求标识与指标需求配置数据进行匹配;
若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;
根据提取的日期、指标身份标识以及指标对象,生成查询键名;
基于查询键名,查找对应的键值。
第二方面,本申请还提供了一种指标生成装置。装置包括:
配置数据获取模块,用于获取指标需求配置数据;
识别模块,用于根据指标需求配置数据,识别指标计算方式;
第一计算模块,用于当指标计算方式为SQL方式时,提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
第二计算模块,用于当指标计算方式为DSL方式时,解析指标依赖关系,根据指标依赖关系,计算指标值;
指标生成模块,用于提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
上述指标生成方法、装置、计算机设备、存储介质和计算机程序产品,获取指标需求配置数据;根据指标需求配置数据,识别指标计算方式;若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;基于指标身份标识、指标对象以及指标值,生成指标。整个过程中,基于指标需求配置数据采用SQL方式或DSL方式来计算指标值,可以实现指标的高效自动生成。
附图说明
图1为一个实施例中指标生成方法的应用环境图;
图2为一个实施例中指标生成方法的流程示意图;
图3为另一个实施例中指标生成方法的流程示意图;
图4为一个应用实例中指标生成方法的流程示意图;
图5为一个实施例中指标生成装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的指标生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102发送指标生成请求至服务器104,服务器104响应该指标生成请求,从指标生成请求中获取指标需求配置数据;根据指标需求配置数据,识别指标计算方式;若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。进一步的,服务器104可以将生成的指标反馈至终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种指标生成方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
S200:获取指标需求配置数据。
指标需求配置数据用于表征本次生成指标的需求,其可以包含多个维度的数据。具体来说,指标需求配置数据可以是基于本次指标生成任务对应生成的数据,又由于指标生成任务是针对业务需求来创建的,因此,可以通过分析业务数据来获取指标需求配置数据。
S400:根据指标需求配置数据,识别指标计算方式。
指标计算方式包括SQL方式和DSL方式,不同的计算方式计算指标值的过程不同。在这里可以采用定时触发的方式,针对每个指标都分别进行后续的指标计算。
进一步的,在识别指标计算方式之前,还可以先进行初始指标计算,初始指标计算是基于常规的内置规则进行的指标计算,即基于一些常规内置参数进行指标计算,以减小后续指标计算计算的数据处理量。在这里的内置参数是指计算机中预先存在一些常量参数,例如时间、日期等这些指标,如针对昨日日期的指标,其指标值可以通过计算机读取常规内置参数知晓,将该日期赋值给“昨日日期”指标。
S620:若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值。
SQL是结构化查询语言的简称,SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。此时,若基于指标需求配置数据识别出指标计算方式为SQL方式时,则按照SQL的指标逻辑进行计算。具体来说,若指标计算方式为SQL方式,则进行参数替换,执行SQL语句。该SQL语句可以是预先写入到指标需求配置数据中的,在识别到该SQL语句时,执行该语句,得到指标值。更进一步来说,在执行SQL时,可以考虑指标颗粒度,针对不同的指标颗粒度采取不同的计算方式。在这里指标颗粒度主要包括全局颗粒度和客户级颗粒度,全局颗粒度通常指标数据量较少,而客户级颗粒度指标数据量明显偏多。比如有100万个客户,那么每个客户的贷款余额指标都去算一遍,显然数据量太大,那么针对客户级颗粒度的指标我们需要做进一步的范围限缩之后,再去计算对应指标值,以提高计算效率。
S640:若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值。
DSL是领域特定语言,是以极其高效的方式描述特定领域的对象、规则和运行方式的语言。若判定指标计算方式为DSL方式,则通过分析指标需求配置数据,解析出指标依赖关系,再基于指标依赖关系计算指标值。指标依赖关系是指标之间的依赖关系,在实际应用中,某些指标的指标值需要依赖于其他指标的指标值来计算,这该依赖指标和被依赖指标之间的依赖关系即为指标依赖关系,例如指标id_4的指标值计算需依赖指标id_1和指标id_3的指标值,即指标id_4与指标id_1和指标id_3之间存在依赖关系。具体可以采用表达式来体现指标之间的依赖关系。可以理解的是,由于依赖指标是需要基于被依赖指标才能得到对应的指标值,因此,需要先计算被依赖指标的指标值,再基于依赖关系,计算依赖指标的指标值。
S800:提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
指标身份标识是用于区分指标身份的标识,例如指标ID等。指标对象分全局标识还是客户级标识,如全局的公司级贷款余额,或者客户甲的贷款余额。从指标需求配置数据中提取出指标身份标识与指标对象,以该指标身份标识和指标对象构成指标名,组合指标名和指标值,生成最终指标。
上述指标生成方法,获取指标需求配置数据;根据指标需求配置数据,识别指标计算方式;若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;基于指标身份标识、指标对象以及指标值,生成指标。整个过程中,基于指标需求配置数据采用SQL方式或DSL方式来计算指标值,可以实现指标的高效自动生成。
如图3所示,在其中一个实施例中,S200包括:
S220:获取业务数据;
S240:根据业务数据,分析业务类型以及业务对象;
S260:基于业务类型以及业务对象,生成指标需求配置数据。
指标需求配置数据具体包括:
1、指标ID:即指标的唯一标识,通常用英文单词表示,用归属业务类别+指标名拼接而来;
2、指标名:指标名称;
3、颗粒度:即全局还是客户级标记;
4、业务类别:即指标归属的业务类别,如财务指标、账务指标、授信指标等;
5、计算方式:分原子、衍生和复合,即SQL还是DSL;
6、指标对象:分全局标识还是客户级标识,如全局的公司级贷款余额,或客户XXX的贷款余额;
7、计算逻辑:如原子或衍生指标,则填写对应的SQL语句;如为复合指标,则填写表达式,表达式含有原子或衍生指标或常量,如${id_1_1}+${id_3},其中id_1_1和id_3为存在的原子指标ID。计算逻辑中可包含参数;
8、计算范围:如为客户级,则取出客户级的计算范围,为SQL语句。比如新授信客户,则可填select distinct cert_id from table_a where is_new=true;
9、计算频次:即需求查询频次。比如每半个小时,则相应的计算频次为半小时计算一次。
10、参数:即执行计算逻辑时需替换的参数,如客户XXX的贷款余额,则客户ID即为参数。参数分内置参数和传入参数。内置参数,如今日、昨日等,如客户ID号cert_id等,这些常量参数。
11、计算顺序:按展示的先后顺序配置。
在实际应用中,指标需求配置数据具体用于表征实际业务指标计算需求的抽象数据。因此可以通过分析业务数据,识别业务类型以及业务对象,基于业务类型以及业务对象,生成指标需求配置数据。在实际应用中,可以参考上述指标计算需求配置所需包含的数据类型,生成对应的指标计算需求配置模板,分析业务数据,基于业务类型以及业务对象,将关联的数据对应填写至指标计算需求配置模板中,即生成指标需求配置数据。
在其中一个实施例中,若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值包括:
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度;判断指标颗粒度为全局颗粒度或表征客户级颗粒度;若为全局颗粒度,则执行指标逻辑计算指标值;若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,根据计算范围以及指标计算逻辑,计算指标值。
客户级颗粒度对应的计算范围可以从指标需求配置数据中提取得到,其具体为计算范围的SQL语句。具体来说,若指标计算方式SQL方式,则需要判断为指标为全局颗粒度还是为客户级颗粒度,若为全局指标粒度,则直接执行指标逻辑计算指标值,这里的指标逻辑是指SQL语句表征的指标逻辑,该SQL语句可以从指标需求配置数据中读取得到。
如上已述的,客户级颗粒度的指标数据量明显较多,若每个指标均分别计算,其数据处理量太大,并且也没有必要,此时,应该去关联计算范围,只计算指标需求里关心的客户级指标即可,以缩小所需计算的数据量,在一定程度上提升效率。具体来说,若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,该计算范围具体可以是计算范围语句,计算范围语句具体可以从指标需求配置数据中读取得到,该计算范围语句同样为SQL语句,执行该计算范围语句,实现在指定范围内的指标逻辑计算,缩小计算范围和数据量。在实际应用中,若指标为客户级颗粒度,则将计算范围与指标逻辑进行关联查询。举个例子,计算范围语句为B,指标逻辑结果为A,则采用select A.*from A left semi join B on B.cert_id=A.cert_id,实现指定计算范围内的指标逻辑计算,缩小计算范围和数据量,更精准。
在其中一个实施例中,若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值包括:
若指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;根据指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;计算被依赖指标的指标值;针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据被依赖指标的指标值,调用DSL模块计算依赖指标的指标值。
若计算方式为DSL方式,这需要首先解析出指标之间的依赖关系,根据指标依赖关系来完成对依赖指标的指标值计算。具体来说,若计算方式为DSL方式,则调用DSL模块解析指标依赖关系,这里的指标依赖关系式是指依赖指标和被依赖指标之间的关系,例如指标1是依赖指标3和指标4的,即指标1的指标值计算,需要在指标3的指标值以及指标4的值得到之后才能进行算;由于需要计算的指标有很多,这些不同指标之间就形成了多个依赖关系,针对每个(单个)依赖关系,分别判断被依赖指标的指标值是否已经计算完成,若已经计算完成,则调用DSL模块计算依赖指标的指标值,若被依赖指标的指标值未计算完成,则等待下一次循环计算,直至最终计算得到所有指标的指标值。被依赖的指标的计算采用其对应的指标值可以基于该被依赖指标的指标逻辑计算得到。一般来说指标逻辑是采用SQL语句方式表征,执行该SQL语句,得到该被依赖指标的指标值。
如图3所示,在其中一个实施例中,S800包括:
S820:提取指标需求配置数据中携带的指标身份标识与指标对象;
S840:获取日期;
S860:根据指标身份标识、指标对象以及日期,生成键名;
S880:以指标值作为键值,组合键名和键值生成指标键值对。
指标身份标识是用于区分指标身份的标识,其具体可以为指标ID,指标对象是指本次指标表征的对象,例如客户甲的贷款余额。日期是指本次指标生成对应的日期,由于在指标后期使用(调用)中有时效性特征,即越久远的指标使用的越少,越近的指标使用的越频繁。比如数据大屏,需要的是实时的数据或最近几天的数据,随着天数的推移一个月前或更久的数据几乎用不到,因此指标生成的时候与生成日期关联上。采用日期+指标身份标识+指标对象的方式生成键名,以指标值作为键值,组成键名和键值生成指标。进一步的,可以将生成的指标存储,以便后续调用。
在其中一个实施例中,提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标之后,还包括:
接收指标查询请求;提取指标查询请求中携带的指标需求标识;基于指标需求标识与指标需求配置数据进行匹配;若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;根据提取的日期、指标身份标识以及指标对象,生成查询键名;基于查询键名,查找对应的键值。
指标在生成之后可以采用键值对的方式存储在数据库中,如上述的键值对中键名是采用日期+指标身份标识+指标对象的方式生成,键值为指标值,服务器在接收到指标查询请求时,提取查询请求中携带的指标需求标识,该指标需求标识是用于确定对应的指标需求配置数据,在匹配成功后,得到匹配成功的指标需求配置数据,从匹配成功的指标需求配置数据中提取日期、指标身份以及指标对象,与生成指标类似的方式,采用日期+指标身份标识+指标对象的方式生成查询键名,基于查询键名在数据库中查找对应的键值。
进一步的,服务器在接收指标查询请求之前,还需对发送请求的对象进行鉴权处理,若鉴权通过,则接收指标查询请求,若未通过,则退出。更具体来说,服务器按对外接口地址和鉴权信息列表,逐个提供接口路由至业务方(请求方),业务方发送指标查询请求至服务器,服务器取出http请求的头消息中的鉴权码,与接口路由对应的鉴权码做对比,若对比一致,则接收指标查询请求;若对比不一致,则提示鉴权失败退出。
为详细说明本申请指标生成方法的技术方案,下面采用具体应用实例展开说明。具体应用实例的场景如下:某个时刻,用户要求每半个小时在数据大屏中看到当前的实时授信额、实时贷款人数、实时贷款余额、实时户均余额。显然,这个指标为全局指标。按照公司内部职能划分,大数据侧提供实时余额的接口,供数据大屏展示用。整个方案包括以下阶段,具体可以参见图4:
1、获取指标需求配置数据。
配置实时贷款余额指标需求,关键配置信息如下表所示。
表1为贷款余额指标的指标需求配置数据
2、服务器读取上述指标需求配置数据,来生成指标。其具体包括以下步骤:
2.1、创建一个定时器,每半个小时触发一次计算;
2.2、取出所有待计算的指标列表,开始第一轮计算,按照计算顺序,依次计算idx_4、idx_3、idx_2、idx_1;idx_4为DSL计算方式,调用DSL模块解析出指标依赖idx_3、idx_2,两个依赖指标均未计算好,跳过,等待下次循环再计算;idx_3、idx_2、idx_1的计算方式为SQL,无参数,直接执行SQL语句,得到值val_3、val_2、val_1,分别用键名20220330_idx_3_global、20220330_idx_2_global、20220330_idx_1_global存储上述值,并标识idx_3、idx_2、idx_1都已计算好;
2.3、判断第一轮循环存在未计算好的指标,开始第二轮计算;
Idx_4为DSL计算方式,调用DSL模块解析出指标依赖idx_3、idx_2,两个依赖指标均已计算好,执行round(${idx_3}/${idx_2},2)得到值val_4,用键名20220330_idx_4_global存储上述值,标识idx_4已计算好;
2.4、如上完成所有指标的计算。
3、数据大屏业务方,调用如上地址,并在请求头中加入鉴权码,查询出指标数据。
3.1、鉴权码判断:如传入的鉴权码是jqm001,跟配置的鉴权码jqm005对不上,返回。如传入的鉴权码是jqm005,鉴权通过,进入下一步。
3.2、入参判断:如传入的指标需求标识idx_ids为bigdata_screen001,找不到对应的指标列表,返回;如传入的指标需求标识idx_ids为bigdata_screen005,找到对应的指标列表idx_1、idx_2、idx_3、idx_4,进入下一步。
4、根据查找到的指标列表,逐一查询并封装返回。
组装出键名,分别得到键名20220330_idx_4_global、20220330_idx_3_global、20220330_idx_2_global、20220330_idx_1_global。按键名查询,查询后返回。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的指标生成方法的指标生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个指标生成装置实施例中的具体限定可以参见上文中对于指标生成方法的限定,在此不再赘述。
如图5所示,本申请还提供了一种指标生成装置。装置包括:
配置数据获取模块200,用于获取指标需求配置数据;
识别模块400,用于根据指标需求配置数据,识别指标计算方式;
第一计算模块620,用于当指标计算方式为SQL方式时,提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
第二计算模块640,用于当指标计算方式为DSL方式时,解析指标依赖关系,根据指标依赖关系,计算指标值;
指标生成模块800,用于提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
上述指标生成装置,获取指标需求配置数据;根据指标需求配置数据,识别指标计算方式;若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;基于指标身份标识、指标对象以及指标值,生成指标。整个过程中,基于指标需求配置数据采用SQL方式或DSL方式来计算指标值,可以实现指标的高效自动生成。
在其中一个实施例中,配置数据获取模块200还用于获取业务数据;根据业务数据,分析业务类型以及业务对象;基于业务类型以及业务对象,生成指标需求配置数据。
在其中一个实施例中,第一计算模块620还用于若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度;判断指标颗粒度为全局颗粒度或表征客户级颗粒度;若为全局颗粒度,则执行指标逻辑计算指标值;若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,根据计算范围以及指标计算逻辑,计算指标值。
在其中一个实施例中,第二计算模块640还用于若指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;根据指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;计算被依赖指标的指标值;针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据被依赖指标的指标值,调用DSL模块计算依赖指标的指标值。
在其中一个实施例中,指标生成模块800还用于提取指标需求配置数据中携带的指标身份标识与指标对象;获取日期;根据指标身份标识、指标对象以及日期,生成键名;以指标值作为键值,组合键名和键值生成指标键值对。
在其中一个实施例中,指标生成装置还包括查询反馈模块,用于接收指标查询请求;提取指标查询请求中携带的指标需求标识;基于指标需求标识与指标需求配置数据进行匹配;若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;根据提取的日期、指标身份标识以及指标对象,生成查询键名;基于查询键名,查找对应的键值。
上述指标生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储内置参数以及历史指标等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种指标生成方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取业务数据;根据业务数据,分析业务类型以及业务对象;基于业务类型以及业务对象,生成指标需求配置数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度;判断指标颗粒度为全局颗粒度或表征客户级颗粒度;若为全局颗粒度,则执行指标逻辑计算指标值;若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,根据计算范围以及指标计算逻辑,计算指标值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;根据指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;计算被依赖指标的指标值;针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据被依赖指标的指标值,调用DSL模块计算依赖指标的指标值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
提取指标需求配置数据中携带的指标身份标识与指标对象;获取日期;根据指标身份标识、指标对象以及日期,生成键名;以指标值作为键值,组合键名和键值生成指标键值对。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
接收指标查询请求;提取指标查询请求中携带的指标需求标识;基于指标需求标识与指标需求配置数据进行匹配;若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;根据提取的日期、指标身份标识以及指标对象,生成查询键名;基于查询键名,查找对应的键值。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取业务数据;根据业务数据,分析业务类型以及业务对象;基于业务类型以及业务对象,生成指标需求配置数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度;判断指标颗粒度为全局颗粒度或表征客户级颗粒度;若为全局颗粒度,则执行指标逻辑计算指标值;若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,根据计算范围以及指标计算逻辑,计算指标值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;根据指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;计算被依赖指标的指标值;针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据被依赖指标的指标值,调用DSL模块计算依赖指标的指标值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
提取指标需求配置数据中携带的指标身份标识与指标对象;获取日期;根据指标身份标识、指标对象以及日期,生成键名;以指标值作为键值,组合键名和键值生成指标键值对。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
接收指标查询请求;提取指标查询请求中携带的指标需求标识;基于指标需求标识与指标需求配置数据进行匹配;若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;根据提取的日期、指标身份标识以及指标对象,生成查询键名;基于查询键名,查找对应的键值。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取指标需求配置数据;
根据指标需求配置数据,识别指标计算方式;
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度,根据指标颗粒度,计算指标值;
若指标计算方式为DSL方式,则根据指标需求配置数据解析指标依赖关系,根据指标依赖关系,计算指标值;
提取指标需求配置数据中携带的指标身份标识与指标对象,基于指标身份标识、指标对象以及指标值,生成指标。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取业务数据;根据业务数据,分析业务类型以及业务对象;基于业务类型以及业务对象,生成指标需求配置数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若指标计算方式为SQL方式,则提取指标需求配置数据中携带的指标颗粒度;判断指标颗粒度为全局颗粒度或表征客户级颗粒度;若为全局颗粒度,则执行指标逻辑计算指标值;若为客户级颗粒度,则获取客户级颗粒度对应的计算范围,根据计算范围以及指标计算逻辑,计算指标值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;根据指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;计算被依赖指标的指标值;针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据被依赖指标的指标值,调用DSL模块计算依赖指标的指标值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
提取指标需求配置数据中携带的指标身份标识与指标对象;获取日期;根据指标身份标识、指标对象以及日期,生成键名;以指标值作为键值,组合键名和键值生成指标键值对。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
接收指标查询请求;提取指标查询请求中携带的指标需求标识;基于指标需求标识与指标需求配置数据进行匹配;若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;根据提取的日期、指标身份标识以及指标对象,生成查询键名;基于查询键名,查找对应的键值。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种指标生成方法,其特征在于,所述方法包括:
获取指标需求配置数据;
根据所述指标需求配置数据,识别指标计算方式;
若所述指标计算方式为SQL方式,则提取所述指标需求配置数据中携带的指标颗粒度,根据所述指标颗粒度,计算指标值;
若所述指标计算方式为DSL方式,则根据所述指标需求配置数据解析指标依赖关系,根据所述指标依赖关系,计算指标值;
提取所述指标需求配置数据中携带的指标身份标识与指标对象,基于所述指标身份标识、所述指标对象以及所述指标值,生成指标。
2.根据权利要求1所述的方法,其特征在于,所述获取指标需求配置数据包括:
获取业务数据;
根据所述业务数据,分析业务类型以及业务对象;
基于所述业务类型以及所述业务对象,生成指标需求配置数据。
3.根据权利要求1所述的方法,其特征在于,所述若所述指标计算方式为SQL方式,则提取所述指标需求配置数据中携带的指标颗粒度,根据所述指标颗粒度,计算指标值包括:
若所述指标计算方式为SQL方式,则提取所述指标需求配置数据中携带的指标颗粒度;
判断所述指标颗粒度为全局颗粒度或表征客户级颗粒度;
若为全局颗粒度,则执行指标逻辑计算指标值;
若为客户级颗粒度,则获取所述客户级颗粒度对应的计算范围,根据所述计算范围以及指标计算逻辑,计算指标值。
4.根据权利要求1所述的方法,其特征在于,所述若所述指标计算方式为DSL方式,则根据所述指标需求配置数据解析指标依赖关系,根据所述指标依赖关系,计算指标值包括:
若所述指标计算方式为DSL方式,则调用DSL模块解析指标依赖关系;
根据所述指标依赖关系,识别各依赖关系中依赖指标和被依赖指标;
计算所述被依赖指标的指标值;
针对单个依赖关系,若被依赖指标的指标值均已计算完成,则根据所述被依赖指标的指标值,调用所述DSL模块计算所述依赖指标的指标值。
5.根据权利要求1所述的方法,其特征在于,所述提取所述指标需求配置数据中携带的指标身份标识与指标对象,基于所述指标身份标识、所述指标对象以及所述指标值,生成指标包括:
提取所述指标需求配置数据中携带的指标身份标识与指标对象;
获取日期;
根据所述指标身份标识、所述指标对象以及所述日期,生成键名;
以所述指标值作为键值,组合所述键名和所述键值生成指标键值对。
6.根据权利要求5所述的方法,其特征在于,所述提取所述指标需求配置数据中携带的指标身份标识与指标对象,基于所述指标身份标识、所述指标对象以及所述指标值,生成指标之后,还包括:
接收指标查询请求;
提取所述指标查询请求中携带的指标需求标识;
基于所述指标需求标识与所述指标需求配置数据进行匹配;
若匹配成功,从匹配成功的指标需求配置数据中提取日期、指标身份标识以及指标对象;
根据提取的日期、指标身份标识以及指标对象,生成查询键名;
基于所述查询键名,查找对应的键值。
7.一种指标生成装置,其特征在于,所述装置包括:
配置数据获取模块,用于获取指标需求配置数据;
识别模块,用于根据所述指标需求配置数据,识别指标计算方式;
第一计算模块,用于当所述指标计算方式为SQL方式时,提取所述指标需求配置数据中携带的指标颗粒度,根据所述指标颗粒度,计算指标值;
第二计算模块,用于当所述指标计算方式为DSL方式时,解析指标依赖关系,根据所述指标依赖关系,计算指标值;
指标生成模块,用于提取所述指标需求配置数据中携带的指标身份标识与指标对象,基于所述指标身份标识、所述指标对象以及所述指标值,生成指标。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210570279.1A CN114840550A (zh) | 2022-05-24 | 2022-05-24 | 指标生成方法、装置、计算机设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210570279.1A CN114840550A (zh) | 2022-05-24 | 2022-05-24 | 指标生成方法、装置、计算机设备、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840550A true CN114840550A (zh) | 2022-08-02 |
Family
ID=82572369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210570279.1A Pending CN114840550A (zh) | 2022-05-24 | 2022-05-24 | 指标生成方法、装置、计算机设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840550A (zh) |
-
2022
- 2022-05-24 CN CN202210570279.1A patent/CN114840550A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
US9053231B2 (en) | Systems and methods for analyzing operations in a multi-tenant database system environment | |
KR102048653B1 (ko) | 외부 데이터 소스로부터의 데이터를 이용한 데이터베이스 쿼리 응답의 강화 기법 | |
CN111247550B (zh) | 用于区块链网络的计算机化交易管理模块 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN110780870B (zh) | 一种业务执行方法、装置、设备及存储介质 | |
CN112861496A (zh) | 报表生成显示方法、装置、计算机设备和可读存储介质 | |
CN114064690A (zh) | 数据处理方法及装置 | |
CN112579898A (zh) | 企业信息的管理方法、装置及服务器 | |
US11151088B2 (en) | Systems and methods for verifying performance of a modification request in a database system | |
CN107357557B (zh) | 一种信息更新方法及装置 | |
CN110334103A (zh) | 推荐服务的更新方法、提供装置、访问装置和推荐系统 | |
CN111522840B (zh) | 标签的配置方法、装置、设备及计算机可读存储介质 | |
CN112035676A (zh) | 用户操作行为知识图谱构建方法及装置 | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
CN115098738A (zh) | 业务数据的提取方法、装置、存储介质及电子设备 | |
CN114840550A (zh) | 指标生成方法、装置、计算机设备、介质及程序产品 | |
CN115481026A (zh) | 测试案例的生成方法、装置、计算机设备、存储介质 | |
CN106874327B (zh) | 一种针对业务数据的计数方法及装置 | |
CN115511644A (zh) | 用于目标保单的处理方法、电子设备和可读存储介质 | |
CN115017185A (zh) | 一种数据处理方法、装置及存储介质 | |
CN110851446B (zh) | 数据表的生成方法、装置、计算机设备及存储介质 | |
CN114168595A (zh) | 一种数据分析方法及装置 | |
CN111367634A (zh) | 信息处理方法、信息处理装置及终端设备 | |
CN109711809B (zh) | 商户属性设置方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |