CN116029731A - 一种处理行情数据的方法、装置及电子设备 - Google Patents
一种处理行情数据的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116029731A CN116029731A CN202310041484.3A CN202310041484A CN116029731A CN 116029731 A CN116029731 A CN 116029731A CN 202310041484 A CN202310041484 A CN 202310041484A CN 116029731 A CN116029731 A CN 116029731A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- data set
- preset
- acquired
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据分析技术领域,尤其涉及一种处理行情数据的方法、装置及电子设备。该方法包括:采集行情数据集;其中,所述行情数据集采集自至少两个数据源;利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据;其中,所述子数据集的数量与所述行情数据集中数据表的数量相等;基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。通过上述方法可解决现有技术中行情数据海量,及所在系统封闭导致的多源行情数据难以统一处理的问题。
Description
技术领域
本申请涉及数据分析技术领域,尤其涉及一种处理行情数据的方法、装置及电子设备。
背景技术
交易市场的行情数据具有数据变化快、变化规律难以把握、数据量大的特点,而实时把握行情数据的变化在交易市场中,尤其是防范投资风险、投资安全起着决定性的作用。
目前,交易市场各数据源所在系统尽管都具备实时接入数据的能力,但各系统具有封闭性,不具备处理其他系统中行情数据的能力,这导致各系统处理行情数据难以同步,且由于各系统处理数据的实现方式各不相同,效率难以统一。因此,现有技术中缺乏一种能统一处理多源行情数据的方法。
发明内容
本申请提供了一种处理行情数据的方法、装置及电子设备,用以实现统一且同步处理多源行情数据,从而提升行情数据处理效率的目的。
第一方面,本申请实施例提供一种处理行情数据的方法,包括:
采集行情数据集;其中,所述行情数据集采集自至少两个数据源;
利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据;其中,所述子数据集的数量与所述行情数据集中数据表的数量相等;
基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。
本申请实施例基于预设转换算子,实现多源数据的同步处理,将各类型标的数据(即多源数据)同步筛选,得到不同的子数据集,实现分流行情数据集,并通过预设计算规则处理子数据集,以便于同步对不同子数据集进行不同类型的数据处理。并通过在目标数据库中同步缓存,实现高效获取以及更新海量行情数据的目的,克服行情数据单表数据量大,不易关联,只能在各自的数据模块中进行处理的问题。
一种可能的实施方式,所述采集行情数据集,包括:
接收所述至少两个数据源的数据模块所发送的实时数据流;或者,基于CDC捕获所述数据模块中的实时数据流;
将所述实时数据流转化为预设格式,得到对应于所述行情数据集的数据流;其中,所述预设格式包括所述数据流中主键与所述主键的值之间的相对位置关系。
一种可能的实施方式,所述利用预设转换算子在所述行情数据集中筛选,得到子数据集,包括:
利用消息中间件Kafka,将所述数据流以所述预设格式接入所述预设转换算子,使所述预设转换算子对所述数据流进行筛选。
一种可能的实施方式,所述预设转换算子包括过滤算子和聚合算子;则所述利用预设转换算子在所述行情数据集中筛选,得到子数据集,包括:
利用所述过滤算子,过滤所述行情数据集,得到目标数据;
基于所述目标数据中数据表的主键,对所述目标数据分区,得到分区数据;其中,所述目标数据对应至少两组所述分区数据;
利用所述聚合算子处理所述分区数据,得到对应于所述子数据集的子数据流。
一种可能的实施方式,所述基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库,包括:
基于所述子数据集、所述汇总数据以及所述预设格式,确定所述子数据集的主键和所述汇总数据的主键;
基于所述子数据集的主键,将所述子数据集添加至所述目标数据库;
基于所述汇总数据的主键,将所述汇总数据更新至所述目标数据库。
一种可能的实施方式,所述预设计算规则包括基于预设时间窗口确定交易总量;则所述利用预设计算规则,处理所述子数据集,得到汇总数据,包括:
确定所述子数据集所对应的交易时刻;
基于所述预设时间窗口以及所述交易时刻,向所述消息中间件Kafka发送第一请求信息;其中,所述第一请求信息指示对应于所述预设时间窗口以及所述交易时间的第一待获取数据集;所述第一待获取数据集中第一待获取子数据集的主键与所述子数据集的主键相同;
接收所述第一待获取数据集;
累加所述第一待获取数据集中所述第一待获取子数据集的值,得到所述汇总数据。
一种可能的实施方式,所述预设计算规则包括基于业务指令,以批次为单位处理所述子数据集,得到批次数据;其中,所述批次数据包括第一预设数量的所述子数据集;则所述利用预设计算规则,处理所述子数据集,得到汇总数据,包括:
响应于所述业务指令中批次数据所含的所述第一预设数量的子数据集,以及所述第二预设数量的所述批次数据,向所述消息中间件Kafka发送第二请求信息;其中,所述第二请求信息指示由所述第二预设数量的所述批次数据组成的第二待获取数据集;所述第二待获取数据集中的第二待获取子数据集的主键与所述批次数据的主键相同;
接收所述第二待获取数据集;
在所述第二待获取数据集中,根据时间顺序,将所述第一预设数量的所述第二待获取子数据集组合,得到所述第二预设数量的所述批次数据;
累加所述第二待获取数据集中所述批次数据的值,得到所述汇总数据。
第二方面,本申请实施例提供一种处理行情数据的装置,包括:
采集单元:用于采集行情数据集;其中,所述行情数据集采集自至少两个数据源;
筛选单元:用于利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据;其中,所述子数据集的数量与所述行情数据集中数据表的数量相等;
同步单元:用于基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。
一种可能的实施方式,所述采集单元具体用于接收所述至少两个数据源的数据模块所发送的实时数据流;或者,基于CDC捕获所述数据模块中的实时数据流;将所述实时数据流转化为预设格式,得到对应于所述行情数据集的数据流;其中,所述预设格式包括所述数据流中主键与所述主键的值之间的相对位置关系。
一种可能的实施方式,所述采集单元还用于通过消息中间件Kafka,将所述数据流以所述预设格式接入所述预设转换算子,使所述预设转换算子对数据流进行筛选。
一种可能的实施方式,所述预设转换算子包括过滤算子和聚合算子,则所述筛选单元具体用于利用所述过滤算子,过滤所述行情数据集,得到目标数据;基于所述目标数据中数据表的主键,对所述目标数据分区,得到分区数据;其中,所述目标数据对应至少两组所述分区数据;利用所述聚合算子处理所述分区数据,得到对应于所述子数据集的子数据流。
一种可能的实施方式,所述同步单元具体用于基于所述子数据集、所述汇总数据以及所述预设格式,确定所述子数据集的主键和所述汇总数据的主键;基于所述子数据集的主键,将所述子数据集添加至所述目标数据库;基于所述汇总数据的主键,将所述汇总数据更新至所述目标数据库。
一种可能的实施方式,所述预设计算规则包括基于预设时间窗口确定交易总量;则所述同步单元具体用于确定所述子数据集所对应的交易时刻;基于所述预设时间窗口以及所述交易时刻,向所述消息中间件Kafka发送第一请求信息;其中,所述第一请求信息指示对应于所述预设时间窗口以及所述交易时间的第一待获取数据集;所述第一待获取数据集中第一待获取子数据集的主键与所述子数据集的主键相同;接收所述第一待获取数据集;累加所述第一待获取数据集中所述第一待获取子数据集的值,得到所述汇总数据。
一种可能的实施方式,所述预设计算规则包括基于业务指令,以批次为单位处理所述子数据集,得到批次数据;其中,所述批次数据包括第一预设数量的所述子数据集;则所述同步单元具体用于响应于所述业务指令中批次数据所含的所述第一预设数量的子数据集,以及所述第二预设数量的所述批次数据,向所述消息中间件Kafka发送第二请求信息;其中,所述第二请求信息指示由所述第二预设数量的所述批次数据组成的第二待获取数据集;所述第二待获取数据集中的第二待获取子数据集的主键与所述批次数据的主键相同;接收所述第二待获取数据集;在所述第二待获取数据集中,根据时间顺序,将所述第一预设数量的所述第二待获取子数据集组合,得到所述第二预设数量的所述批次数据;累加所述第二待获取数据集中所述批次数据的值,得到所述汇总数据。
第三方面,本申请实施例还提供一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,以实现第一方面及任一种可能的实施方式所述的方法步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面及任一种可能的实施方式所述的方法。
第五方面、本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面及任一种可能的实施方式所述的方法。
附图说明
图1为本申请实施例提供的一种处理行情数据的方法的流程示意图;
图2为本申请实施例提供的一种数据流分流的示意图;
图3为本申请实施例提供的一种处理行情数据的装置的结构示意图;
图4为本申请实施例提供的一种处理行情数据的电子设备的结构示意图。
具体实施方式
针对现有技术中由于不同数据源所在系统封闭,处理多源行情数据难以同步的问题,本申请实施例提出一种行情数据处理方法:将多源行情数据采集得到的行情数据集,利用预设转换算子对行情数据集进行筛选出子数据集,以及利用预设计算规则对子数据集进行处理;并将子数据集以及处理得到的汇总数据缓存,从而达到统一处理多源行情数据,将处理结果同步缓存的目的。
需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请的技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
请参考图1,本申请提出一种行情数据的处理方法,用以同步缓存多源行情数据,以统一处理多源行情数据的目的,该方法具体包括以下实现步骤:
步骤101:采集行情数据集。
其中,行情数据集采集自至少两个数据源。
本申请实施例中所述的行情数据集中包括但不限于股票行情数据和债券行情数据。股票行情数据可以为股票代码、股票流通市场、和股票实时价格中的一种或多种。债券行情数据可以为债券代码、债券流通市场、债券全价、和债券净价中的一种或多种。
为了实时同步,上述行情数据集实际上为数据流,具体的采集方式可以通过多源行情数据所在的数据模块行情数据实时更新并主动推送,即至少两个数据源的数据模块/系统将实时检索各自接入的行情数据,并根据行情数据更新后主动推送。
上述采集方式也可以通过CDC(Change Data Capture:变更数据捕获)针对前述数据模块/系统中数据表的变化进行实时捕获。
进一步地,在接收至少两个数据源的数据模块所发送的实时数据流;或者,基于CDC捕获所述数据模块中的实时数据流之后,可将实时数据流转化为预设格式,例如Json格式,或者XML格式,得到统一格式,且对应于行情数据集的数据流。其中,所述预设格式包括所述数据流中主键与所述主键的值之间的相对位置关系。
上述预设格式实际上为Key与Value之间的相对位置关系。即通过上述预设格式将行情数据集统一转换,得到的数据流中数据均以键值对(Key-Value)形式表示,以便于根据预设格式中主键(key)的相对位置,查询/识别主键(key),进而实现相应数据的提取、识别、或转换,从而有效提升计算或处理行情数据的效率。因Json格式较简单,易于转换以及读取,本申请实施例中优选预设格式为Json格式。
上述实时数据流所更新的频率约为1s一次,因此实施数据流的数据量为海量,而消息中间件Kafka可确保数据流与数据流之间互不影响、且不丢失。因此,当上述统一格式为Json格式时,可通过消息中间件Kafka将上述对应于行情数据集的数据流以Json格式的键值对形式执行步骤102,以对数据流进行筛选。
步骤102:利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据。
其中,所述子数据集的数量与所述行情数据集中数据表的数量相等。
具体来说,行情数据集中数据表与数据表之间的区别为功能不同,例如股票行情表、基金行情表、债券估值表等。
因Apache Flink可支持数据流的计算,并且兼具低延迟和高吞吐能力,所以上述预设转换算子以及预设计算规则的执行可基于Apache Flink实现,即利用Apache Flink中的预设转换算子在所述行情数据集中筛选,得到子数据集,并利用Apache Flink中的预设计算规则,处理所述子数据集,得到汇总数据。以下首先对行情数据集的筛选进行说明:上述预设转换算子对应于预设的数据处理逻辑,包括但不限于映射、过滤、扁平映射、按键分区、简单聚合、归约聚合、和自定义函数中的一种或多种。
上述预设转换算子一般结合过滤以及其它转换算子使用,以完成数据处理任务。经转换算子处理后的输出类型是单一的,处理后得到的仍然为数据流,参见图2。因此,尽管子数据流与前述行情数据所对应的数据流中数据不同,但二者均为实时更新的数据流,因此通过筛选子数据集可达到分门别类且同步保存(或处理)行情数据集中各数据表的目的。以下针对预设转换算子包括过滤算子和聚合算子时的实施方式进行说明:
首先,利用预设转换算子中的过滤算子,过滤所述行情数据集,筛选出目标数据。然后,基于目标数据中数据表的主键,对目标数据进行分区,即将目标数据中不同主键的数据表发至Apache Flink中不同的分区(partitions),相同主键的数据表发至Apache Flink中的同一分区,得到分区数据。显然上述目标数据至少被划分为两组分区数据。最后,利用聚合算子处理各分区数据,得到对应于子数据集的子数据流。
进一步地,在得到子数据集之后,还利用Apache Flink中预设计算规则,处理子数据集,得到汇总数据。以下提供两种实施方式。
第一种获取汇总数据的实施方式为预设计算规则包括基于预设时间窗口确定交易总量,即首先确定当前所处理的子数据集所对应的交易时刻。由于Kafka具备存储功能,因此可通过Kafka获取子交易时刻止向前一段,满足预设时间窗口的子数据集。即基于预设时间窗口(例如,5min,或15min)以及交易时刻,向消息中间件Kafka发送第一请求信息。其中,第一请求信息指示对应于预设时间窗口以及交易时间的第一待获取数据集。接着就可接收包括子数据集在内的第一待获取数据集,即前述对应于交易时刻的子数据集与其它位于预设时间窗口内的待获取子数据集一道作为子数据集构成第一待获取数据集。最后将第一待获取数据集中的待获取第一子数据集的值累加,得到汇总数据。也就是说,第一待获取数据为Kafka中存储的,由预设时间窗口所对应的时间长度的第一待获取子数据集(子数据流)组成,而将第一待获取数据集中第一待获取子数据集的值累加,实际上是累加第一待获取数据集中各键值对的值,从而得到汇总数据。
上述第一待获取数据集的主键与用于确定交易时刻时的子数据集的主键相同,即通过主键在Kafka所存储的海量数据中进行第一待获取数据集的匹配,然后根据滑动窗口(即预设时间窗口)确定第一待获取数据集。例如预设时间窗口为5min,Apache Flink确定当前分流得到的子数据集所对应的交易时刻为16时46分05秒,则借助Kafka可暂存数据流的特性,向Kafka请求获取自16时40分05秒至16时46分05秒的子数据集组成的第一待获取数据集。上述子数据集(子数据流)的划分不仅由主键决定,也与实时更新数据的频率相关。例如更新频率为0.5s时,则子数据集为主键相同的时间长度为0.5s的行情数据组成。
第二种获取汇总数据的方式为根据业务指令,汇总批次数据得到。即预设计算规则包括基于业务指令,以数据的批次为单位处理前述子数据集,以得到批次数据。其中,批次数据包括第一预设数量的子数据集。具体来说,响应于业务指令中批次数据所含的所述第一预设数量的子数据集,以及所述第二预设数量的所述批次数据,向消息中间件Kafka发送第二请求信息。其中,第二请求消息用于指示第二预设数量的批次数据组成的第二待获取数据,其中,第二待获取数据集中的第二待获取子数据集的主键与批次数据的主键相同。即Kafka在收到第二请求信息之后,同样基于批次数据集的主键在Kafka中存储的待获取的子数据集中进行匹配,并根据业务指令所指示的第一预设数量以及第二预设数量,确定第二待获取子数据集。
则在接收第二待获取子数据集之后,可在第二待获取数据集中,根据时间顺序,将第一预设数量的所述第二待获取子数据集组合,得到所述第二预设数量的所述批次数据;最后,确定各批次数据的值,并累加第二待获取数据集中批次数据的值,即可得到汇总数据。
上述(第一或第二)待获取子数据集与子数据集实际上为相同的子数据集,不同之处仅在于待获取子数据集为Kafka中存储的子数据集,而子数据集为Apache Flink中处理的子数据集。
步骤103:基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。
具体来说,因本申请实施例中通过主键进行子数据集以及汇总数据的同步,因此上述目标数据库为NoSQL类型的键值对(ke/value)数据库,则该目标数据库例如可以为Redis和/或Hbase,以通过主键(key)存储于目标数据库内对应的数据表中,从而实现子数据集以及汇总数据向Redis和/或Hbase的同步。以下进行具体说明:
由于行情数据集中的行情数据已在步骤101中转化为预设格式,而子数据集以及汇总数据的处理均不涉及格式的变化,即不涉及主键在对应数据中的相对位置。因此,在得到子数据集、汇总数据时,可先根据预设格式,确定子数据集的主键和汇总数据的主键。然后基于子数据集的主键,将子数据集添加至目标数据库(例如,Redis、Hbase)中同一主键的数据表中。并且,基于汇总数据集的主键,利用汇总数据覆盖目标数据库(例如,Redis、Hbase)中同一主键的数据表,从而达到动态、统一的实时获取数据,以及更新汇总数据的目的,以实时针对行情数据进行相应的风险监控计算。
进一步地,行情数据集来采集自至少两个数据源,而各源的行情数据或行情数据集具备更新速度快、数据量大的特点。因此目标数据库的读写速度不低于预设阈值,该预设阈值例如可以为1万/秒。因Resdis的读写性能较优(读写速度不低于8万/秒),所以本申请实施例优选目标数据库为Resdis。
基于同一发明构思,本申请实施例中提供一种处理行情数据的装置,该装置与前述图1所示处理行情数据的方法对应,该装置的具体实施方式可参见前述方法实施例部分的描述,重复之处不再赘述,参见图3,该装置包括:
采集单元301:用于采集行情数据集。
其中,所述行情数据集采集自至少两个数据源。
采集单元301具体用于接收所述至少两个数据源的数据模块所发送的实时数据流;或者,基于CDC捕获所述数据模块中的实时数据流;将所述实时数据流转化为预设格式,得到对应于所述行情数据集的数据流;其中,所述预设格式包括所述数据流中主键与所述主键的值之间的相对位置关系。
采集单元301还用于通过消息中间件Kafka,将所述数据流以所述预设格式接入所述预设转换算子,使所述预设转换算子对进行筛选。
筛选单元302:用于利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据。
其中,所述子数据集的数量与所述行情数据集中数据表的数量相等。
所述预设转换算子包括过滤算子和聚合算子,则筛选单元302具体用于利用所述过滤算子,过滤所述行情数据集,得到目标数据;基于所述目标数据中数据表的主键,对所述目标数据分区,得到分区数据;其中,所述目标数据对应至少两组所述分区数据;利用所述聚合算子处理所述分区数据,得到对应于所述子数据集的子数据流。
同步单元303:用于基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。
所述同步单元303具体用于基于所述子数据集、所述汇总数据以及所述预设格式,确定所述子数据集的主键和所述汇总数据的主键;基于所述子数据集的主键,将所述子数据集添加至所述目标数据库;基于所述汇总数据的主键,将所述汇总数据更新至所述目标数据库。
所述预设计算规则包括基于预设时间窗口确定交易总量;则所述同步单元303具体用于确定所述子数据集所对应的交易时刻;基于所述预设时间窗口以及所述交易时刻,向所述消息中间件Kafka发送第一请求信息;其中,所述第一请求信息指示对应于所述预设时间窗口以及所述交易时间的第一待获取数据集;所述第一待获取数据集中第一待获取子数据集的主键与所述子数据集的主键相同;接收所述第一待获取数据集;累加所述第一待获取数据集中所述第一待获取子数据集的值,得到所述汇总数据。
所述预设计算规则包括基于业务指令,以批次为单位处理所述子数据集,得到批次数据;其中,所述批次数据包括第一预设数量的所述子数据集;则所述同步单元303具体用于响应于所述业务指令中批次数据所含的所述第一预设数量的子数据集,以及所述第二预设数量的所述批次数据,向所述消息中间件Kafka发送第二请求信息;其中,所述第二请求信息指示由所述第二预设数量的所述批次数据组成的第二待获取数据集;所述第二待获取数据集中的第二待获取子数据集的主键与所述批次数据的主键相同;接收第二待获取数据集;在所述第二待获取数据集中,根据时间顺序,将所述第一预设数量的所述第二待获取子数据集组合,得到所述第二预设数量的所述批次数据;累加所述第二待获取数据集中所述批次数据的值,得到所述汇总数据。
基于同一发明构思,本申请实施例还提供一种可读存储介质,包括:
存储器,
所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上所述的处理行情数据的方法。
基于与上述数据管理方法相同的发明构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种处理行情数据的功能,参考图4,所述电子设备包括:
至少一个处理器401,以及与至少一个处理器401连接的存储器402,本申请实施例中不限定处理器401与存储器402之间的具体连接介质,图4中是以处理器401和存储器402之间通过总线400连接为例。总线400在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线400可以分为地址总线、数据总线、控制总线等,为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器401也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行前文论述数据管理方法。处理器401可以实现图2所示的装置中各个模块的功能。
其中,处理器401是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器401可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的处理行情数据的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器401进行设计编程,可以将前述实施例中介绍的数据管理方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的处理行情数据的步骤。如何对处理器401进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述数据管理方法。
在一些可能的实施方式中,本申请提供的处理行情数据的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据管理方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式中提供的处理行情数据的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (17)
1.一种处理行情数据的方法,其特征在于,包括:
采集行情数据集;其中,所述行情数据集采集自至少两个数据源;
利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据;其中,所述子数据集的数量与所述行情数据集中数据表的数量相等;
基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。
2.如权利要求1所述的方法,其特征在于,所述采集行情数据集,包括:
接收所述至少两个数据源的数据模块所发送的实时数据流;或者,基于CDC捕获所述数据模块中的实时数据流;
将所述实时数据流转化为预设格式,得到对应于所述行情数据集的数据流;其中,所述预设格式包括所述数据流中主键与所述主键的值之间的相对位置关系。
3.如权利要求2所述的方法,其特征在于,所述利用预设转换算子在所述行情数据集中筛选,得到子数据集,包括:
通过消息中间件Kafka,将所述数据流以所述预设格式接入所述预设转换算子,使所述预设转换算子对所述数据流进行筛选。
4.如权利要求2所述的方法,其特征在于,所述基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库,包括:
基于所述子数据集、所述汇总数据以及所述预设格式,确定所述子数据集的主键和所述汇总数据的主键;
基于所述子数据集的主键,将所述子数据集添加至所述目标数据库;
基于所述汇总数据的主键,将所述汇总数据更新至所述目标数据库。
5.如权利要求2-4任一项所述的方法,其特征在于,所述预设转换算子包括过滤算子和聚合算子;则所述利用预设转换算子在所述行情数据集中筛选,得到子数据集,包括:
利用所述过滤算子,过滤所述行情数据集,得到目标数据;
基于所述目标数据中数据表的主键,对所述目标数据分区,得到分区数据;其中,所述目标数据对应至少两组所述分区数据;
利用所述聚合算子处理所述分区数据,得到对应于所述子数据集的子数据流。
6.如权利要求1-4任一项所述的方法,其特征在于,所述预设计算规则包括基于预设时间窗口确定交易总量;则所述利用预设计算规则,处理所述子数据集,得到汇总数据,包括:
确定所述子数据集所对应的交易时刻;
基于所述预设时间窗口以及所述交易时刻,向所述消息中间件Kafka发送第一请求信息;其中,所述第一请求信息指示对应于所述预设时间窗口以及所述交易时间的第一待获取数据集;所述第一待获取数据集中第一待获取子数据集的主键与所述子数据集的主键相同;
接收所述第一待获取数据集;
累加所述第一待获取数据集中所述第一待获取子数据集的值,得到所述汇总数据。
7.如权利要求1-4任一项所述的方法,其特征在于,所述预设计算规则包括基于业务指令,以批次为单位处理所述子数据集,得到批次数据;其中,所述批次数据包括第一预设数量的所述子数据集;则所述利用预设计算规则,处理所述子数据集,得到汇总数据,包括:
响应于所述业务指令中批次数据所含的所述第一预设数量的子数据集,以及所述第二预设数量的所述批次数据,向所述消息中间件Kafka发送第二请求信息;其中,所述第二请求信息指示由所述第二预设数量的所述批次数据组成的第二待获取数据集;所述第二待获取数据集中的第二待获取子数据集的主键与所述批次数据的主键相同;
接收所述第二待获取数据集;
在所述第二待获取数据集中,根据时间顺序,将所述第一预设数量的所述第二待获取子数据集组合,得到所述第二预设数量的所述批次数据;
累加所述第二待获取数据集中所述批次数据的值,得到所述汇总数据。
8.一种处理行情数据的装置,其特征在于,包括:
采集单元:用于采集行情数据集;其中,所述行情数据集采集自至少两个数据源;
筛选单元:用于利用预设转换算子在所述行情数据集中筛选,得到子数据集,并利用预设计算规则,处理所述子数据集,得到汇总数据;其中,所述子数据集的数量与所述行情数据集中数据表的数量相等;
同步单元:用于基于所述子数据集的主键和所述汇总数据的主键,将所述子数据集和所述汇总数据同步至目标数据库。
9.如权利要求8所述的装置,其特征在于,所述采集单元具体用于接收所述至少两个数据源的数据模块所发送的实时数据流;或者,基于CDC捕获所述数据模块中的实时数据流;将所述实时数据流转化为预设格式,得到对应于所述行情数据集的数据流;其中,所述预设格式包括所述数据流中主键与所述主键的值之间的相对位置关系。
10.如权利要求9所述的装置,其特征在于,所述采集单元还用于通过消息中间件Kafka,将所述数据流以所述预设格式接入所述预设转换算子,使所述预设转换算子对数据流进行筛选。
11.如权利要求9所述的装置,其特征在于,所述同步单元具体用于基于所述子数据集、所述汇总数据以及所述预设格式,确定所述子数据集的主键和所述汇总数据的主键;基于所述子数据集的主键,将所述子数据集添加至所述目标数据库;基于所述汇总数据的主键,将所述汇总数据更新至所述目标数据库。
12.如权利要求9-11任一项所述的装置,其特征在于,所述预设转换算子包括过滤算子和聚合算子,则所述筛选单元具体用于利用所述过滤算子,过滤所述行情数据集,得到目标数据;基于所述目标数据中数据表的主键,对所述目标数据分区,得到分区数据;其中,所述目标数据对应至少两组所述分区数据;利用所述聚合算子处理所述分区数据,得到对应于所述子数据集的子数据流。
13.如权利要求8-11任一项所述的装置,其特征在于,所述预设计算规则包括基于预设时间窗口确定交易总量;则所述同步单元具体用于确定所述子数据集所对应的交易时刻;基于所述预设时间窗口以及所述交易时刻,向所述消息中间件Kafka发送第一请求信息;其中,所述第一请求信息指示对应于所述预设时间窗口以及所述交易时间的第一待获取数据集;所述第一待获取数据集中第一待获取子数据集的主键与所述子数据集的主键相同;接收所述第一待获取数据集;累加所述第一待获取数据集中所述第一待获取子数据集的值,得到所述汇总数据。
14.如权利要求8-11任一项所述的装置,其特征在于,所述预设计算规则包括基于业务指令,以批次为单位处理所述子数据集,得到批次数据;其中,所述批次数据包括第一预设数量的所述子数据集;则所述同步单元具体用于响应于所述业务指令中批次数据所含的所述第一预设数量的子数据集,以及所述第二预设数量的所述批次数据,向所述消息中间件Kafka发送第二请求信息;其中,所述第二请求信息指示由所述第二预设数量的所述批次数据组成的第二待获取数据集;所述第二待获取数据集中的第二待获取子数据集的主键与所述批次数据的主键相同;接收所述第二待获取数据集;在所述第二待获取数据集中,根据时间顺序,将所述第一预设数量的所述第二待获取子数据集组合,得到所述第二预设数量的所述批次数据;累加所述第二待获取数据集中所述批次数据的值,得到所述汇总数据。
15.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,以实现权利要求1-7中任一项所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310041484.3A CN116029731A (zh) | 2023-01-11 | 2023-01-11 | 一种处理行情数据的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310041484.3A CN116029731A (zh) | 2023-01-11 | 2023-01-11 | 一种处理行情数据的方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116029731A true CN116029731A (zh) | 2023-04-28 |
Family
ID=86081351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310041484.3A Pending CN116029731A (zh) | 2023-01-11 | 2023-01-11 | 一种处理行情数据的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116029731A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117390225A (zh) * | 2023-09-06 | 2024-01-12 | 苏州数设科技有限公司 | 一种工业数据处理方法、装置、电子设备及可读存储介质 |
-
2023
- 2023-01-11 CN CN202310041484.3A patent/CN116029731A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117390225A (zh) * | 2023-09-06 | 2024-01-12 | 苏州数设科技有限公司 | 一种工业数据处理方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271411B (zh) | 报表生成方法、装置、计算机设备及存储介质 | |
US8978034B1 (en) | System for dynamic batching at varying granularities using micro-batching to achieve both near real-time and batch processing characteristics | |
CN109344170B (zh) | 流数据处理方法、系统、电子设备及可读存储介质 | |
CN112948492A (zh) | 一种数据处理系统、方法、装置、电子设备及存储介质 | |
CN109359109B (zh) | 一种基于分布式流计算的数据处理方法及系统 | |
CN116029731A (zh) | 一种处理行情数据的方法、装置及电子设备 | |
CN113791586A (zh) | 一种新型的工业app与标识注册解析集成方法 | |
CN108710644A (zh) | 一种关于政务大数据处理方法 | |
CN110990350B (zh) | 日志的解析方法及装置 | |
CN110633318A (zh) | 一种数据提取的处理方法、装置、设备和存储介质 | |
CN111651522B (zh) | 一种数据同步方法及装置 | |
CN117332134A (zh) | 遥感卫星原始数据处理和管理方法、装置、设备及介质 | |
CN111401934A (zh) | 分布式广告统计方法以及装置 | |
CN114218173B (zh) | 传帐类交易文件的批处理系统、处理方法、介质和设备 | |
CN105446707B (zh) | 一种数据转换方法 | |
CN115422202A (zh) | 业务模型的生成方法、业务数据查询方法、装置及设备 | |
CN114116908A (zh) | 一种数据管理方法、装置及电子设备 | |
CN115269519A (zh) | 一种日志检测方法、装置及电子设备 | |
CN114661571A (zh) | 模型评测方法、装置、电子设备和存储介质 | |
CN113095832A (zh) | 一种多方对账方法、装置、存储介质和计算机设备 | |
CN111639936A (zh) | 交易信息的获取方法、装置、电子设备及可读存储介质 | |
CN110750563A (zh) | 多模型数据处理方法、系统、装置、电子设备及存储介质 | |
CN114448976B (zh) | 网络报文的组装方法、装置、设备、介质和程序产品 | |
CN113947490A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN115576991A (zh) | 一种基于FLink的多源实时数据的融合方法 |
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 |