CN113344442A - 指标数据计算方法、装置、计算机设备和存储介质 - Google Patents
指标数据计算方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113344442A CN113344442A CN202110741775.4A CN202110741775A CN113344442A CN 113344442 A CN113344442 A CN 113344442A CN 202110741775 A CN202110741775 A CN 202110741775A CN 113344442 A CN113344442 A CN 113344442A
- Authority
- CN
- China
- Prior art keywords
- data
- algorithm
- index
- calculation
- acquiring
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 177
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 285
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 28
- 238000007781 pre-processing Methods 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 13
- 230000001419 dependent effect Effects 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000002354 daily effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 208000025174 PANDAS Diseases 0.000 description 3
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 3
- 240000004718 Panda Species 0.000 description 3
- 235000016496 Panda oleosa Nutrition 0.000 description 3
- 230000003203 everyday effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010040844 Skin exfoliation Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000035618 desquamation Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及人工智能领域,尤其是一种指标数据计算方法、装置、计算机设备和存储介质。所述方法包括:指标数据计算方法,所述方法包括:接收指标计算任务;获取算法依赖树,根据所述算法依赖树确定所述指标计算任务所需的目标算法,以及所述目标算法对应的执行顺序;获取所述目标算法所需的全量数据;根据所述执行顺序依次读取对应的全量数据计算得到指标数据。采用本方法能够减少资源占用,此外,本申请还涉及区块链技术,算法依赖树、全量数据和指标数据可存储于区块链节点中。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种指标数据计算方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,在各行各业都存在通过计算机来统计指标数据的需要。以金融领域为例,这些指标数据,或是基于日收益率等数据实时计算,或是每日收盘获取到计算所需的原始数据后提前计算好存入数据库,通过读取计算结果数据的方式来使用。
传统地,在计算这些数据的时候,往往存在数据的重复获取,例如每计算一个指标数据的时候,都要去获取到对应的基础数据,这样在存在指标是相同的基础数据的时候,则需要对基础数据进行重复获取,导致需要耗费大量的计算资源,无法达到性能的要求。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少资源占用的指标数据计算方法、装置、计算机设备和存储介质。
一种指标数据计算方法,所述方法包括:
接收指标计算任务;
获取算法依赖树,根据所述算法依赖树确定所述指标计算任务所需的目标算法,以及所述目标算法对应的执行顺序;
获取所述目标算法所需的全量数据;
根据所述执行顺序依次读取对应的全量数据计算得到指标数据。
在其中一个实施例中,所述获取所述目标算法所需的全量数据之后,还包括:
对所获取的全量数据进行预处理;
所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据,包括:
根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;
将所述待处理数据输入至所述目标算法中以计算得到指标数据。
在其中一个实施例中,所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据,包括:
根据所述执行顺序获取当前目标算法,获取当前产品和当前计算周期;
根据所述当前目标算法、所述当前产品和当前计算周期从预先读取的全量数据中获取待处理数据;
根据所述待处理数据计算得到当前指标数据,并继续获取下一计算周期,若所有计算周期计算结束,则继续获取下一产品,若所有产品计算结束,则继续获取下一目标算法,直至所述目标算法均计算完成。
在其中一个实施例中,所述方法还包括:
获取交易日历,根据所述交易日历预先计算每个周期内的交易天数;
所述获取所述目标算法所需的全量数据,包括:
根据所述交易天数获取所述目标算法所需的全量数据;
所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据,包括:
根据所述交易天数以及所述目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
在其中一个实施例中,所述获取算法依赖树之前,还包括:
获取预先配置的各个算法的依赖规则,所述依赖规则包括依赖算法和被依赖算法;
读取所述依赖规则中的被依赖算法作为初始节点,并将所述依赖算法作为所述初始节点的扩展节点;
将算法相同的节点进行合并后得到算法依赖树。
一种指标数据计算装置,所述装置包括:
接收模块,用于接收指标计算任务;
算法调度模块,用于获取算法依赖树,根据所述算法依赖树确定所述指标计算任务所需的目标算法,以及所述目标算法对应的执行顺序;
数据读取模块,用于获取所述目标算法所需的全量数据;
指标计算模块,用于根据所述执行顺序依次读取对应的全量数据计算得到指标数据。
在其中一个实施例中,所述装置还包括:
数据处理模块,用于对所获取的全量数据进行预处理;
所述指标计算模块包括:
切片单元,用于根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;
计算单元,用于将所述待处理数据输入至所述目标算法中以计算得到指标数据。
在其中一个实施例中,所述装置还包括:
时间序列计算模块,用于获取交易日历,根据所述交易日历预先计算每个周期内的交易天数;
所述数据读取模块用于根据所述交易天数获取所述目标算法所需的全量数据;
所述指标计算模块用于根据所述交易天数以及所述目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意一个实施例中的方法的步骤。
一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的任意一个实施例中的方法的步骤。
上述指标数据计算方法、装置、计算机设备和存储介质,在确定了指标计算任务后,直接根据指标计算任务确定对应的目标算法,然后将目标算法所需的全量数据进行加载,这样在计算指标数据时,按照目标算法的执行数据从全量数据中获取对应的数据来计算得到指标数据,仅需要读取一次全量数据,不需要多次读取数据,减少了资源的占用,此外,由于存在算法依赖树,因此也不需要重复进行计算,进一步减少了资源的占用。
附图说明
图1为一个实施例中指标数据计算方法的应用场景图;
图2为一个实施例中指标数据计算方法的流程示意图;
图3为一个实施例中指标数据计算方法的模块示意图;
图4为一个实施例中指标数据计算装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的指标数据计算方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中终端102向服务器104发送指标计算任务,服务器104接收指标计算任务通过算法调度以获取算法依赖树,根据算法依赖树确定指标计算任务所需的目标算法,以及目标算法对应的执行顺序,并获取目标算法所需的全量数据,这样根据执行顺序依次读取对应的全量数据计算得到指标数据,这样在确定了指标计算任务后,直接根据指标计算任务确定对应的目标算法,然后将目标算法所需的全量数据进行加载,这样在计算指标数据时,按照目标算法的执行数据从全量数据中获取对应的数据来计算得到指标数据,仅需要读取一次全量数据,不需要多次读取数据,减少了资源的占用,此外,由于存在算法依赖树,因此也不需要重复进行计算,进一步减少了资源的占用。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种指标数据计算方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202:接收指标计算任务。
具体地,指标即需要计算的数据,指标计算任务是需要计算指标的任务。其中,该指标计算任务中可以包括至少一个待计算的指标。优选地,该指标计算任务可以包括至少两个待计算的指标。且该至少两个待计算的指标所需要的数据存在重叠和/或该至少两个待计算的指标之间存在直接或间接的依赖关系,其中直接依赖关系是指其中一个指标直接依赖于另外一个指标的计算结果。间接依赖关系是指其中一个指标的计算直接依赖于第三指标,而第三指标的计算直接依赖于另外一个指标,其中第三指标可以包括至少一个,这样两个指标之间是间接依赖关系。
其中该指标计算任务可以是通过实时计算任务或者是通过定时计算任务进行触发。
以实时计算任务为例,其可以是通过http服务来构建,其中服务器对外提供指标计算服务,终端可以在预先生成的页面上输入或点击对应的内容,以调用http服务,从而实现对实时计算任务的触发,即将服务器发送http请求。
以定时任务为例,其可以是根据需要确定所需要的计算的指标或者是计算所有的指标,其输入至服务器的是相应的所需执行计算的配置。例如,对于每日定时任务,是每天当日计算所需的数据进数据库后,计算当天的所有指标算法、所有投资产品、所有周期的算法结果。
S204:获取算法依赖树,根据算法依赖树确定指标计算任务所需的目标算法,以及目标算法对应的执行顺序。
具体地,算法依赖树是根据算法依赖关系预先生成的对算法执行顺序进行排序的表示,其中每个指标对应一个算法,其中可选地,在服务开始时,服务器先将该算法依赖树读取至内存中,预先确定被依赖的算法先进行计算。
其中,若是本次所需要计算的指标是部分指标,则根据算法依赖树获取到部分指标所对应的目标算法,然后遍历该算法依赖树以获取到对应的目标算法的执行顺序,可选地,服务器先确定指标对应的初始算法,然后根据算法依赖树来获取其他的算法,直至所获取的算法不再依赖其他算法,则获取到所确定的所有的算法作为目标算法,并根据依赖关系确定执行顺序。
若是本次所需计算的是所有的指标,则直接获取到算法依赖树,并获取算法依赖树中所有的算法作为目标算法,然后根据目标算法的依赖关系确定执行顺序。
S206:获取目标算法所需的全量数据。
具体地,全量数据是指目标算法执行所需要的全量数据。在其中一个实施例中,服务器根据目标算法确定所需要的数据,并全量从数据库加载至缓存中。其中若是本次所需计算的是所有的指标或者本次所需要计算的指标是部分指标,服务器均可以将对应周期内的全量的数据加载至缓存中,后续再根据算法来进行过滤处理,这样使得数据仅读取一次即可,后续算法的计算进需要从缓存中读取,提高处理效率。
其中,全量数据可以是服务器综合各个算法所需要的数据,具体的包括获取所需要的数据对应的产品,并计算该产品对应的数据最大的周期以得到全量数据的范围。也就是说全量数据最后表示为产品以及该产品对应的最大周期。
S208:根据执行顺序依次读取对应的全量数据计算得到指标数据。
具体地,服务器将所需要的全量数据读取至缓存中,这样服务器按照算法的执行顺序依次从缓存中提取对应的数据,然后进行计算得到指标数据。
其中可选地,在缓存中存储的数据可以是DataFrame数据,这样通过行列索引的方式进行数据的切片以读取到对应的数据进行计算,速度更快。
在其中一个实施例中,所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据之后,包括:获取所计算的各个指标数据,并将所述指标数据返回或者存储至数据库以便于调用。其中在获取各个指标数据后,可以对指标数据的格式进行转换,例如转换为json格式,以通过http服务返回。
具体地,在实际应用中,其中服务器中可以采用串行处理的方式或者是划分为多个线程进行处理,具体地,结合图3所示,算法调度模块200开启一个接收线程用于接收指标计算任务,然后开启算法调度线程进行算法的调度,并通过数据加载模块开启数据加载线程从数据库中获取数据,并将所需要的数据全量加载进缓存,其中,数据的获取格式为pandas DataFrame,然后通过数据处理模块开启预处理线程对全量加载的去拿量数据进行各种预处理后以存入缓存中,其中,预处理是预处理成为另一种数据,但是处理完后的数据格式仍为pandas DataFrame。需要说明的是所有获取到或预处理后的数据,以及被依赖的指标算法结果,都缓存到该缓存模块中,缓存生命周期为本次计算任务,后续计算从缓存中取全量数据的局部数据进行切片,以避免重复读数据和重复计算,这样算法调度模块200在算法调度线程中调度具体的算法从缓存中获取到预处理后的数据以执行计算。上述指标数据计算方法,在确定了指标计算任务后,直接根据指标计算任务确定对应的目标算法,然后将目标算法所需的全量数据进行加载,这样在计算指标数据时,按照目标算法的执行数据从全量数据中获取对应的数据来计算得到指标数据,仅需要读取一次全量数据,不需要多次读取数据,减少了资源的占用,此外,由于存在算法依赖树,因此也不需要重复进行计算,进一步减少了资源的占用。
在其中一个实施例中,获取目标算法所需的全量数据之后,还包括:对所获取的全量数据进行预处理;根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;将待处理数据输入至目标算法中以计算得到指标数据。
具体地,预处理是指对原始的全量数据的处理,其中包括对空值的填充。其中算法需要用到数据加载模块加载的产品以及其基准的原始日收益率数据,因此预处理可是包括:停牌等原因导致的空值,填充为0。按复利计算累计收益率,避免同时计算多天和多周期的计算量大,对原始数据空值填充0后再加1再累乘。基准向投资产品对齐的收益率数据(某一天,投资产品有日收益率而基准没有,基准该天日收益率填充0。某一天,基准有而投资产品没有日收益率,基准该日收益率不计,累计到下一个投资产品有收益率的天)。
具体地,每个算法,会有配置所需的DataLoader获取原始数据的函数,以及DataProcessor获取预处理数据的函数,并且会在所有算法执行之前,按先加载数据、后预处理数据(预处理函数也有配置先后数据,比如上面提到的用0填充预处理操作,先于加1累乘操作)的顺序执行,并将结果记录到内存中(本次计算执行完成后即可释放内存)。这样的话,各个算法都能共享这些原始数据和预处理数据,避免重复读数据库和重复计算。
行索引一般是指日期,列索引是产品的编号,对应的值为具体的数据的值,例如产品某日的日收益率。
其中,过滤是针对具体的算法来说的,比如一次计算任务,需要计算1个股票上一个交易日的近1年、近2年、成立以来共3个周期维度的累计收益率和波动率,这涉及两个算法。服务器先从数据库中取出原始的成立以来的每个交易日的日收益率数据,缓存起来,后面再计算这3个周期维度的2个算法,不必从数据库中取数据,从内存中取更快。近1年只需取内存中最近一年的数据,近2年只需取最近两年,这就是过滤全局(最大的周期,这里例子中是成立以来)数据后的局部数据,过滤操作可以让计算量少一些,尤其是在计算滚动多天的量、同时计算多个投资产品的量比较大的情况下。除了原始数据的过滤,预处理数据也是会被过滤的。过滤的方式一般是用pandas DataFrame的行列索引,进行切片,以提高数据读取速度。
上述实施例中,在获取到全量数据后,对数据进行预处理并存储,这样在算法执行的时候,仅需要根据行列索引获取到算法所需要的数据进行计算,避免多次重复对数据进行预处理,减少了资源的占用。
在其中一个实施例中,根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据执行顺序获取当前目标算法,获取当前产品和当前计算周期根据当前目标算法、当前产品和当前计算周期从预先读取的全量数据中获取待处理数据;根据待处理数据计算得到当前指标数据,并继续获取下一计算周期,若所有计算周期计算结束,则继续获取下一产品,若所有产品计算结束,则继续获取下一目标算法,直至目标算法均计算完成。
具体地,由于涉及到多个指标的计算,且不同的产品的不同的周期的指标的计算,因此在计算的过程中,服务器进行迭代计算,具体的迭代方式可以包括:
for算法1,算法2,……,算法m
for投资产品1,投资产品2,……,投资产品n(
for计算周期1,计算周期2,……,计算周期k
run(start_date,end_date,period,instrument_id)//各具体算法。
其中,m表示算法的数量,n表示产品的数量,k表示周期的数量,以m=n=k为例进行说明,其执行顺序为:算法1投资产品1计算周期1,算法1投资产品1计算周期2,算法1投资产品计算周期1,算法1投资产品2计算周期2,算法2投资产品1计算周期1,算法2投资产品1计算周期2,算法2投资产品2计算周期1以及算法2投资产品2计算周期2。
其中run表示具体的算法的执行函数,其所需要4个参数,start_date表示计算对应的计算结果起始日期,end_date表示计算对应的计算结果结束日期,period表示计算对应的周期维度,instrument_id表示产品编号。其中run(start_date,end_date,period,instrument_id)表示计算对应的计算结果起(start_date)止(end_date)日期内每一天,在周期维度(period)下的某个投资产品(instrument_id)的指标,其中在计算的时,服务器会将这4个参数发送至数据缓存模块,以获取到所需要的数据,所获取的数据是调度模块调度个算法之前处理好并缓存至数据缓存模块中的全局数据或预处理后的数据,进行过滤后的局部数据。
上述实施例中,在执行具体的算法的时候,仅需要考虑到产品和计算周期,这样根据产品和计算周期来获取到所需要的待处理数据,且从内存中获取,提高了获取的速度。
在其中一个实施例中,上述指标数据计算方法还包括:获取交易日历,根据交易日历预先计算每个周期内的交易天数;获取目标算法所需的全量数据,包括:根据交易天数获取目标算法所需的全量数据;根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据交易天数以及目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
具体地,结合图3所示,该服务器还包括交易日历模块,该模块会根据算法调度模块200发送的4个参数start_date、end_date、period和instrument_id进行相应的时间序列数据处理,比如滑动窗口计算多天时每个滑动窗口周期的第一天在计算数据中的位置。因此,在具体算法的执行函数内,不需要考虑计算结果的起止日期、计算周期、投资产品,大大简化了代码逻辑。
为了方便理解,举例进行说明,其中以产品的日收益率数据为例,内存中的产品日收益率pandas DataFrame数据的行索引是日期,列索引是投资产品编号,值是对应的某个投资产品某日的日收益率。在处理各个周期时候,需要定位某一个计算结果值(某个投资产品、某一天的各种指标算法),对应的周期开始数据位置(在DataFrame中的某行、某列),这就需要交易日历模块中的相应封装好的方法来定位(结束位置就是其本身位置,不需要定位)。此外,以年化收益率等算法为例,其需要算出某一个周期内上交所交易日历的天数,如果实时计算,会比较耗时,在交易日历模块中,服务启动时候,和每当交易日历数据库表有更新时候,会将交易日历加载进内存,并计算出每一天、每个不同周期区间内的交易日历天数,记录到内存中,后面使用的时候,可以瞬间获取到,避免重复读数据库和计算。
在其中一个实施例中,获取算法依赖树之前,还包括:获取预先配置的各个算法的依赖规则,依赖规则包括依赖算法和被依赖算法;读取依赖规则中的被依赖算法作为初始节点,并将依赖算法作为初始节点的扩展节点;将算法相同的节点进行合并后得到算法依赖树。
具体地,算法依赖树是通过配置生成的,比如有2个依赖规则,算法A依赖算法B的结果,算法B依赖算法C和D结果,如果某一次计算任务只需计算算法A,则先通过两个规则找到B、C、D三个算法都要参与计算,并且C、D先执行,后执行B、最后执行A。
其中在生成算法依赖树时,先读取依赖规则中的被依赖算法作为初始节点,例如将算法B、算法C和算法D作为初始节点,然后将算法A作为算法B的扩展节点,将算法B作为算法C的扩展节点,将算法D作为算法B的扩展节点,最后再合并相同名称的节点,即可以得到算法依赖树。
优选地,当存在新增算法的时候,服务器可以对新增算法进行配置,并在配置完成后刷新算法依赖树。比如新增算法E,该算法依赖算法B、D的结果,增加E依赖于B、D的配置即可。
需要强调的是,为进一步保证上述全量数据、算法依赖树以及指标数据的私密和安全性,上述全量数据、算法依赖树以及指标数据还可以存储于一区块链的节点中。
具体地,结合图3所示,在其中一个实施例中,服务器被划分为多个模块,其中任务接收模块100用于接收指标计算任务,并将触发计算任务的信息发送给算法调度模块200,算法调度模块200获取到算法依赖树,并根据算法依赖树来调度各个具体算法的执行,算法调度模块200还向数据读取模块300发送构造全量数据的请求,从而数据读取模块300从数据库中读取全量数据,并缓存至数据缓存模块,这样数据处理模块从数据缓存模块读取到数据并进行预处理后存储至数据缓存模块,进而在算法执行时,具体算法从缓存读取数据进行计算得到指标数据。
其中需要说明的一点是任务接收模块100是通过http服务所构建的,其是多进程的,即在同一个时间点可以处理至少一个用户请求,定时计算任务并行,也只是在最外层简单地并行执行计算任务,可以让计算量大、读写数据库多的任务并行处理更快。
此外,该服务器还包括交易日时间序列处理模块,在预处理和具体算法计算中,需要各种时间序列相关的处理,都由该交易日时间序列处理模块提供支持。
算法调度模块200可以调度具体算法模块中的各种算法,该具体算法模块可以按照业务需求以增加、删除或者是修改各种具体算法。
缓存模块用于缓存所有获取到或预处理后的数据,以及被依赖的指标算法结果,缓存生命周期为本次计算任务,后续计算从缓存中取全量数据的局部数据进行切片,以避免重复读数据和重复计算。
数据处理模块用于将数据读取模块300获取到的数据或数据处理模块预处理过的数据,预处理成另一种数据,处理完后的数据格式仍为pandas DataFrame。
数据读取模块300从数据库中获取数据,获取数据格式为pandas DataFrame。
算法调度模块200用于任务参数处理、算法依赖关系处理、算法结果返回或写数据库处理等。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种指标数据计算装置,包括:接收模块100、算法调度模块200、数据读取模块300和指标计算模块400,其中:
接收模块100,用于接收指标计算任务;
算法调度模块200,用于获取算法依赖树,根据算法依赖树确定指标计算任务所需的目标算法,以及目标算法对应的执行顺序;
数据读取模块300,用于获取目标算法所需的全量数据;
指标计算模块400,用于根据执行顺序依次读取对应的全量数据计算得到指标数据。
在其中一个实施例中,上述指标数据计算装置还包括:
数据处理模块,用于对所获取的全量数据进行预处理;
指标计算模块400包括:
切片单元,用于根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;
计算单元,用于将待处理数据输入至目标算法中以计算得到指标数据。
在其中一个实施例中,上述指标计算模块400包括:
参数获取单元,用于根据执行顺序获取当前目标算法,获取当前产品和当前计算周期;
数据读取单元,用于根据当前目标算法、当前产品和当前计算周期从预先读取的全量数据中获取待处理数据;
循环单元,用于根据待处理数据计算得到当前指标数据,并继续获取下一计算周期,若所有计算周期计算结束,则继续获取下一产品,若所有产品计算结束,则继续获取下一目标算法,直至目标算法均计算完成。
在其中一个实施例中,上述指标数据计算装置还包括:
时间序列计算模块,用于获取交易日历,根据交易日历预先计算每个周期内的交易天数;
数据读取模块300用于根据交易天数获取目标算法所需的全量数据;
指标计算模块400用于根据交易天数以及目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
在其中一个实施例中,上述指标数据计算装置还包括:
依赖规则获取模块,用于获取预先配置的各个算法的依赖规则,依赖规则包括依赖算法和被依赖算法;
节点生成模块,用于读取依赖规则中的被依赖算法作为初始节点,并将依赖算法作为初始节点的扩展节点;
算法依赖树获取模块,用于将算法相同的节点进行合并后得到算法依赖树。
关于指标数据计算装置的具体限定可以参见上文中对于指标数据计算方法的限定,在此不再赘述。上述指标数据计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储全量数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种指标数据计算方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收指标计算任务;获取算法依赖树,根据算法依赖树确定指标计算任务所需的目标算法,以及目标算法对应的执行顺序;获取目标算法所需的全量数据;根据执行顺序依次读取对应的全量数据计算得到指标数据。
在一个实施例中,处理器执行计算机程序时所实现的获取目标算法所需的全量数据之后,还包括:对所获取的全量数据进行预处理;处理器执行计算机程序时所实现的根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;将待处理数据输入至目标算法中以计算得到指标数据。
在一个实施例中,处理器执行计算机程序时所实现的根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据执行顺序获取当前目标算法,获取当前产品和当前计算周期;根据当前目标算法、当前产品和当前计算周期从预先读取的全量数据中获取待处理数据;根据待处理数据计算得到当前指标数据,并继续获取下一计算周期,若所有计算周期计算结束,则继续获取下一产品,若所有产品计算结束,则继续获取下一目标算法,直至目标算法均计算完成。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取交易日历,根据交易日历预先计算每个周期内的交易天数;处理器执行计算机程序时所实现的获取目标算法所需的全量数据,包括:根据交易天数获取目标算法所需的全量数据;处理器执行计算机程序时所实现的根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据交易天数以及目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
在一个实施例中,处理器执行计算机程序时所实现的获取算法依赖树之前,还包括:,依赖规则包括依赖算法和被依赖算法;读取依赖规则中的被依赖算法作为初始节点,并将依赖算法作为初始节点的扩展节点;将算法相同的节点进行合并后得到算法依赖树。
在一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收指标计算任务;获取算法依赖树,根据算法依赖树确定指标计算任务所需的目标算法,以及目标算法对应的执行顺序;获取目标算法所需的全量数据;根据执行顺序依次读取对应的全量数据计算得到指标数据。
在一个实施例中,计算机程序被处理器执行时所实现的获取目标算法所需的全量数据之后,还包括:对所获取的全量数据进行预处理;计算机程序被处理器执行时所实现的根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;将待处理数据输入至目标算法中以计算得到指标数据。
在一个实施例中,计算机程序被处理器执行时所实现的根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据执行顺序获取当前目标算法,获取当前产品和当前计算周期;根据当前目标算法、当前产品和当前计算周期从预先读取的全量数据中获取待处理数据;根据待处理数据计算得到当前指标数据,并继续获取下一计算周期,若所有计算周期计算结束,则继续获取下一产品,若所有产品计算结束,则继续获取下一目标算法,直至目标算法均计算完成。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取交易日历,根据交易日历预先计算每个周期内的交易天数;计算机程序被处理器执行时所实现的获取目标算法所需的全量数据,包括:根据交易天数获取目标算法所需的全量数据;计算机程序被处理器执行时所实现的根据执行顺序依次读取对应的全量数据计算得到指标数据,包括:根据交易天数以及目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
在一个实施例中,计算机程序被处理器执行时所实现的获取算法依赖树之前,还包括:获取预先配置的各个算法的依赖规则,依赖规则包括依赖算法和被依赖算法;读取依赖规则中的被依赖算法作为初始节点,并将依赖算法作为初始节点的扩展节点;将算法相同的节点进行合并后得到算法依赖树。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种指标数据计算方法,所述方法包括:
接收指标计算任务;
获取算法依赖树,根据所述算法依赖树确定所述指标计算任务所需的目标算法,以及所述目标算法对应的执行顺序;
获取所述目标算法所需的全量数据;
根据所述执行顺序依次读取对应的全量数据计算得到指标数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标算法所需的全量数据之后,还包括:
对所获取的全量数据进行预处理;
所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据,包括:
根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;
将所述待处理数据输入至所述目标算法中以计算得到指标数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据,包括:
根据所述执行顺序获取当前目标算法,获取当前产品和当前计算周期;
根据所述当前目标算法、所述当前产品和当前计算周期从预先读取的全量数据中获取待处理数据;
根据所述待处理数据计算得到当前指标数据,并继续获取下一计算周期,若所有计算周期计算结束,则继续获取下一产品,若所有产品计算结束,则继续获取下一目标算法,直至所述目标算法均计算完成。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:
获取交易日历,根据所述交易日历预先计算每个周期内的交易天数;
所述获取所述目标算法所需的全量数据,包括:
根据所述交易天数获取所述目标算法所需的全量数据;
所述根据所述执行顺序依次读取对应的全量数据计算得到指标数据,包括:
根据所述交易天数以及所述目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
5.根据权利要求1至3任意一项所述的方法,其特征在于,所述获取算法依赖树之前,还包括:
获取预先配置的各个算法的依赖规则,所述依赖规则包括依赖算法和被依赖算法;
读取所述依赖规则中的被依赖算法作为初始节点,并将所述依赖算法作为所述初始节点的扩展节点;
将算法相同的节点进行合并后得到算法依赖树。
6.一种指标数据计算装置,其特征在于,所述装置包括:
接收模块,用于接收指标计算任务;
算法调度模块,用于获取算法依赖树,根据所述算法依赖树确定所述指标计算任务所需的目标算法,以及所述目标算法对应的执行顺序;
数据读取模块,用于获取所述目标算法所需的全量数据;
指标计算模块,用于根据所述执行顺序依次读取对应的全量数据计算得到指标数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
数据处理模块,用于对所获取的全量数据进行预处理;
所述指标计算模块包括:
切片单元,用于根据行列索引对预处理后的全量数据进行过滤处理,以获取所要执行的目标算法对应的待处理数据;
计算单元,用于将所述待处理数据输入至所述目标算法中以计算得到指标数据。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
时间序列计算模块,用于获取交易日历,根据所述交易日历预先计算每个周期内的交易天数;
所述数据读取模块用于根据所述交易天数获取所述目标算法所需的全量数据;
所述指标计算模块用于根据所述交易天数以及所述目标算法的执行顺序依次读取对应的全量数据计算得到指标数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741775.4A CN113344442A (zh) | 2021-06-30 | 2021-06-30 | 指标数据计算方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741775.4A CN113344442A (zh) | 2021-06-30 | 2021-06-30 | 指标数据计算方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113344442A true CN113344442A (zh) | 2021-09-03 |
Family
ID=77481946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110741775.4A Pending CN113344442A (zh) | 2021-06-30 | 2021-06-30 | 指标数据计算方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113344442A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628675A (zh) * | 2018-05-14 | 2018-10-09 | 五八有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN111522868A (zh) * | 2020-03-24 | 2020-08-11 | 北京三快在线科技有限公司 | 数据规则的处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-06-30 CN CN202110741775.4A patent/CN113344442A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628675A (zh) * | 2018-05-14 | 2018-10-09 | 五八有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN111522868A (zh) * | 2020-03-24 | 2020-08-11 | 北京三快在线科技有限公司 | 数据规则的处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106486B2 (en) | Techniques to manage virtual classes for statistical tests | |
CN111651285A (zh) | 批量业务数据处理方法、装置、计算机设备和存储介质 | |
CN111178830A (zh) | 成本的核算方法、装置、计算机设备和存储介质 | |
CN110795457A (zh) | 数据缓存处理方法、装置、计算机设备和存储介质 | |
CN112488745A (zh) | 一种智能费控管理方法、装置、设备和存储介质 | |
CN111274531A (zh) | 商品销售额预测方法、装置、计算机设备和存储介质 | |
CN110457401B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN109634955B (zh) | 数据存储方法、数据检索方法和装置 | |
CN113344442A (zh) | 指标数据计算方法、装置、计算机设备和存储介质 | |
CN113220707A (zh) | 实时合并多种业务指标数据的方法、装置和计算机设备 | |
CN117311998A (zh) | 一种大模型部署方法及系统 | |
CN113342860A (zh) | 基于通用接口的指标计算方法、装置、设备和存储介质 | |
CN116431619A (zh) | 基于用户画像人群生命周期控制方法及装置 | |
CN112597162B (zh) | 数据集采集方法、系统、设备及存储介质 | |
CN113342824A (zh) | 基于目标存储设备的数据存储方法、装置、设备和介质 | |
CN110969430B (zh) | 可疑用户的识别方法、装置、计算机设备和存储介质 | |
CN114897586A (zh) | 业务监控方法、装置、计算机设备和存储介质 | |
CN114238044A (zh) | 开源项目活跃度的计算方法、装置和计算机设备 | |
CN109284260B (zh) | 大数据文件读取方法、装置、计算机设备及存储介质 | |
CN114116256A (zh) | 变量调用方法、装置、计算机设备和存储介质 | |
CN110162542A (zh) | 基于cassandra的数据翻页方法、装置、计算机设备和存储介质 | |
CN109656948A (zh) | 位图数据处理方法、装置、计算机设备和存储介质 | |
CN112241754B (zh) | 在线模型学习方法、系统、设备及计算机可读存储介质 | |
CN112907267B (zh) | 货物件量预测方法、装置、计算机设备和存储介质 | |
CN109034982A (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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Huang Qiangsheng Inventor after: Li Yatao Inventor before: Chen Zhe Inventor before: Zhao Chenxing Inventor before: Liu Kejia Inventor before: Liu Nanxiang Inventor before: Lin Shenghuang |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210903 |