CN109165192B - 一种数据存储方法及装置、一种计算设备及存储介质 - Google Patents

一种数据存储方法及装置、一种计算设备及存储介质 Download PDF

Info

Publication number
CN109165192B
CN109165192B CN201810678922.6A CN201810678922A CN109165192B CN 109165192 B CN109165192 B CN 109165192B CN 201810678922 A CN201810678922 A CN 201810678922A CN 109165192 B CN109165192 B CN 109165192B
Authority
CN
China
Prior art keywords
data
service
storage medium
associated data
service associated
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.)
Active
Application number
CN201810678922.6A
Other languages
English (en)
Other versions
CN109165192A (zh
Inventor
彭剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201810678922.6A priority Critical patent/CN109165192B/zh
Publication of CN109165192A publication Critical patent/CN109165192A/zh
Application granted granted Critical
Publication of CN109165192B publication Critical patent/CN109165192B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供的一种数据存储方法及装置、一种计算设备及存储介质,其中,所述方法包括:通过接收业务操作结果数据,根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数,然后将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质,最后根据预设规则从所述缓存队列中异步获取所述业务关联数据。

Description

一种数据存储方法及装置、一种计算设备及存储介质
技术领域
本说明书一个或多个实施例涉及计算机技术领域,特别涉及一种数据存储方法及装置、一种计算设备及存储介质。
背景技术
在进行数据存储时经常会需要将同一份数据在多个地方保存并且保证数据的一致性,而在一些数据存储的场景还会出现将同一份数据保存到两种类型的存储介质的情况,比如,将一份相同的数据存储在数据库的表结构,另外还要以文件行式进行存储。在对数据进行双存储时,对系统要用的实时数据的文档保存在数据库中,另外还会将该数据使用Git文件系统进行存储,以方便进行内容版本的管理,因为用户对文档的编写读取一般都会直接在数据库中操作,而对历史文档的操作时会从Git文件系统中获取相关的数据。
但是如果在进行文档编辑对数据存储的时候实时对两份数据进行强同步(也就是说只要一份数据写失败整个写将进行回滚)会带来一些性能问题,而且出现写失败的概率就会升高很多。如果在大量的数据进行写操作的时候这个问题会变得比较严重,特别是在写文件的耗时上是要比直接写数据库要高的很多。
发明内容
有鉴于此,本说明书一个或多个实施例提供了一种数据存储方法及装置、一种计算设备及存储介质,以解决现有技术中存在的技术缺陷。
本说明书一个或多个实施例的第一方面,公开了一种数据存储方法,包括:
接收业务操作结果数据;
根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数;
将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质;
根据预设规则从所述缓存队列中异步获取所述业务关联数据;
将所述业务关联数据存储至第二类型存储介质。
另一方面,本说明书一个或多个实施例的第二方面还提供了一种数据存储装置,包括:
接收模块,被配置为接收业务操作结果数据;
确定模块,被配置为根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数;
第一存储模块,被配置为将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质;
获取模块,被配置为根据预设规则从所述缓存队列中异步获取所述业务关联数据;
第二存储模块,被配置为将所述业务关联数据存储至第二类型存储介质。
另一方面,本说明书一个或多个实施例的第三方面还提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述数据存储方法的步骤。
另一方面,本说明书一个或多个实施例的第四方面还提供了一种计算机可读存储介质,其存储有计算机指令,该程序被处理器执行时实现如上所述数据存储方法的步骤。
本说明书一个或多个实施例提供的一种数据存储方法及装置、一种计算设备及存储介质,其中,所述方法包括:通过接收业务操作结果数据,根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数,然后将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质,最后根据预设规则从所述缓存队列中异步获取所述业务关联数据,并将所述业务关联数据再存储至第二类型存储介质。
附图说明
图1是本说明书一个或多个实施例提供的一种实现数据存储的系统架构图;
图2是本说明书一个或多个实施例提供的一种数据存储方法的流程图;
图3是本说明书一个或多个实施例提供的任务模型的结构示意图;
图4是本说明书一个或多个实施例提供的一种数据存储方法的时序图;
图5是本说明书一个或多个实施例提供的一种数据存储方法的时序图;
图6是本说明书一个或多个实施例提供的一种数据存储方法的流程图;
图7是本说明书一个或多个实施例提供的一种数据存储装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书一个或多个实施例。但是本说明书一个或多个实施例能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书一个或多个实施例内涵的情况下做类似推广,因此本说明书一个或多个实施例不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
首先对本说明书一个或多个实施例中使用到的技术术语进行解释。
模型对象:将一组数据按属性分类的数据集合,例如:人模型对象里有人的姓名,性别,身高等等数据。
Git:是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
在本说明书一个或多个实施例中,提供了一种数据存储方法及装置、一种计算设备及存储介质,在下面的实施例中逐一进行详细说明。
参见图1,本说明书一个或多个实施例提供了一种实现数据存储的系统架构图,包括业务数据库102、Git文件系统104、业务层106和计算设备108。
所述计算设备108包括但不限于存储器110、处理器112、通信接口114以及总线116。
所述业务数据库102、所述Git文件系统104以及所述业务层106分别与所述通信接口114完成相互间的通信。
所述处理器112、所述通信接口114和存储器110通过总线116完成相互间的通信。
所述业务数据库102,被配置为接收通过通信接口114传送的需要存储在所述业务数据库102的业务操作结果数据。
所述Git文件系统104,被配置为接收通过通信接口114传送的需要存储在所述Git文件系统的业务操作结果数据。
所述业务层106,被配置为通过所述通信接口114向所述存储器110发送业务操作结果数据。
所述通信接口114,被配置为接收所述业务层106发送的业务操作结果数据,然后通过总线116发送至存储器110,并将经过所述处理器112执行后的所述业务操作结果数据发送至所述业务数据库102和Git文件系统104进行双存储。
通信接口114使得计算设备108能够经由一个或多个网络通信。这些网络的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。网络接口可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
存储器110,被配置为存储通信接口114通过总线116发送的业务操作结果数据以及存储在存储器110上并可在处理器112上运行的计算机指令。
处理器112,被配置为获取存储在存储器110的业务操作结果数据后,执行存储在存储器110上的计算机指令,实现数据存储方法的相关步骤。计算设备108可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。
其中,处理器112可以执行图2所示方法中的步骤。图2是示出了说明书一个或多个实施例提供的数据存储方法的示意性流程图,包括步骤202至步骤210。
步骤202:接收业务操作结果数据。
本说明书一个或多个实施例中,所述业务操作结果数据记录业务的每一步操作所对应的结果。以购买业务为例,所述购买业务对应有进入购物网站后的页面浏览操作,对需要购买物品的选择操作、以及对购买该物品的付款操作等,相应的上述操作均有对应的结果,例如所述页面浏览操作对应的结果包括进入购物网站浏览的所有页面名称,所述物品选择操作对应的结果包括需要购买物品的物品数量、物品颜色和物品型号等,所述付款操作对应的结果包括支付金额以及选择的支付银行等。
本说明书一个或多个实施例中,所述业务操作结果数据还可以包括订单支付数据、订单取消数据和/或支付源选择数据。
实际应用中,可以将所述业务操作结果数据转换成对应的数据模型,方便所述业务操作结果数据在后续进行存储和使用。所述数据模型的结构可以根据实际需要存储的存储介质类型进行设置,本说明书的一个或多个实施例对此不作任何限定。
步骤204:根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数。
本说明书一个或多个实施例中,所述业务操作对应的相关参数包括但不限于进行业务操作的操作者、进行业务操作的操作时间、所述业务操作对应的类以及方法,即进行业务操作过程中需要使用到的所有的参数。
其中,类是具有相同数据成员和函数成员的一组对象的集合,而方法则是解释这些数据成员和函数成员有什么样的作用;举例说明,如果人是一个类,那么人的所有行为动作则均可以定位为人这个类的方法。
仍以买书业务为例,小A在2018年3月1日15点30分在某宝购物网站上购买了一本价格为20元的成语字典,那么所述买书业务操作对应的相关参数包括进行买书业务操作的操作者小A、进行买书业务操作的操作时间2018年3月1日15点30分,所述买书业务操作对应的类则是人,所述买书业务操作对应的类下的方法则可以是购买或下订单。
根据所述业务操作结果数据确定业务关联数据,即为根据所述业务操作结果数据可以得出所述业务关联数据包括哪些。若所述业务操作结果数据包括打开某宝购物网站、输入的购买物品名称、购买物品数量、付款信息等,则可以根据所述业务操作结果数据确定该业务应该为购买业务,而购买业务对应的会有购买操作人、购买操作时间以及购买操作对应的类以及方法等。
步骤206:将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质。
本说明书的一个或多个实施例中,队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
所述第一类型存储介质包括业务数据库,以所述第一类型存储介质为业务数据库为例,将所述业务关联数据从队列的队尾添加至缓存队列,并将所述业务操作结果数据存储至业务数据库的表结构中,若出现任何的数据处理异常,则存储在所述业务数据库的表结构中的业务操作结果数据就将进行回滚。其中,回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。
实际应用中,可以将所述业务关联数据以任务模型的形式添加至缓存队列,所述任务模型的结构参见图3,包括数据模型302(DataModel)、操作者304(Actor)、进行业务操作的操作时间306(ActionTime)、所述业务操作对应的类(Class)308以及方法310(Method),所述任务模型均携带有一个唯一ID,用于标识该任务模型。所述任务模型的数据存储结构见表1。
表1
Figure BDA0001710469260000081
步骤208:根据预设规则从所述缓存队列中异步获取所述业务关联数据。
本说明书的一个或多个实施例中,所述预设规则包括但不限于预设的时间间隔等。采用异步获取的方式是了将从所述缓存队列中获取所述业务关联数据与将所述业务关联数据添加至缓存队列进行解耦,若所述业务操作结果数据存储至第一类型存储介质失败发生回滚,不会影响从所述缓存队列中获取添加至缓存队列的所述业务关联数据,更不会影响所述缓存队列中已经添加的业务关联数据存储至第二类型存储介质的操作,系统耗时较少。
本说明书的一个或多个实施例中,以预设的时间间隔为所述预设规则为例进行说明。
将所述业务操作结果数据存储至第一类型存储介质之后,可以根据预设的时间间隔从所述缓存队列中异步获取预设数量的所述业务关联数据。
所述预设的时间间隔可以根据实际应用中系统的处理速度进行设定,例如设置每隔3秒从所述缓存队列中异步获取预设数量的所述业务关联数据,或者是设置每隔5秒从所述缓存队列中异步获取预设数量的所述业务关联数据。
所述预设数量也可以根据实际需求进行实时调整,为了方便描述,本说明书一个或多个实施例中,可以以预设数量为100条进行说明。
例如,每隔3秒从所述缓存队列的队头异步获取100条所述业务关联数据,获取之后,所述缓存队列将需要异步获取的100条所述业务关联数据进行返回,进行下一步的操作。
本说明书的一个或多个实施例中,异步获取到预设数量的所述业务关联数据之后,解析所述业务关联数据,对所述业务关联数据进行分类。
解析所述业务关联数据即是读取所述业务关联数据中的业务操作结果数据以及所述业务操作对应的相关参数,然后对所述业务操作结果数据以及所述业务操作对应的相关参数进行分类,确定出正确的所述业务关联数据。避免所述业务关联数据添加至缓存队列中发生丢失,造成解析出的所述业务关联数据混乱的情况发生。
实际应用中,可以将异步获取到的所述业务关联数据转换为对应的任务模型,然后再解析该任务模型,得到所述操作者、操作时间、所述业务操作对应的类以及方法。
步骤210:将所述业务关联数据存储至第二类型存储介质。
本说明书一个或多个实施例中,所述第二类型存储介质包括git文件系统。
本说明书一个或多个实施例中,将所述业务关联数据存储至第二类型存储介质之前,还包括:
采用java反射机制调用所述业务操作对应的类下的方法,得到所述业务操作的行为数据。
根据所述业务关联数据中具体进行所述业务操作时对应的类以及方法,采用java反射机制调用所述业务操作对应的类下的方法,得到所述业务操作的行为数据,可以对所述业务操作的行为进行详细记录。
本说明书一个或多个实施例中,得到所述业务操作的行为数据之后,还包括:
根据所述业务操作对应的类以及方法和所述业务操作结果数据确定存储路径。
然后将所述业务操作的行为数据、所述业务操作结果数据、操作者和操作时间按照所述存储路径存储至第二类型存储介质。
例如,将一份相同类型的数据一个写到数据库的A表中,一个写到远程硬盘存储的文件中,然后做一个定时任务将数据库的A表中的数据以异步的方式,获取数据库的A表中的增量数据,通过将数据库表结构数据转换成文件存储数据之后再写到远程硬盘存储中去。若此时可以得到所述生成增量数据时的行为数据,就知道该增量数据是如何变更的,用户对A表的字段进行了几次修改操作等。数据库中只会记录最终的数据,而文件同步存储数据时不仅会记录最终的数据,还会记录A表中的字段是经过几次修改、分别是什么时间由哪些人做了什么样的修改才变成最终的数据,数据记录完整,有效记录用户对数据修改行为信息的保存,实现数据的可追溯性。
本说明书一个或多个实施例中,将所述业务关联数据存储至第二类型存储介质之后,还包括:
若所述业务关联数据存储至第二类型存储介质成功,则删除所述缓存队列中的所述业务关联数据,避免造成系统拥堵。
若所述业务关联数据存储至第二类型存储介质失败,则将所述业务关联数据重新添加至所述缓存队列的队尾进行等待获取重试。
本说明书一个或多个实施例中,可以将一份业务操作结果数据实现不同存储介质的双存储,可以有效的解决对业务操作结果数据进行双写存储时的性能问题,数据存储耗时较少,并且将所有的所述业务关联数据保存到一个缓存队列中,然后依次执行所述业务关联数据中的类和方法,可以最原始的还原用户的执行过程,有效记录用户对业务操作结果数据修改的行为信息,以保存用户行为的方式将用户的业务操作信息保存起来从而做到异步化,缓存队列可以存储任何的执行任务,扩展性强。
将本说明书一个或多个实施例提供的一种数据存储方法,从将业务操作结果数据存储至第一类型存储介质和将所述业务操作结果数据、所述业务操作对应的相关参数以及根据所述业务操作对应的相关参数得到的业务操作行为数据异步存储至第一类型存储介质为例进行分别说明。
参见图4,本说明书一个或多个实施例提供了一种数据存储方法,实现将所述业务操作结果数据存储至业务数据库,包括步骤402至步骤426。
步骤402:发送业务操作结果数据至业务操作结果数据存储接口。
本说明书一个或多个实施例中,所述业务操作结果数据包括业务操作时用户的所有行为数据。
步骤404:所述业务操作结果数据存储接口接收用户发送的业务操作结果数据,并将所述业务操作结果数据转换成对应的数据模型。
本说明书一个或多个实施例中,所述数据模型的结构可以根据实际需要存储的存储介质类型进行设置,本说明书的一个或多个实施例对此不作任何限定。
步骤406:对所述数据模型进行处理。
本说明书一个或多个实施例中,对所述数据模型进行处理包括但不限于对所述数据模型中的业务操作结果数据进行数据验证等。
步骤408:开启一个数据库事务。
本说明书一个或多个实施例中,所述数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。
以网上购物对应的数据库事务为例,可以包括以下几步数据库操作:
一、更新客户所购商品的库存信息;
二、保存客户付款信息--可能包括与银行系统的交互;
三、生成订单并且保存到数据库中;
四、更新用户相关信息,例如购物数量等等。
一般情况下,若以上操作顺利进行,则可以获得交易成功的结果,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了出现错误或者异常,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态,恢复至网上购物前的状态,即数据库库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。
若一个数据库事务包括开始到结束,则可以保证数据库中所有数据的稳定性,而在数据库事务的操作过程中即所述数据库事务关闭结束之前,数据库中的所有数据都可以进行回滚。
步骤410:将所述数据模型作为实时数据存储到业务数据库中。
本说明书一个或多个实施例中,实时数据是在某事发生、发展过程中的同一时间中所得信息的载体,是用于表示客观事物的未经加工的的原始素材。即所述数据模型当前仅保存在业务数据库的内存中,当所述数据库事务结束之后会转换成永久存储在所述业务数据库中。
步骤412:所述业务数据库返回所述数据模型存储的结果。
本说明书一个或多个实施例中,返回所述数据模型存储的结果包括但不限于存储成功的弹窗提示、邮件回复或短信提示等。
步骤414:创建任务模型。
本说明书一个或多个实施例中,所述任务模型根据实际需要进行模型结构的设置。
步骤416:根据所述业务操作结果数据得到操作者、进行业务操作的操作时间,并将所述操作者、所述操作时间写入于所述任务模型中,并为所述任务模型生成一个唯一ID。
步骤418:将根据所述业务操作结果数据确定的用户行为转换成所述业务操作对应的类以及方法,并将所述类和所述方法写入所述任务模型。
本说明书一个或多个实施例中,若所述业务操作结果数据包括点击进入购买网站、在购买页面选择的书名和数量,则可以确定所述用户行为为购买书的行为,然后将所述购买书的行为转换成购买书的操作对应的类和方法。
步骤420:将数据模型写入任务模型。
本说明书一个或多个实施例中,所述任务模型中包括数据模型(DataModel)、操作者(Actor)、进行业务操作的操作时间(ActionTime)、所述业务操作对应的类(Class)以及方法(Method)。
步骤422:完成整个任务模型的生成工作后,将所述任务模型中的数据由缓存队列的队尾添加至所述缓存队列中。
步骤424:所述缓存队列返回添加的结果。
本说明书一个或多个实施例中,所述缓存队列返回添加的结果包括但不限于添加所述缓存队列后的弹窗提示、邮件回复或短信提示等。
步骤426:提交一个数据库事务,所述数据模型转为永久存储至所述业务数据库。
本说明书一个或多个实施例中,对所述业务操作结果数据进行存储至业务数据库的情况下,将任务模型中的数据放在缓存队列中就结束了该数据库事务,后续的缓存队列中的任务模型中的数据与存储至业务数据库的所述业务操作结果数据进行解耦,若所述业务操作结果数据存储至所述业务数据库出现异常回滚,不会影响添加至缓存队列中的任务模型中的数据,不会因为数据存储强同步产生大量的耗时。
参见图5,本说明书一个或多个实施例提供了一种数据存储方法,实现将所述业务操作结果数据以及所述业务操作对应的相关参数存储至Git文件系统,包括步骤502至步骤526。
步骤502:定时器定时发起异步获取任务到分发器。
步骤504:所述分发器从缓存队列中获取100条上述任务模型中的数据。
步骤506:所述缓存队列返回所述分发器需要获取的数据。
步骤508:将所述数据转换为对应的任务模型。
步骤510:解析所述任务模型。
步骤512:获取所述任务模型中的数据模型(DataModel)、操作者(Actor)、进行业务操作的操作时间(ActionTime)、所述业务操作对应的类(Class)以及方法(Method)。
步骤514:采用java反射机制调用所述业务操作对应的类(Class)下的方法(Method),得到所述业务操作的行为数据,并将所述任务模型中的数据传递给执行器。
步骤516:所述执行器根据Class、Method和DataModel生成Git文件系统的存储路径。
步骤518:将DataModel、Actor、ActionTime以及所述业务操作的行为数据以文件的形式存储至指定路径的Git文件系统中。
步骤520:Git文件系统文件创建好后,做Git文件系统的add以及commit操作,并提交此次版本修改的数据。
本说明书一个或多个实施例中,所述版本修改的数据包括但不限于所述Git文件系统中添加了哪些数据、修改了哪些数据、由谁进行的修改以及修改时间等等。所述Git文件系统中不仅需要保存DataModel、Actor、ActionTime以及所述业务操作的行为数据,还需要保存用户修改的版本数据。
步骤522:执行Git push命令,将此次版本修改的数据push到远程的Git文件系统中。
步骤524:所述执行器发送任务处理完成信息到所述分发器。
步骤526:若所述DataModel、Actor、ActionTime以及所述业务操作的行为数据存储至Git文件系统成功,则删除所述缓存队列中对应的任务模型的数据;若存储失败,则将所述任务模型的数据重新添加至所述缓存队列的队尾进行等待下次获取重试。
本说明书一个或多个实施例中,将所有的业务操作结果数据和所述业务操作相关的参数添加至缓存队列中,执行器依次执行用户的业务操作可以最原始的还原用户的业务执行过程,并且使用Git文件系统来存储文件比普通的文件更具有文件版本控制的优势,可以根据针对此文件查看,回滚历史版本的内容。另外,缓存队列可以存储任何的执行任务,扩展性强,只要根据用户的任务类型不同编写不同的执行器即可达到处理任何任务的目的。
参见图6,本说明书一个或多个实施例提供了一种数据存储方法,包括步骤602至步骤610。
步骤602:接收用户购买衣服的购买行为结果数据。
本说明书一个或多个实施例中,所述购买行为结果数据包括但不限于完成购买衣服业务,最终选择的衣服颜色、确定的衣服型号、支付订单数据、和/或选择支付源数据等。
步骤604:根据所述行为结果数据确定购买衣服的购买关联数据,所述购买衣服的购买关联数据包括所述购买行为结果数据以及所述购买衣服对应的相关参数。
本说明书一个或多个实施例中,所述购买衣服对应的相关参数包括进行购买的操作者、进行购买的操作时间以及所述购买行为对应的类以及方法。
步骤606:将所述购买关联数据添加至缓存队列,并将所述购买行为结果数据存储至业务数据库。
步骤608:根据每3秒的时间间隔从所述缓存队列中异步获取100条所述购买关联数据。
本说明书一个或多个实施例中,从所述缓存队列中异步获取100条所述购买关联数据后,采用java反射机制调用所述购买行为对应的类下的方法,得到所述购买衣服过程中的行为数据,以记录用户在购买的过程中修改了哪些数据,例如是否进行衣服型号的调整或者是衣服数量的增减等。
步骤610:将所述购买关联数据存储至Git文件系统。
本说明书一个或多个实施例中,将所述购买关联数据存储至Git文件系统中,即为将所述购买衣服过程中的行为数据、操作者和操作时间存储至Git文件系统中。
本说明书一个或多个实施例的数据存储方法,在对用户购买衣服行为中产生的数据进行双写存储时,只需要存储一份数据外加一个存储任务的缓存队列即可有效的解决数据进行双写产生的性能问题,因为只存储一个任务数据的耗时较低,并且将后续的所有的数据存储操作将保存到一个缓存队列中,执行器可以依次执行用户的数据存储操作,还可以根据所述数据最原始的还原用户的执行过程。另外,使用git文件系统来存储数据比普通的文件具有文件版本控制的优势,可以根据针对此数据查看,回滚历史版本的内容,用户体验效果较好。
参见图7,本说明书一个或多个实施例提供了一种数据存储装置,包括:
接收模块702,被配置为接收业务操作结果数据;
确定模块704,被配置为根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数;
第一存储模块706,被配置为将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质;
获取模块708,被配置为根据预设规则从所述缓存队列中异步获取所述业务关联数据;
第二存储模块710,被配置为将所述业务关联数据存储至第二类型存储介质。
可选地,获取模块708被配置为根据预设的时间间隔从所述缓存队列中异步获取预设数量的所述业务关联数据。
可选地,所述装置还包括:
解析模块,被配置为解析所述业务关联数据,对所述业务关联数据进行分类。
可选地,所述装置还包括:
删除模块,配置为若所述业务关联数据存储至第二类型存储介质成功,则删除所述缓存队列中的所述业务关联数据。
可选地,所述装置还包括:
添加模块,配置为若所述业务关联数据存储至第二类型存储介质失败,则将所述业务关联数据重新添加至所述缓存队列。
可选地,所述业务操作对应的相关参数包括操作者、操作时间、所述业务操作对应的类以及装置。
可选地,所述装置还包括:
调用模块,被配置为采用java反射机制调用所述业务操作对应的类下的装置,得到所述业务操作的行为数据。
可选地,所述装置还包括:
存储路径选取模块,被配置为根据所述业务操作对应的类以及装置和所述业务操作结果数据确定存储路径。
可选地,所述第二存储模块710被配置为将所述业务操作的行为数据、所述业务操作结果数据、操作者和操作时间按照所述存储路径存储至第二类型存储介质。
可选地,所述第一类型存储介质包括业务数据库。
可选地,所述第二类型存储介质包括git文件系统。
可选地,所述业务操作结果数据包括支付订单数据、取消订单数据和/或选择支付源数据。
本说明书一个或多个实施例中,可以将一份业务操作结果数据实现不同存储介质的双存储,可以有效的解决对业务操作结果数据进行双写存储时的性能问题,数据存储耗时较少,并且将所有的所述业务关联数据保存到一个缓存队列中,然后依次执行所述业务关联数据中的类和方法,可以最原始的还原用户的执行过程,有效记录用户对业务操作结果数据修改的行为信息,以保存用户行为的方式将用户的业务操作信息保存起来从而做到异步化,缓存队列可以存储任何的执行任务,扩展性强。
本说明书一个或多个实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述数据存储方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据存储方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
本说明书一个或多个实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述数据存储方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据存储方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
本说明书一个或多个实施例中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书一个或多个实施例中所述支付涉及的技术载体,例如可以包括近场通信(New Field Communication,NFC)、WIFI、3G/4G/5G、POS机刷卡技术、二维码扫码技术、条形码扫描技术、蓝牙、红外、短消息(Short Message Service,SMS)、多媒体消息(MultimediaMessage Service,MMS)等。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书一个或多个实施例并不受所描述的动作顺序的限制,因为依据本说明书一个或多个实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书一个或多个实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书一个或多个实施例优选实施例只是用于帮助阐述本说明书一个或多个实施例。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书一个或多个实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书一个或多个实施例。本说明书一个或多个实施例仅受权利要求书及其全部范围和等效物的限制。

Claims (26)

1.一种数据存储方法,其特征在于,包括:
接收业务操作结果数据,其中,所述业务操作结果数据记录业务的每一步操作所对应的结果;
根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数;
将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质;
根据预设规则从所述缓存队列中异步获取所述业务关联数据;
将所述业务关联数据存储至第二类型存储介质。
2.根据权利要求1所述的方法,其特征在于,根据预设规则从所述缓存队列中异步获取所述业务关联数据包括:
根据预设的时间间隔从所述缓存队列中异步获取预设数量的所述业务关联数据。
3.根据权利要求2所述的方法,其特征在于,根据预设的时间间隔从所述缓存队列中异步获取预设数量的所述业务关联数据之后,还包括:
解析所述业务关联数据,对所述业务关联数据进行分类。
4.根据权利要求1所述的方法,其特征在于,将所述业务关联数据存储至第二类型存储介质之后,还包括:
若所述业务关联数据存储至第二类型存储介质成功,则删除所述缓存队列中的所述业务关联数据。
5.根据权利要求1所述的方法,其特征在于,将所述业务关联数据存储至第二类型存储介质之后,还包括:
若所述业务关联数据存储至第二类型存储介质失败,则将所述业务关联数据重新添加至所述缓存队列。
6.根据权利要求1所述的方法,其特征在于,所述业务操作对应的相关参数包括操作者、操作时间、所述业务操作对应的类以及方法。
7.根据权利要求6所述的方法,其特征在于,将所述业务关联数据存储至第二类型存储介质之前,还包括:
采用java反射机制调用所述业务操作对应的类下的方法,得到所述业务操作的行为数据。
8.根据权利要求7所述的方法,其特征在于,得到所述业务操作的行为数据之后,还包括:
根据所述业务操作对应的类以及方法和所述业务操作结果数据确定存储路径。
9.根据权利要求8所述的方法,其特征在于,将所述业务关联数据存储至第二类型存储介质包括:
将所述业务操作的行为数据、所述业务操作结果数据、操作者和操作时间按照所述存储路径存储至第二类型存储介质。
10.根据权利要求1所述的方法,其特征在于,所述第一类型存储介质包括业务数据库。
11.根据权利要求1所述的方法,其特征在于,所述第二类型存储介质包括git文件系统。
12.根据权利要求1所述的方法,特征在于,所述业务操作结果数据包括订单支付数据、订单取消数据和/或支付源选择数据。
13.一种数据存储装置,其特征在于,包括:
接收模块,被配置为接收业务操作结果数据,其中,所述业务操作结果数据记录业务的每一步操作所对应的结果;
确定模块,被配置为根据所述业务操作结果数据确定业务关联数据,所述业务关联数据包括所述业务操作结果数据以及所述业务操作对应的相关参数;
第一存储模块,被配置为将所述业务关联数据添加至缓存队列,并将所述业务操作结果数据存储至第一类型存储介质;
获取模块,被配置为根据预设规则从所述缓存队列中异步获取所述业务关联数据;
第二存储模块,被配置为将所述业务关联数据存储至第二类型存储介质。
14.根据权利要求13所述的装置,其特征在于,获取模块被配置为根据预设的时间间隔从所述缓存队列中异步获取预设数量的所述业务关联数据。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
解析模块,被配置为解析所述业务关联数据,对所述业务关联数据进行分类。
16.根据权利要求13所述的装置,其特征在于,所述装置还包括:
删除模块,配置为若所述业务关联数据存储至第二类型存储介质成功,则删除所述缓存队列中的所述业务关联数据。
17.根据权利要求13所述的装置,其特征在于,所述装置还包括:
添加模块,配置为若所述业务关联数据存储至第二类型存储介质失败,则将所述业务关联数据重新添加至所述缓存队列。
18.根据权利要求13所述的装置,其特征在于,所述业务操作对应的相关参数包括操作者、操作时间、所述业务操作对应的类以及装置。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
调用模块,被配置为采用java反射机制调用所述业务操作对应的类下的装置,得到所述业务操作的行为数据。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
存储路径选取模块,被配置为根据所述业务操作对应的类以及装置和所述业务操作结果数据确定存储路径。
21.根据权利要求20所述的装置,其特征在于,所述第二存储模块被配置为将所述业务操作的行为数据、所述业务操作结果数据、操作者和操作时间按照所述存储路径存储至第二类型存储介质。
22.根据权利要求13所述的装置,其特征在于,所述第一类型存储介质包括业务数据库。
23.根据权利要求13所述的装置,其特征在于,所述第二类型存储介质包括git文件系统。
24.根据权利要求13所述的装置,特征在于,所述业务操作结果数据包括订单支付数据、订单取消数据和/或支付源选择数据。
25.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-12任意一项所述方法的步骤。
26.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-12任意一项所述方法的步骤。
CN201810678922.6A 2018-06-27 2018-06-27 一种数据存储方法及装置、一种计算设备及存储介质 Active CN109165192B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810678922.6A CN109165192B (zh) 2018-06-27 2018-06-27 一种数据存储方法及装置、一种计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810678922.6A CN109165192B (zh) 2018-06-27 2018-06-27 一种数据存储方法及装置、一种计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN109165192A CN109165192A (zh) 2019-01-08
CN109165192B true CN109165192B (zh) 2022-02-11

Family

ID=64897316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810678922.6A Active CN109165192B (zh) 2018-06-27 2018-06-27 一种数据存储方法及装置、一种计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN109165192B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928656B (zh) * 2019-11-18 2023-02-28 浙江大搜车软件技术有限公司 一种业务处理方法、装置、计算机设备和存储介质
CN111198892A (zh) * 2019-12-24 2020-05-26 泰康保险集团股份有限公司 信息处理方法、装置、电子设备及存储介质
CN111242621B (zh) * 2020-01-16 2023-07-28 广州虎牙科技有限公司 交易数据存储方法、装置、设备及存储介质
CN111666045A (zh) * 2020-05-15 2020-09-15 深圳市大富网络技术有限公司 基于Git系统的数据处理方法、系统、设备及存储介质
CN112162883B (zh) * 2020-09-27 2024-10-18 北京浪潮数据技术有限公司 一种副本数据恢复方法、系统、电子设备及存储介质
CN112506915B (zh) * 2020-10-27 2024-05-10 百果园技术(新加坡)有限公司 一种应用数据的管理系统以及处理方法、装置和服务器
CN114090013A (zh) * 2021-11-24 2022-02-25 中国银行股份有限公司 确定可执行代码文件的变更集的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955792A (zh) * 2011-08-23 2013-03-06 崔春明 一种实时全文搜索引擎事务处理的实现方法
CN102831156B (zh) * 2012-06-29 2014-12-31 浙江大学 一种云计算平台上的分布式事务处理方法
CN103886079B (zh) * 2014-03-26 2018-03-30 北京京东尚科信息技术有限公司 一种数据处理方法和系统

Also Published As

Publication number Publication date
CN109165192A (zh) 2019-01-08

Similar Documents

Publication Publication Date Title
CN109165192B (zh) 一种数据存储方法及装置、一种计算设备及存储介质
US10943274B2 (en) Automation and digitizalization of document processing systems
US8392288B1 (en) Add-on to software application to identify electronic receipt data
US11526579B1 (en) System and methods for performing automatic data aggregation
US11710076B2 (en) Method, apparatus, and computer program product for machine learning model lifecycle management
Hu et al. A novel framework for inverse procedural texture modeling
US20200387372A1 (en) Microservice file generation system
US11250433B2 (en) Using semi-supervised label procreation to train a risk determination model
US11501322B2 (en) Blockchain-based data processing systems, methods, and apparatuses
US10922633B2 (en) Utilizing econometric and machine learning models to maximize total returns for an entity
US11704363B2 (en) System and method for generating highly scalable temporal graph database
CN110347692B (zh) 基于缓存的库存管理方法以及装置
CA2895033A1 (en) System and method for financial transaction management
US20220051270A1 (en) Event analysis based on transaction data associated with a user
WO2021188214A1 (en) Intelligent ranking of search results
CN112214508A (zh) 数据处理方法及装置
AU2015265596B2 (en) System and method for recording the beginning and ending of job level activity in a mainframe computing environment
CN112016028A (zh) 一种信息记录方法及装置、信息存储方法、装置及系统
US10394690B1 (en) Serialize view model for debugging and application support
CN117473457B (zh) 基于数字化业务的大数据挖掘方法及系统
WO2022094939A1 (zh) 一种基于多任务作业环境之多工悬浮式可视框架应用处理方法及系统
US20210233082A1 (en) Fraud detection via incremental fraud modeling
CN113391933A (zh) 一种处理资金的方法
TWM610290U (zh) 一種基於多工作業環境之多工懸浮式可視框架應用處理系統
CN113220187A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240208

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: 27 Hospital Road, George Town, Grand Cayman ky1-9008

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands