CN115563142A - 金融数据流处理方法、装置、电子设备和存储介质 - Google Patents
金融数据流处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115563142A CN115563142A CN202211300426.XA CN202211300426A CN115563142A CN 115563142 A CN115563142 A CN 115563142A CN 202211300426 A CN202211300426 A CN 202211300426A CN 115563142 A CN115563142 A CN 115563142A
- Authority
- CN
- China
- Prior art keywords
- financial
- data
- financial data
- category
- pool
- 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/23—Updating
-
- 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/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种金融数据流处理方法、装置、电子设备和存储介质,该方法包括:使用类别协程池查询金融数据的金融业务类别,并将查询到的金融业务类别写入第一数据缓冲区;在第一数据缓冲区中存在数据时,通过数据协程池在数据库中查询具有对应金融业务类别的金融数据,并将查询到的金融数据写入第二数据缓冲区;然后使用计算协程池计算金融数据的金融得分,并将金融得分写入第三数据缓冲区;最后利用金融得分,使用更新协程池对金融数据流进行更新。其中,将任务打断为多个协程池处理,各个协程池相互依赖且各个协程池不会互相阻塞,可实现在短时间内进行大量的数据运算,进而提升金融数据流的更新效率。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种金融数据流处理方法、装置、电子设备和存储介质。
背景技术
数据流是指将用户主动订阅的若干消息源组合在一起形成内容聚合器,帮助用户持续地获取最新的订阅源内容。金融数据流即持续更新并将金融内容呈现给用户的信息流。
通常,为了持续给用户呈现优质的金融内容,需要在短时间对金融数据流进行更新,由于在更新的过程中需要大量的数据读写操作和计算操作,导致在有限的机器资源下,难以实现在短时间内进行大量的数据运算,从而导致金融数据流更新效率低下。
发明内容
本发明实施例提供金融数据流处理方法、装置、电子设备和存储介质,可以在有限的机器资源下,在短时间内进行大量的数据运算,提升金融数据流的更新效率。
本发明实施例提供一种金融数据流处理方法,该方法包括:
使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
本发明实施例还提供一种金融数据流处理装置,该装置包括:
类别查询模块,用于使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
数据查询模块,用于若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
计算模块,用于使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
处理模块,用于根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
在本发明的一些实施例中,还可以提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
在本发明的一些实施例中,还可以提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行如上所述方法的步骤。
采用本申请实施例,可以使用类别协程池查询金融数据的金融业务类别,并将查询到的金融业务类别写入第一数据缓冲区;在第一数据缓冲区中存在数据时,通过数据协程池在数据库中查询具有对应金融业务类别的金融数据,并将查询到的金融数据写入第二数据缓冲区;然后使用计算协程池计算金融数据的金融得分,并将金融得分写入第三数据缓冲区;最后利用金融得分,使用更新协程池对金融数据流进行更新。其中,将任务打断为多个协程池处理,各个协程池相互依赖且各个协程池不会互相阻塞,可实现在短时间内进行大量的数据运算,进而提升金融数据流的更新效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的金融数据流处理方法的场景示意图;
图2是本发明实施例提供的金融数据流处理方法的流程示意图;
图3是本发明实施例提供的金融数据流处理方法的框架示意图;
图4是本发明实施例提供的金融数据流处理装置的结构示意图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种金融数据流处理方法、装置、电子设备和存储介质。
其中,电子设备可以为手机、平板电脑、笔记本电脑等终端设备,也可以为穿戴设备、智能电视或其他智能终端。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
例如,参考图1,示出了本申请实施例提供的金融数据流处理方法的场景示意图。该场景可以包括至少一个用户终端1000,至少一个服务器2000,至少一个数据库3000,以及网络4000。用户持有的用户终端1000可以通过网络4000连接到服务器2000。其中,用户终端1000是具有计算硬件的任何设备,该计算硬件能够支持和执行与数据构造对应的软件产品;服务器2000可以是单一服务器,可以是服务器集群;网络4000可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的用户终端1000之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器2000。另外,该场景还可以包括至少一个数据库3000,该数据库3000可用于存储金融数据流。
服务器2000可以使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。以便将更新后的金融数据流推送至用户终端1000,将对应的金融类内容呈现给用户。
以下分别进行详细说明。
在本实施例中,提供了一种金融数据流处理方法,如图2所示,该金融数据流处理方法的具体流程可以如下:
S110、使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中。
数据流是一种持续更新并呈现内容给用户的信息流,金融数据流是指持续更新并将金融类的内容呈现给用户的信息流。例如,金融数据流可以持续地为用户呈现金融类的内容,如银行理财产品、基金、保险等内容。
其中,金融数据流中可以包括多个金融数据,每个金融数据可以指示对应的金融类内容。
协程是一种程序组件,是一种用户级的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,可以恢复先前保存的寄存器上下文和栈。因此,协程能保留上一次调用时的状态,每次重入时,就相当于进入上一次调用的状态。协程的核心是函数或者一段程序能够被挂起,在需要的时候再恢复即可。
协程池是指包含了多个协程的集合,例如,一个协程池可以包括2个协程、5个协程等等,可根据实际的需要进行设置,在此不做具体限定。
其中,类别协程池是指用于进行类别查询的协程池,在触发对金融数据流更新时,可使用类别协程池进行类别查询。例如,将对金融数据流的更新任务作为定时任务,每间隔预设时间段即可触发对金融数据流的更新。
在对金融数据流进行处理时,可以是先查询金融数据流中的金融数据的类别,将类别的查询结果写入第一数据缓冲区。在一些实施方式中,类别协程池可以包括第一子类别协程和第二子类别协程,在查询金融数据的类别时,可以是使用第一子类别协程在本地内存中查询所述金融数据流中的金融数据的类别,得到所述金融数据流对应的金融业务类别;若未在所述本地内存中查询到所述金融数据流中的金融数据的类别,通过所述第二子类别协程在所述数据库中进行查询,得到所述金融数据对应的金融业务类别;将所述第一子类别协程和所述第二子类别协程查询得到的所述金融业务类别,写入所述第一数据缓冲区。
可以理解的是,在本地内存或数据库中均可以查询到金融数据对应的类别,金融数据的类别可以是指金融数据的对应的金融业务类别。其中,金融数据对应的类别可以是按照多种维度分类得到,例如,按照金融产品的不同,可以分为基金、股票等,按照交易的类型可以分为购买、赎回等,又例如按照提供金融产品的责任商可分为A公司、B公司等,具体可根据实际的处理需要进行设置,在此不做具体限定。
为了确保类别查询效率,优先在本地内存中查询金融数据对应的类别,具体可以是先通过第一子类别协程在本地内存中查询金融数据的类别,以得到金融数据对应的金融业务类别。若未在本地内存中查询到类别,则通过第二子类别协程在数据库中查询金融数据的类别。然后第一子类别协程和第二子类别协程将其查询到的金融业务类别写入第一数据缓冲区中,以供后续使用。
可以理解的是,金融数据流中有多个金融数据,在查询金融数据的类别时,第一子类别协程若查询到类别,则直接将金融业务类别写入第一数据缓冲区,若未查询到,则直接调用第二子类别协程查询类别,并写入第一缓冲区。其中,第一子类别协程子在运行时,第二子类别协程挂起,即第一子类别协程和第二子类别协程串行执行。
S120、若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区。
在第一缓冲区中写入金融业务类别之后,利用数据协程池可以继续在数据库中查询,以获取数据库中具有该金融业务类别的金融数据,然后将对应的金融数据写入第二数据缓冲区。
可以理解的是,数据库中的金融数据远大于金融数据流中的金融数据,也即,金融数据流中的金融数据均来源于数据库。为了实现对金融数据流的处理,可以获取到数据库中所有的金融数据。
在一些实施方式中,数据协程池是为了从数据库中查询对应类别的所有金融数据,该数据协程池可以包括监听协程和多个子数据协程。获取数据库中具有该金融业务类别的金融数据可以是:使用所述监听协程对所述第一数据缓冲区中的数据进行监听;若监听到所述第一数据缓冲区中存在所述金融业务类别,则通过所述多个子数据协程在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据;将每个子数据协程查询到的所述金融数据,按照所述金融业务类别写入第二数据缓冲区。
其中,监听协程可以对第一数据缓冲区进行监听,若监听到第一数据缓冲区中写入了数据,则启动多个子数据协程,根据第一数据缓冲区内的数据进行数据查找。第一数据缓冲区中写入的是金融业务类别,金融数据流中可能存在多个金融业务类别,那么,一个金融业务类别可由一个子数据协程处理,例如,一共有n个金融业务类别,则对应有n个子数据协程,一个子数据协程对应一个金融业务类别。
从而,每个子数据协程可以在数据库中查找具有对应金融业务类别的所有金融数据。然后每个子数据协程将查询到的金融数据,按照金融业务类别写入第二数据缓冲区。例如,一共有n个子数据协程,即n个金融业务类别,针对每个子数据协程,子数据协程可以将其查找到的金融数据打包成数据集合,则第二数据缓冲区中可以存储有n个数据集合,每个数据集合对应一个金融业务类别。
在一些实施方式中,还可以将每个数据集合和金融业务类别进行关联存储,以表明该数据集合中的所有金融数据,均具有对应的金融业务类别。
S130、使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区。
计算协程池是指用于计算金融数据对应的金融得分的协程池。其中,金融得分在不同的应用场景中的含义不同,例如,在银行跑批业务中,金融得分可以是指具体的金额或者份额,在金融产品智能推荐的场景中,金融得分可以是指和用户的匹配度等,具体可根据实际的需要进行设置,在此不做具体限定。
在一些实施方式中,计算协程池中可以包括多个子计算协程,该步骤具体可以包括:基于所述金融业务类别,调用对应的子计算协程从所述第二数据缓冲区中获取金融数据;每个所述子计算协程,按照金融业务类别对应的预设算法,为获取到的所述金融数据计算金融得分;将所述金融数据以及对应的金融得分进行关联,并将关联后的数据写入第三数据缓冲区。
其中,第二数据缓冲区中存储的数据集合均具有对应的金融业务类别。在调用对应的子计算协程从第二数据缓冲区中获取金融数据时,一个子计算协程也和一个金融业务类别对应。即对应子计算协程从对应的数据集合中获取金融数据,并对各自获取到的金融数据进行计算。例如,金融业务类别A和子计算协程A对应,由子计算协程A对金融业务类别A中的金融数据进行计算,金融业务类别B和子计算协程B对应,由子计算协程B对金融业务类别B中的金融数据进行计算。
每个子计算协程在计算金融数据的金融得分时,可以是按照预设算法计算,其中,不同的金融业务类别对应有不同的预设算法,赎回业务类别中对应的预设算法需要计算出赎回的金额,而购买业务类别中对应的预设算法需要计算出购买的金额等等。由于一个子计算协程处理的是一个金融业务类别下的金融数据,从而,可以使用对应的预设算法进行针对性计算,以此提升计算效率。
每个子计算协程在计算出金融数据的金融得分后,将金融数据和金融得分进行关联,然后将关联后的数据写入第三缓冲区,以供后续使用。
S140、根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
在得到每个金融数据对应的金融得分后,可以依据金融数据对应的金融得分,对金融数据流进行更新。由于金融数据流是需要推送至下游服务,并由下游服务推送至客户端,由此,为了实现对金融数据流的更新,需要调用下游服务。
在一些实施方式中,更新协程池可以包括服务调用协程和数据更新协程,基于金融得分对金融数据流进行更新时,可以是使用所述服务调用协程调用目标服务,并从所述第三数据缓冲区中读取每个金融数据对应的金融得分;根据所述目标服务和每个金融数据对应的金融得分,确定所述金融数据流中的待更新金融数据和待删除金融数据;调用所述目标服务从所述金融数据流中,删除所述待删除金融数据;通过数据更新协程,基于所述待更新金融数据对应的金融得分,对所述金融数据流进行更新。
服务调用协程可用于调用目标服务,并从第三数据缓冲区中读取每个金融数据对应的金融得分,并根据每个金融数据对应的金融得分,确定金融数据流中的待更新金融数据和待删除金融数据。
其中,待更新金融数据是指仍然在金融数据流中,但是其对应的金融得分需要更新的金融数据,或者是需要新加入金融数据流中金融数据。待删除金融数据是指需要从金融数据流删除的金融数据。
在一些实施方式中,在银行跑批业务中,金融数据流可以是指某个用户定期赎回业务,和定期购买业务,金融得分则为对应的赎回金额,购买金额等。确定待更新金融数据和待删除金融数据时,可以根据赎回金额,确定某一金融数据指示的金融产品是否全部赎回,即比较赎回金额和持有的金融产品的金额,若赎回金额小于持有的金融产品的金额,则认为是部分赎回,金融产品仍然被持有,仅仅是份额的变化,由此可直接将其确定为待更新金融数据。若是赎回金额等于持有的金融产品的金额,则可以认为持有的金融产品全部赎回,则对应的金融数据可被确定为待删除金融数据。在定期购买业务中,可确定该金融数据指示的金融产品的份额是否为0,若为0,则可将其确定为新增至金融数据流中的金融数据;若不为0,则可以将其确定为需要更改份额的金融数据。
在金融产品智能推荐的场景中,金融数据流可以是指某个用户感兴趣的金融产品,金融得分则可以表示用户特征和金融数据的相似度等。在确定待更新金融数据和待删除金融数据时,可以是基于金融得分对所有金融数据进行排序,将排序靠后的一部分数据作为待淘汰的金融数据,然后若金融数据流中存在这些待淘汰的金融数据,则可以将金融数据中的待淘汰金融数据确定为待删除金融数据。将排序靠前的一部分数据作为可以放入金融数据流中的金融数据,比较金融数据流和这部分数据,将不存在于金融数据流的数据确定为新增至金融数据流中的数据,将存在于金融数据流的数据确定为仅需更新对应金融得分的金融数据。
例如,将排序后得到的待淘汰的金融数据记为X,将可放入金融数据流中的金融数据记为Y,原金融数据流记为Z,其中,X、Y、Z均为数据集合。计算集合X和集合Z之间的交集,将该交集确定为待删除金融数据。计算集合Y和集合Z的交集,将该交集确定为待更新金融得分的金融数据;计算集合Y中集合Z的相对补集,也即属于集合Y但不属于集合Z的数据,可被确定为需要新加入金融数据流中金融数据。
确定出待更新数据和待删除数据后可调用目标服务从金融数据流中,删除待删除金融数据。例如,可以是删除金融数据对应的索引,通过操作索引实现对待删除金融数据的删除。
通过数据更新协程,根据待更新金融数据的金融得分,更新金融数据流。类似的,为了快速实现数据的更新,也可以是基于索引更新对应的金融数据流。例如,待更新金融数据可以是更新得分,或者新增至金融数据流中,则可以将待更新金融数据里的索引所对应的金融得分进行更新,或者将待更新金融数据流的索引添加至金融数据流,以实现快速更新。
在一些实施方式中,为了确保数据全部更新,可以是通过数据更新协程,将所述金融数据流中,所述待更新金融数据的得分更新为对应的金融得分;对更新后的每个所述金融数据进行标记处理,得到金融数据对应的更新标记;基于所述更新标记,将所有所述待更新金融数据以及对应的金融得分,更新至所述金融数据流中。
数据更新协程可以将待更新金融数据的得分更新为对应的金融得分,在每更新一个金融得分后,可以对更新后的每个金融数据进行标记处理,得到对应的更新标记。
根据更新标记,也即携带了更新标记的金融数据为更新后的金融数据,由此,根据更新标记,可以和待更新金融数据进行比对,以确保待更新金融数据全部更新。例如,待更新金融数据为m个,每更新一个金融数据流中的金融数据,则得到一个更新标记,比较更新标记的数据和待更新金融数据的数量,可确定出是否更新完毕,并且,在更新时,也可按照一定顺序更新,以便定位出未更新完毕的待更新金融数据。在待更新金融数据全部更新后,且删除了待删除金融数据后,则可以得到更新后的金融数据流。
需要说明的是,上述每个协程池均没有阻塞,将对应的数据写入数据缓冲区后,即可继续进行数据处理。为了更加清楚的说明上述的数据处理过程,可参阅图3,示出了金融数据流处理方法的架构示意图。
首先类别协程池查询金融数据流中的金融数据对应的金融业务类别,将金融业务类别写入第一数据缓冲区,类别协程池将金融业务类别写入第一数换缓冲区后,可继续进行查询下一金融数据的金融类别的动作。
数据协程池根据第一数据缓冲区中的金融业务类别,查询对应的金融数据,将金融业务类别对应的金融数据写入第二数据缓冲区。其中,数据协程池中包括多个子数据协程,每个子数据协程负责查询一个金融业务类别下的金融数据。
计算协程池计算每个金融数据的得分,得到金融得分并写入第三数据缓冲区,其中,计算协程池中包括多个子计算协程,每个子计算协程负责计算一个金融业务类别下的金融数据对应的金融得分。
然后更新协程池根据金融得分,对金融数据流进行处理。其中,更新协程池中的协程可调用下游服务,并通过索引的方式对金融数据流进行删除、更新金融得分、新增等,以降低数据的处理量。
其中,增加多个协程来并发查询类别,并进行分发类别处理,由于分发类别的协程增加,那么后续的协程池可在完成一次调度后,马上进行下一次调度,而不会进入调度空闲的状态。各个协程池之间相互依赖,即后一个协程池依赖前一个协程池的处理,各个协程池之间不会互相阻塞,将一个任务打断为多个协程池配合处理,可在端时间内进行大量的数据运算,提升金融数据流的更新效率。
采用本实施例,通过使用类别协程池查询金融数据的金融业务类别,并将查询到的金融业务类别写入第一数据缓冲区;在第一数据缓冲区中存在数据时,通过数据协程池在数据库中查询具有对应金融业务类别的金融数据,并将查询到的金融数据写入第二数据缓冲区;然后使用计算协程池计算金融数据的金融得分,并将金融得分写入第三数据缓冲区;最后利用金融得分,使用更新协程池对金融数据流进行更新。其中,将任务打断为多个协程池处理,各个协程池相互依赖,且各个协程池不会互相阻塞,可实现在短时间内进行大量的数据运算,进而提升金融数据流的更新效率。
为了更好地实施以上方法,相应的,本发明实施例还提供一种金融数据流处理装置,该金融数据流处理装置具体集成在终端或服务器中。
参考图4,该装置包括类别查询模块210、数据查询模块220、计算模块230以及处理模块240。
类别查询模块210,用于使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
数据查询模块220,用于若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
计算模块230,用于使用计算协程池对所述第二数据缓冲区中金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
处理模块240,用于根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
在一些实施例中,类别协程池包括第一子类别协程和第二子类别协程,类别查询模块210还包括:
第一查询单元,用于使用第一子类别协程在本地内存中,查询所述金融数据流中的金融数据的类别,得到所述金融数据对应的金融业务类别;
第二查询单元,用于若未在所述本地内存中查询到所述金融数据流中的金融数据的类别,通过所述第二子类别协程在所述数据库中进行查询,得到所述金融数据对应的金融业务类别;
类别写入单元,用于将所述第一子类别协程和所述第二子类别协程查询得到的所述金融业务类别,写入所述第一数据缓冲区。
在一些实施例中,数据协程池包括监听协程以及多个子数据协程,数据查询模块220还包括:
监听单元,用于使用所述监听协程对所述第一数据缓冲区中的数据进行监听;
获取单元,用于若监听到所述第一数据缓冲区中存在所述金融业务类别,则通过所述多个子数据协程在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据;
数据写入单元,用于将每个子数据协程查询到的所述金融数据,按照所述金融业务类别写入第二数据缓冲区。
在一些实施例中,获取单元还用于:
基于所述金融业务类别,确定与所述金融业务类别对应子数据协程;
调用与所述金融业务类别对应的子数据协程,在数据库中查询具有所述金融业务类别的金融数据。
在一些实施例中,计算协程池包括多个子计算协程,计算模块230还包括:
读取单元,用于基于所述金融业务类别,调用对应的子计算协程从所述第二数据缓冲区中获取金融数据;
计算单元,用于每个所述子计算协程,按照金融业务类别对应的预设算法,为获取到的所述金融数据计算金融得分;
关联单元,用于将所述金融数据以及对应的金融得分进行关联,并将关联后的数据写入第三数据缓冲区。
在一些实施例中,更新协程池包括服务调用协程和数据更新协程,处理模块240还包括:
调用单元,用于使用所述服务调用协程调用目标服务,并从所述第三数据缓冲区中读取每个金融数据对应的金融得分;
确定单元,用于根据所述目标服务和每个金融数据对应的金融得分,确定所述金融数据流中的待更新金融数据和待删除金融数据;
删除单元,用于调用所述目标服务从所述金融数据流中,删除所述待删除金融数据;
更新单元,用于通过数据更新协程,基于所述待更新金融数据对应的金融得分,对所述金融数据流进行更新。
在一些实施例中,更新单元还用于:
通过数据更新协程,将所述金融数据流中,所述待更新金融数据的得分更新为对应的金融得分;
对更新后的每个所述金融数据进行标记处理,得到金融数据对应的更新标记;
基于所述更新标记,将所有所述待更新金融数据以及对应的金融得分,更新至所述金融数据流中。
采用本实施例,通过使用类别协程池查询金融数据的金融业务类别,并将查询到的金融业务类别写入第一数据缓冲区;在第一数据缓冲区中存在数据时,通过数据协程池在数据库中查询具有对应金融业务类别的金融数据,并将查询到的金融数据写入第二数据缓冲区;然后使用计算协程池计算金融数据的金融得分,并将金融得分写入第三数据缓冲区;最后利用金融得分,使用更新协程池对金融数据流进行更新。其中,将任务打断为多个协程池处理,各个协程池相互依赖且各个协程池不会互相阻塞,可实现在短时间内进行大量的数据运算,进而提升金融数据流的更新效率。
此外,本发明实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图5所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器301、一个或一个以上计算机可读存储介质的存储器302、电源303和输入单元304等部件。本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器301是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监测。可选的,处理器301可包括一个或多个处理核心;优选的,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。
存储器302可用于存储软件程序以及模块,处理器301通过运行存储在存储器302的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器302还可以包括存储器控制器,以提供处理器301对存储器302的访问。
电子设备还包括给各个部件供电的电源303,优选的,电源303可以通过电源管理系统与处理器301逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源303还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元304,该输入单元304可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器301会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器302中,并由处理器301来运行存储在存储器302中的应用程序,从而实现各种功能,如下:
使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例还提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例中的各种可选实现方式中提供的方法。
根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述实施例中的各种可选实现方式中提供的方法:
使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的方法中的步骤,因此,可以实现本发明实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种金融数据流处理方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种金融数据流处理方法,其特征在于,所述方法包括:
使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
2.根据权利要求1所述的方法,其特征在于,所述类别协程池包括第一子类别协程和第二子类别协程,所述使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中,包括:
使用第一子类别协程在本地内存中,查询所述金融数据流中的金融数据的类别,得到所述金融数据对应的金融业务类别;
若未在所述本地内存中查询到所述金融数据流中的金融数据的类别,通过所述第二子类别协程在所述数据库中进行查询,得到所述金融数据对应的金融业务类别;
将所述第一子类别协程和所述第二子类别协程查询得到的所述金融业务类别,写入所述第一数据缓冲区。
3.根据权利要求1所述的方法,其特征在于,所述数据协程池包括监听协程以及多个子数据协程,若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区,包括:
使用所述监听协程对所述第一数据缓冲区中的数据进行监听;
若监听到所述第一数据缓冲区中存在所述金融业务类别,则通过所述多个子数据协程在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据;
将每个子数据协程查询到的所述金融数据,按照所述金融业务类别写入第二数据缓冲区。
4.根据权利要求3所述的方法,其特征在于,所述通过所述多个子数据协程在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,包括:
基于所述金融业务类别,确定与所述金融业务类别对应子数据协程;
调用与所述金融业务类别对应的子数据协程,在数据库中查询具有所述金融业务类别的金融数据。
5.根据权利要求3所述的方法,其特征在于,所述计算协程池包括多个子计算协程,所述使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区,包括:
基于所述金融业务类别,调用对应的子计算协程从所述第二数据缓冲区中获取金融数据;
每个所述子计算协程,按照金融业务类别对应的预设算法,为获取到的所述金融数据计算金融得分;
将所述金融数据以及对应的金融得分进行关联,并将关联后的数据写入第三数据缓冲区。
6.根据权利要求1所述的方法,其特征在于,所述更新协程池包括服务调用协程和数据更新协程,所述根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新,包括:
使用所述服务调用协程调用目标服务,并从所述第三数据缓冲区中读取每个金融数据对应的金融得分;
根据所述目标服务和每个金融数据对应的金融得分,确定所述金融数据流中的待更新金融数据和待删除金融数据;
调用所述目标服务从所述金融数据流中,删除所述待删除金融数据;
通过数据更新协程,基于所述待更新金融数据对应的金融得分,对所述金融数据流进行更新。
7.根据权利要求6所述的方法,其特征在于,所述通过数据更新协程,基于所述待更新金融数据对应的金融得分,对所述金融数据流进行更新,包括:
通过数据更新协程,将所述金融数据流中,所述待更新金融数据的得分更新为对应的金融得分;
对更新后的每个所述金融数据进行标记处理,得到金融数据对应的更新标记;
基于所述更新标记,将所有所述待更新金融数据以及对应的金融得分,更新至所述金融数据流中。
8.一种金融数据流处理装置,其特征在于,所述装置包括:
类别查询模块,用于使用类别协程池对金融数据流中的金融数据进行类别查询,将查询到的所述金融数据对应的金融业务类别写入第一数据缓冲区中;
数据查询模块,用于若所述第一数据缓冲区中存在所述金融业务类别,通过数据协程池在数据库中查询,获取所述数据库中具有所述金融业务类别的金融数据,并将所述金融数据写入第二数据缓冲区;
计算模块,用于使用计算协程池对所述第二数据缓冲区中的金融数据进行得分计算,将得到的每个金融数据对应的金融得分写入第三数据缓冲区;
处理模块,用于根据所述第三数据缓冲区中每个金融数据对应的金融得分,使用更新协程池对所述金融数据流进行更新。
9.一种电子设备,其特征在于,包括存储器,处理器及存储在存储器上并在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的金融数据流处理方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至7中任一项所述的金融数据流处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211300426.XA CN115563142A (zh) | 2022-10-24 | 2022-10-24 | 金融数据流处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211300426.XA CN115563142A (zh) | 2022-10-24 | 2022-10-24 | 金融数据流处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115563142A true CN115563142A (zh) | 2023-01-03 |
Family
ID=84746739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211300426.XA Pending CN115563142A (zh) | 2022-10-24 | 2022-10-24 | 金融数据流处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115563142A (zh) |
-
2022
- 2022-10-24 CN CN202211300426.XA patent/CN115563142A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595207B (zh) | 一种灰度发布方法、规则引擎、系统、终端和存储介质 | |
US8635250B2 (en) | Methods and systems for deleting large amounts of data from a multitenant database | |
CN108090225A (zh) | 数据库实例的运行方法、装置、系统及计算机可读存储介质 | |
US8650216B2 (en) | Distributed storage for collaboration servers | |
EP2453368B1 (en) | Custom web services data link layer | |
US20220045847A1 (en) | Determining a change to product information or user information via hashing | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN112559522A (zh) | 数据存储方法、装置、查询方法、电子设备及可读介质 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
US11062224B2 (en) | Prediction using fusion of heterogeneous unstructured data | |
AU2020203282B2 (en) | Method and system for matching multi-dimensional data units in electronic information system | |
US11157690B2 (en) | Techniques for asynchronous execution of computationally expensive local spreadsheet tasks | |
CN111858585A (zh) | 区块链策略处理装置、计算机可读存储介质及终端设备 | |
CN112214521A (zh) | 规则查询方法、装置、设备及计算机存储介质 | |
CN115563142A (zh) | 金融数据流处理方法、装置、电子设备和存储介质 | |
CN116028696A (zh) | 资源信息获取方法、装置、电子设备及存储介质 | |
CN114170004A (zh) | 基于多事件的评分决策方法、装置、设备及存储介质 | |
CN115760317A (zh) | 业务订单处理方法、装置、计算机设备及存储介质 | |
US7484215B2 (en) | Method, system and program product for processing a transaction | |
CN112417018A (zh) | 一种数据共享方法及装置 | |
CN112258244A (zh) | 确定目标物品所属任务的方法、装置、设备及存储介质 | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 | |
CN116911990A (zh) | 回单生成方法、装置、计算机设备和存储介质 | |
CN116243915A (zh) | 一种数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN113806801A (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 |