CN110399089B - 数据存储方法、装置、设备和介质 - Google Patents
数据存储方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN110399089B CN110399089B CN201810355324.5A CN201810355324A CN110399089B CN 110399089 B CN110399089 B CN 110399089B CN 201810355324 A CN201810355324 A CN 201810355324A CN 110399089 B CN110399089 B CN 110399089B
- Authority
- CN
- China
- Prior art keywords
- data processing
- attribute information
- storage
- data
- processing node
- 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
Links
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据存储方法和装置。所述方法包括:获取数据处理节点的属性信息,之后根据属性信息确定持久化存储规则,再基于持久化存储规则,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据存储方法、一种数据存储装置、一种计算机设备、一种计算机可读存储介质。
背景技术
随着信息化的发展,人们处理工作越来越依赖计算机,利用计算机处理工作中的各种数据。工作都有一个流程,流程是由多个处理数据的节点构成的,在各个节点上处理各自的数据处理任务。在执行一个流程的过程中,需要在不同的节点之间变化,通常是由流程引擎根据流程当前所处的状态以及用户的操作来确定,流程应该变化到哪一个节点,即,流程引擎来控制相关节点的调度工作。
流程引擎作为应用***的一部分,并为之提供对各应用***有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。流程引擎包括了流程的节点管理、流向管理等重要功能。
节点处理数据的结果的持久化是一个流程引擎必不可少的组成部分,所谓“持久化”是相对“非持久化”而言,相对于缓存中的数据来说,内存中的数据就是持久化的,相对于内存中的数据来说,硬盘中的数据就是持久化的,也就是说,持久化的数据比非持久化的数据更加非易失。
申请人经研究发现,大量的复杂互联网产品都需要使用流程引擎作为核心业务的驱动,但是传统流程引擎无法提供灵活多样的持久化方式,来满足各种复杂产品带来的各种持久化需求,简言之,传统的流程引擎支持的持久化方式单一,无法适应复杂需求。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储方法,数据存储装置,以及计算机设备、计算机可读存储介质。
依据本申请的一个方面,提供了一种数据存储方法,包括:
获取数据处理节点的属性信息;
根据所述属性信息确定持久化存储规则;
基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
可选地,所述持久化存储规则包括序列化存储或范式存储。
可选地,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种。
可选地,所述根据所述属性信息确定持久化存储规则包括:
根据所述属性信息的数值范围,确定持久化存储规则。
可选地,所述根据所述属性信息的数值范围,确定持久化存储规则包括:
若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
可选地,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述根据所述属性信息确定持久化存储规则包括:
根据所述属性信息是否包括设定属性信息确定持久化存储规则。
可选地,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述获取数据处理节点的属性信息包括:
获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
可选地,所述方法还包括:
将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
可选地,所述方法还包括:
根据所述数据处理节点的属性信息确定持久化存储的存储容器。
可选地,所述根据所述数据处理节点的属性信息确定持久化存储的存储容器包括:
获取所述数据处理节点所属数据处理流程的生命周期;
选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
可选地,所述方法还包括:
根据所述数据处理节点的属性信息确定持久化存储的文件形式。
可选地,所述根据所述数据处理节点的属性信息确定持久化存储的文件形式包括:
检测所述数据处理节点的数据处理任务中是否包括数据库调用;
若包括数据库调用,则确定持久化存储的文件形式包括数据库;
若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
可选地,所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储包括:
调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
可选地,所述序列化存储包括:
获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
按序组合多种子数据后转换为设定格式的字符串。
可选地,所述序列化存储还包括:
在转换得到的字符串中添加序列化版本标识。
可选地,在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,所述方法还包括:
根据上一数据处理节点的结果数据将所述数据处理流程驱动至当前数据处理节点;
执行当前数据处理节点对应的数据处理任务。
相应地,本申请还提供了一种数据存储装置,包括:
信息获取模块,用于获取数据处理节点的属性信息;
规则确定模块,用于根据所述属性信息确定持久化存储规则;
持久化存储模块,用于基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
可选地,所述持久化存储规则包括序列化存储或范式存储。
可选地,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种。
可选地,所述规则确定模块包括:
第一规则确定子模块,用于根据所述属性信息的数值范围,确定持久化存储规则。
可选地,所述第一规则确定子模块包括:
序列化存储确定单元,用于若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
范式存储确定单元,用于若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
可选地,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述规则确定模块包括:
第二规则确定子模块,用于根据所述属性信息是否包括设定属性信息确定持久化存储规则。
可选地,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述信息获取模块包括:
信息获取子模块,用于获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
可选地,所述装置还包括:
文件添加模块,用于将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
可选地,所述装置还包括:
容器确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的存储容器。
可选地,所述容器确定模块包括:
周期获取子模块,用于获取所述数据处理节点所属数据处理流程的生命周期;
存储容器选取子模块,用于选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
可选地,所述装置还包括:
文件形式确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的文件形式。
可选地,所述文件形式确定模块包括:
调用检测子模块,用于检测所述数据处理节点的数据处理任务中是否包括数据库调用;
数据库确定子模块,用于若包括数据库调用,则确定持久化存储的文件形式包括数据库;
数据文件确定子模块,用于若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
可选地,所述持久化存储模块包括:
插件调用子模块,用于调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
可选地,所述持久化存储模块包括:
子数据读取子模块,用于获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
字符串转换子模块,用于按序组合多种子数据后转换为设定格式的字符串。
可选地,所述持久化存储模块还包括:
标识添加子模块,用于在转换得到的字符串中添加序列化版本标识。
可选地,所述装置还包括:
流程驱动模块,用于在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,根据上一数据处理节点的结果数据将所述数据处理流程驱动至当前数据处理节点;
处理任务执行模块,用于执行当前数据处理节点对应的数据处理任务。
相应地,本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述一个或多个的方法。
相应地,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述一个或多个的方法。
依据本申请实施例,通过获取数据处理节点的属性信息,之后根据属性信息确定持久化存储规则,再基于持久化存储规则,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。
进一步,根据数据处理节点的属性信息确定持久化存储的存储容器,以及文件形式,实现了存储容器和文件形式因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以针对不同的数据处理节点,提高了流程引擎对于存储容器和文件形式进行选择的灵活性。
进一步,通过对数据处理节点的结果数据进行持久化存储时,可以从配置文件中读取持久化存储规则。配置文件可以由业务方根据自身需求自定义修改,以定制出符合自身需求的持久化存储规则,提高持久化存储的灵活性和可配置性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了一种数据持久化存储过程的示意图;
图2示出了根据本申请实施例一的一种数据存储方法实施例的流程图;
图3示出了根据本申请实施例二的一种数据存储方法实施例的流程图;
图4示出了根据本申请实施例三的一种数据存储方法实施例的流程图;
图5示出了流程引擎的架构示意图;
图6示出了数据处理流程的示意图;
图7示出了根据本申请实施例四的一种数据存储装置实施例的框图;
图8示出了可被用于实现本公开中所述的各个实施例的示例性***。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为使本领域技术人员更好地理解本申请,以下对本申请涉及的概念进行说明:
数据处理流程包括一系列相互衔接、自动进行的数据处理节点,可以利用计算机,按照某种预定的程序自动传递文档、信息或者任务。例如,一个员工请假流程,员工需要请假时,需要在企业管理平台上提交一个请假申请,请假申请发生在请假流程的起始节点,流程引擎获得起始节点的“请假事由”、“请假天数”、“待审批”等数据,根据这些数据将流程驱动到相应的节点,可以包括两个分支的流程:若请假天数超过3天,则下一个节点为部门经理审批节点,若请假天数不超过3天,则下一个节点为组长审批节点,无论哪个分支都要等待部门经理或组长审批的结果,流程引擎根据部门经理审批节点或组长审批节点的数据,将流程驱动到结束节点,发送邮件通知员工请假申请的审批结果。具体可以包括任意适用的数据处理流程,本申请实施例对此不做限制。
数据处理节点可以根据一些输入数据,经过处理后得到结果数据,通常数据处理节点的输入数据来自于上一个数据处理节点,而结果数据可以传递给下一个数据处理节点。例如,在员工请假流程中,部门经理审批节点的输入数据来自于起始节点的结果数据(“请假事由”、“请假天数”、“待审批”等数据),经部门经理输入审批结果后,结果数据包括“请假事由”、“请假天数”、“审批通过/不通过”等。具体可以包括任意适用的数据处理节点及其结果数据,本申请实施例对此不做限制。
相应的,在数据处理节点具体对数据执行的处理任务为数据处理任务。例如,“部门经理审批”、“组长审批”、“财务审批”、“银行打款”等,或者其他任意适用的数据处理任务,本申请实施例对此不做限制。
数据处理节点的属性信息可以包括所属数据处理流程的流程并发数、节点个数以及数据处理节点的任务并发数等,还可以包括数据处理节点的任务类型、数据类型、节点标识等,或者其他任意适用的属性信息,本申请实施例对此不做限制。
在本申请的一种可选实施例中,属性信息可以包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种。流程并发数用于表征应用***中同时运行的某种数据处理流程的数量,例如,员工请假流程可以存在多个同时执行的流程实例,即多个员工的请求流程。节点个数用于表征某种数据处理流程中包含的数据处理节点的个数,例如,员工请假流程中包括“起始节点”、“部门经理审批节点”、“组长审批节点”和“结束节点”共4个节点。数据处理节点的任务并发数据用于表征同时运行的某种数据处理节点的任务的数量,例如,员工请假流程中,同时运行的部门经理审批任务的数量。
在本申请的一种可选实施例中,属性信息可以包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种。任务类型用于表征所执行的任务的类型,例如,查询任务,列表生成任务等类型。数据类型用于表征所执行的任务涉及的数据的类型,例如,请假流程中的“请假天数”等属于请假类型的数据,报销流程中“报销金额”等属于报销类型的数据。节点标识用于唯一的标识数据处理节点,例如,为各个数据处理节点分配的唯一的序号。
数据处理节点的结果数据不仅用于将流程驱动到下一个对应的数据处理节点,还用于记录流程当前运行到的节点,故需要将结果数据存储下来,也即对结果数据进行持久化存储。
持久化存储是一个相对概念,相对于缓存中的数据来说,内存中的数据就是持久化的,相对于内存中的数据来说,硬盘中的数据就是持久化的,也就是说,持久化的数据比非持久化的数据更加非易失。
针对不同的数据处理节点、数据处理流程,可以采用不同的持久化存储的方式,以满足不同的软件运行的需求和不断增加的复杂性。相应地,采用持久化存储规则来控制持久化存储,持久化存储规则包括序列化存储、范式存储等,或者其他任意适用的规则,本申请实施例对此不做限制。
在本申请的一种可选实施例中,持久化存储规则可以包括序列化存储或范式存储。其中,序列化存储可以通过有序的格式或者字节序列存储结果数据,例如,按照约定将结果数据转换成转换成字符串,存储字符串用于表示结果数据。针对不同的数据处理流程可以设计自定义的序列化协议,来满足各种数据处理流程或数据处理节点的需要,具体可以包括任意适用的方式来将结果数据序列化存储,本申请实施例对此不做限制。序列化存储可以减少冗余数据存储,节约存储空间,减少数据传输时传输的数据量,提高数据传输效率。
其中,范式存储包括利用范式(数据库设计范式)表的持久化存储,存储结果数据时需要有配套的多张范式表来建立数据之间的关系,例如,RDBMS(Relational DatabaseManagement System,关系数据库管理***)通常会有配套的10张左右的范式表作为底层的持久化机制,针对数据处理节点的结果数据中各项数据之间的关系建立范式表,根据范式表将结果数据进行持久化存储。具体可以包括任意适用的方式来将结果数据范式存储,本申请实施例对此不做限制。范式存储保留了数据之间的直接关系,有利于对数据进行查询,可以提高数据的查询速度。
在本申请的一种可选实施例中,存储容器可以包括缓存、内存、硬盘或外存等,或者其他任意适用的容器,本申请实施例对此不做限制。
在本申请的一种可选实施例中,文件形式可以包括数据库、数据文件等,或者其他任意适用的形式,本申请实施例对此不做限制。其中,数据库是按照数据结果来组织、存储和管理数据的建立在计算机存储设备上的仓库,例如,NoSQL(Not Only SQL,泛指非关系型的数据库),RDBMS等。数据文件包括XML(eXtensible Markup Language,可扩展标记语言)文件、TXT(文本)文件等非数据库文件形式,或者其他任意适用的文件,本申请实施例对此不做限制。
在本申请的一种可选实施例中,持久化存储规则可以由功能插件所实现的,流程引擎可以通过调用与持久化存储规则相对应的功能插件,来实现对结果数据的持久化存储。例如,序列化存储可以对应编写为一个功能插件,范式存储可以对应编写为一个功能插件,存储在机械硬盘可以对应编写一个功能插件,存储在固态硬盘可以对应编写一个功能插件,存储在内存可以对应编写一个功能插件等,或者其他任意适用的功能插件,本申请实施例对此不做限制。由于功能插件之间相互独立,使得各种持久化存储规则具备易修改、灵活多变、可维护性强等特点。
根据本申请的一个实施例,流程引擎必不可少的需要对数据进行持久化存储。本申请提供了一种数据存储方案,如图1所示的数据持久化存储过程的示意图,所述过程可以应用在应用***的流程引擎上,流程引擎可以获取数据处理节点的属性信息,之后根据属性信息确定持久化存储规则,再基于持久化存储规则,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。本申请适用但不局限于上述应用场景。
参照图2,示出了根据本申请实施例一的一种数据存储方法实施例的流程图,该方法具体可以包括以下步骤:
步骤101,获取数据处理节点的属性信息。
在本申请实施例中,流程引擎可以获取多种属性信息,针对不同种的属性信息,具体可以包括在流程运行到数据处理节点之前获取属性信息,还包括在流程运行到数据处理节点之后获取属性信息,或者其他任意适用的方式,本申请实施例对此不做限制。
例如,在请假流程的示例中,首先获取请假流程的历史记录,然后统计出请假流程的流程并发数、请假流程中包含的节点个数以及其中包含的各个数据处理节点的任务并发数等属性信息。又例如,在请假流程的示例中,针对“部门经理审批节点”,获取该数据处理节点的任务类型为审批任务、数据类型为请假相关数据、“部门经理审批节点”的节点标识等属性信息。
步骤102,根据所述属性信息确定持久化存储规则。
在本申请实施例中,持久化存储规则可以根据一种或多种属性信息确定,对于持久化存储规则的变化,不同的属性信息起到不同的作用,例如,流程并发数越高,达到一定阈值后,持久化存储规则就采用序列化存储方式,或者数据处理节点是否涉及查询类型的任务,若涉及查询类型的任务则采用范式存储方式。
持久化存储规则可以由属性信息的数值范围确定,还可以由属性信息是否包括设定属性信息确定,或者其他任意适用的方式确定,本申请实施例对此不做限制。
例如,在员工请假流程中,若同时运行的请假流程的数量存在超过设定阈值的情况,则在请假流程中采用序列化存储的持久化存储规则。又例如,在员工请假流程中,“部门经理审批节点”中若存在查询任务,则可以采用范式存储的持久化存储规则。
在本申请实施例中,持久化存储规则是针对数据处理节点确定的,在一个数据处理流程中,各个数据处理节点可以采用一种持久化存储规则,也可以针对各个数据处理节点,分别确定各自的持久化存储规则。
步骤103,基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
在本申请实施例中,数据处理节点运行后,得到结果数据,流程引擎得到结果数据后,基于该数据处理节点的持久化存储规则,对结果数据进行持久化存储。例如,对结果数据进行序列化后,将序列化的数据存储到硬盘的数据库中。
在一种实现方式中,持久化存储规则具体可以由功能插件来实现,当流程引擎将数据处理流程驱动到数据处理节点,并得到结果数据后,调用实现持久化存储规则的功能插件,完成对结果数据的持久化存储。具体还可以包括其他任意适用的实现方式,本申请实施例对此不做限制。
依据本申请实施例,通过获取数据处理节点的属性信息,之后根据属性信息确定持久化存储规则,再基于持久化存储规则,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。
在本申请的一种可选实施例中,属性信息可以包括数据处理节点的任务类型、数据类型、节点标识中至少一种,对应的,根据所述属性信息确定持久化存储规则的一种实现方式可以包括:根据所述属性信息是否包括设定属性信息确定持久化存储规则。
设定属性信息是预先设置的,也可以通过更改配置进行修改,包括设定任务类型、设定数据类型、设定节点标识等,例如,设定任务类型包括查询任务、执行列表生成任务等。设定属性信息可以与持久化存储规则具有设置的对应关系,例如,属性信息包括设定属性信息,则确定范式存储的持久化存储规则,或者属性信息不包括设定属性信息,则确定序列化存储的持久化存储规则,或者其他任意适用的方式确定持久化存储规则,本申请实施例对此不做限制。
一种实现方式中,还可以根据数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数等属性信息,以及数据处理节点的任务类型、数据类型、节点标识等属性信息,共同确定持久化存储规则。例如,在员工请假流程中,若请假流程的流程并发数超过每秒100个,且任务类型不包括查询任务,则确定持久化存储规则采用序列化存储。又例如,在员工请假流程中,若“部门经理审批节点”包括列表生成任务,且整个请假流程包含的节点个数不超过10个,则确定持久化存储规则采用范式存储,具体可以包括任意适用的方式,本申请实施例对此不做限制。
在本申请的一种可选实施例中,属性信息可以包括历史属性信息和当前属性信息中至少一种,当所述属性信息包括历史属性信息时,所述获取数据处理节点的属性信息的一种实现方式可以包括:获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
将流程引擎当前正在运行的数据处理节点的属性信息,记为当前属性信息,将运行数据处理节点之前获取的属性信息,记为历史属性信息。流程引擎获取的属性信息可以包括当前属性信息和历史属性信息中至少一种。当属性信息包括历史属性信息时,先数据处理流程执行产生的历史记录,例如,在员工请假流程中,历史记录包括过去一年中每一天在执行的请假流程的数量,再根据这一历史记录,统计出平均每日执行的请假流程的数量,或者单日请假流程的数量的最高值等,即历史属性信息。
参照图3,示出了根据本申请实施例二的一种数据存储方法实施例的流程图,该方法具体可以包括以下步骤:
步骤201,获取数据处理节点的属性信息。
在本申请实施例中,此步骤的具体实现方式可以参见前述实施例中的描述,此处不另赘述。
步骤202,根据所述属性信息的数值范围,确定持久化存储规则。
在本申请实施例中,针对属性信息是数值时,可以根据属性信息所处的数值范围,确定持久化存储规则。一般来说,流程并发数越高,越有必要采用序列化存储,一个数据处理流程中存在的节点个数越多,越有必要采用序列化存储,数据处理节点的任务并发数越高,越有必要采用序列化存储。
具体实现时,针对不同的属性信息预先设置数据范围,设置的数值范围可以根据实际情况进行调整,当属性信息落入设置的数值范围,就确定为落入的数值范围所对应的持久化存储规则。
在本申请的一种可选实施例中,根据所述属性信息的数值范围,确定持久化存储规则的一种实现方式可以包括:若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储,若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
例如,流程并发数超过每秒100个,则确定为序列化存储,若未超过每秒100个,则确定为范式存储。
属性信息包括多种,则每种属性信息可以分别设置有对应的数值范围,在确定持久化存储规则时,可以综合多种属性信息的数值范围进行确定。一种实现方式中,可以为不同的属性信息设立优先级,即优先级高的属性信息超出对应的设定数值范围,但优先级低的属性信息未超出对应的设定数值范围,以优先级高的为准,确定所述持久化存储规则包括序列化存储。在另一种实现方式中,还可以要求所有属性信息均未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储,否则确定序列化存储。具体可以采用任意适用的方式确定持久化存储规则,本申请实施例对此不做限制。
步骤203,根据所述数据处理节点的属性信息确定持久化存储的存储容器。
在本申请实施例中,属性信息还可以决定持久化存储的存储容器,例如,数据类型可以确定存储容器,若数据是请假相关数据,则可以临时存储,将存储容器确定为内存,若数据是报销相关数据,则需要长期存储,将存储容器确定为硬盘。具体可以采用任意适用的方式,本申请实施例对此不做限制。
在本申请的一种可选实施例中,所述根据所述数据处理节点的属性信息确定持久化存储的存储容器的一种实现方式可以包括:获取所述数据处理节点所属数据处理流程的生命周期,选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
数据处理流程的生命周期,即从数据处理流程启动到结束的时间跨度,通常同样的数据处理流程所花费的时间也可能存在不同,故可以采用平均生命周期,或者最长生命周期等,本申请实施例对此不做限制。
一般而言,生命周期越长,意味着数据需要保存更长的时间,而缓存和内存等易失性存储介质的空间有限,而且稳定性较差,容易丢失数据,按照生命周期由长到短的顺序,对应于硬盘或外存,内存,缓存等存储容器,选取适用于生命周期的存储容器,作为持久化存储的存储容器。对于生命周期短的数据处理流程,选用诸如缓存或内容可以提高运行速度,对于生命周期长的数据处理流程,选用诸如硬盘或外存可以提高数据的稳定性,避免数据因断电丢失。
步骤204,根据所述数据处理节点的属性信息确定持久化存储的文件形式。
在本申请实施例中,属性信息还可以决定持久化存储的文件形式,例如,任务类型可以确定文件形式,若数据处理节点包括查询任务,则文件形式采用数据库,若数据处理节点不包括查询任务,则文件形式采用数据文件。具体可以采用任意适用的方式,本申请实施例对此不做限制。
在本申请的一种可选实施例中,根据所述数据处理节点的属性信息确定持久化存储的文件形式的一种实现方式可以包括:检测所述数据处理节点的数据处理任务中是否包括数据库调用,若包括数据库调用,则确定持久化存储的文件形式包括数据库,若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
数据处理节点可以包括一个或多个数据处理任务,检测数据处理任务中是否包括数据库调用,如果包括数据库调用,则确定持久化存储的文件形式包括数据库,以利于提高查询的速度,提高运行效率,若不包括数据库调用,则确定持久化存储的文件形式包括数据文件,以减少存储体积,节约存储空间。
具体实现时,数据处理节点的属性信息可以同时确定持久化存储规则,存储容器以及文件形式。例如,在员工请假流程中,属性信息包括流程并发数、数据处理流程的生命周期,数据处理节点中包括的任务类型等,若流程并发数超过每秒100个,生命周期超过1天,且数据处理节点中不包括查询任务,则采用序列化存储,存储容器确定为硬盘存储,且采用数据文件的文件形式进行存储。
步骤205,根据上一数据处理节点的结果数据将所述数据处理流程驱动至当前数据处理节点。
在本申请实施例中,流程引擎获取上一数据处理节点的结果数据,根据上一数据处理节点的结果数据,将数据处理流程驱动到当前的数据处理节点。
步骤206,执行当前数据处理节点对应的数据处理任务。
在本申请实施例中,当前数据处理节点可以包括一个或多个数据处理任务,执行对应的数据处理任务,得到当前数据处理结果的结果数据。
步骤207,基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
在本申请实施例中,此步骤的具体实现方式可以参见前述实施例中的描述,此处不另赘述。
依据本申请实施例,通过获取数据处理节点的属性信息,根据属性信息的数值范围,确定持久化存储规则,之后根据上一数据处理节点的结果数据将数据处理流程驱动至当前数据处理节点,执行当前数据处理节点对应的数据处理任务,基于持久化存储规则,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。
进一步,根据数据处理节点的属性信息确定持久化存储的存储容器,以及文件形式,实现了存储容器和文件形式因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以针对不同的数据处理节点,提高了流程引擎对于存储容器和文件形式进行选择的灵活性。
参照图4,示出了根据本申请实施例三的一种数据存储方法实施例的流程图,该方法具体可以包括以下步骤:
步骤301,获取数据处理节点的属性信息。
在本申请实施例中,此步骤的具体实现方式可以参见前述实施例中的描述,此处不另赘述。
步骤302,根据所述属性信息确定持久化存储规则。
在本申请实施例中,此步骤的具体实现方式可以参见前述实施例中的描述,此处不另赘述。
步骤303,将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
在本申请实施例中,配置文件用于对数据处理流程进行控制,包括对持久化存储的控制,具体可以将持久化存储规则添加到数据处理流程的配置文件中,具体可以包括对于数据处理流程中各个数据处理节点的持久化存储规则。
具体实现是,对数据处理节点的结果数据进行持久化存储时,可以从配置文件中读取持久化存储规则。配置文件可以由业务方根据自身需求自定义修改,以定制出符合自身需求的持久化存储规则,提高持久化存储的灵活性和可配置性。
步骤304,调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
在本申请实施例中,为实现不同的持久化存储规则,各自有对应的功能插件,调用该功能插件就可以对数据处理节点的结果数据进行持久化存储。
值得说明的是,存储容器、文件形式也有对应的插件,具体实现时,可以分别编写一个功能插件,然后调用几个功能插件来完成持久化存储,例如,序列化存储可以对应编写为一个功能插件,范式存储可以对应编写为一个功能插件,存储在机械硬盘可以对应编写一个功能插件,存储在固态硬盘可以对应编写一个功能插件,存储为数据库可以对应编写一个功能插件,存储为数据文件可以对应编写一个功能插件等,调用序列化存储功能插件、存储在固态硬盘功能插件以及存储为数据库功能插件,共同来进行持久化存储。或者可以编写一个包括有持久化存储规则、存储容器和文件形式的功能插件,来完成持久化存储,例如,序列化存储、存储在固态硬盘、存储为数据文件可以对应编写一个功能插件,序列化存储、存储在机械硬盘、存储为数据文件可以对应编写另一个功能插件。具体可以包括任意适用的功能插件,本申请实施例对此不做限制。
在本申请的一种可选实施例中,所述序列化存储的一种实现方式可以包括:获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据,按序组合多种子数据后转换为设定格式的字符串。结果数据中可以包括多种子数据,例如,在员工请假流程中,“请假天数”和“请假事由”两种子数据。读取子数据后,按照设定的顺序,组合多种子数据,然后转换为设定格式的字符串。
在本申请的一种可选实施例中,所述序列化存储还可以包括:在转换得到的字符串中添加序列化版本标识。
序列化版本标识用于标识序列化协议的版本,由于序列化协议可以更改,所以添加序列化版本标识,以用于在反序列化过程中,根据序列化版本标识,利用对应的序列化协议,得到原结果数据。
依据本申请实施例,通过获取数据处理节点的属性信息,根据属性信息确定持久化存储规则,将持久化存储规则添加至数据处理流程的配置文件,调用持久化存储规则对应的功能插件,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。
为使本领域技术人员更好地理解本申请,以下通过具体的示例对本申请的一种实现方式进行说明。
如图5所示的流程引擎的架构示意图。
流程引擎的底层是基础设置层,这一层的职责主要包括提供XML解析功能和以插件的方式来加载各种数据处理流程节点的行为。
流程定义解析层的作用主要是确定解析期模型和对应各个模型的解析器。流程定义:描述一个完整的数据处理流程,由若干个数据处理节点组成,包括数据处理流程的基本信息、数据处理流程的开始和结束条件、组成的数据处理节点、数据处理节点间流转的规则,需要用户执行的任务、可能调用的应用程序以及流程相关数据等信息。
当流程定义解析完后,再将解析得到的数据转化成运行期模型进行执行,运行期间对应发生运行期行为,其中包括对结果数据的持久化存储。流程虚拟机是多流程语言的基础。对任何流程语言的原生支持都可以建立在流程虚拟机之上。流程图中每个活动的运行期行为被委托给一个java的接口。
流程引擎作为所有服务的入口,提供API(Application Programming Interface,应用程序编程接口)。
如图6所示的数据处理流程的示意图。
步骤1,数据处理流程启动或者驱动,分别针对新产生的数据处理流程,和针对事先已存在的数据处理流程。
步骤2,参数配置,包括当前的业务请求的参数等。
步骤3,查找流程定义,根据配置的参数进行查找,查找到相应的流程定义。
步骤4,创建实例对象,流程引擎根据当前的业务请求参数以及流程定义,创建一个新的流程实例对象(即数据处理流程),或者将数据处理流程驱动到相应的数据处理节点。
步骤5,环节状态计算,运行数据处理节点中的数据处理任务,得到结果数据(即环节状态)。
步骤6、存储实例状态,即结果数据的持久化存储,可以选择DB存储(数据库存储),或者内存存储,或者自定义存储(包括序列化存储)等。
参照图7,示出了根据本申请实施例四的一种数据存储装置实施例的结构框图,具体可以包括:
信息获取模块401,用于获取数据处理节点的属性信息;
规则确定模块402,用于根据所述属性信息确定持久化存储规则;
持久化存储模块403,用于基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
在本申请的一种可选实施例中,所述持久化存储规则包括序列化存储或范式存储。
在本申请的一种可选实施例中,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种。
在本申请的一种可选实施例中,所述规则确定模块包括:
第一规则确定子模块,用于根据所述属性信息的数值范围,确定持久化存储规则。
在本申请的一种可选实施例中,所述第一规则确定子模块包括:
序列化存储确定单元,用于若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
范式存储确定单元,用于若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
在本申请的一种可选实施例中,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述规则确定模块包括:
第二规则确定子模块,用于根据所述属性信息是否包括设定属性信息确定持久化存储规则。
在本申请的一种可选实施例中,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述信息获取模块包括:
信息获取子模块,用于获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
在本申请的一种可选实施例中,所述装置还包括:
文件添加模块,用于将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
在本申请的一种可选实施例中,所述装置还包括:
容器确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的存储容器。
在本申请的一种可选实施例中,所述容器确定模块包括:
周期获取子模块,用于获取所述数据处理节点所属数据处理流程的生命周期;
存储容器选取子模块,用于选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
在本申请的一种可选实施例中,所述装置还包括:
文件形式确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的文件形式。
在本申请的一种可选实施例中,所述文件形式确定模块包括:
调用检测子模块,用于检测所述数据处理节点的数据处理任务中是否包括数据库调用;
数据库确定子模块,用于若包括数据库调用,则确定持久化存储的文件形式包括数据库;
数据文件确定子模块,用于若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
在本申请的一种可选实施例中,所述持久化存储模块包括:
插件调用子模块,用于调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
在本申请的一种可选实施例中,所述持久化存储模块包括:
子数据读取子模块,用于获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
字符串转换子模块,用于按序组合多种子数据后转换为设定格式的字符串。
在本申请的一种可选实施例中,所述持久化存储模块还包括:
标识添加子模块,用于在转换得到的字符串中添加序列化版本标识。
在本申请的一种可选实施例中,所述装置还包括:
流程驱动模块,用于在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,根据上一数据处理节点的结果数据将所述数据处理流程驱动至当前数据处理节点;
处理任务执行模块,用于执行当前数据处理节点对应的数据处理任务。
依据本申请实施例,通过获取数据处理节点的属性信息,之后根据属性信息确定持久化存储规则,再基于持久化存储规则,对数据处理节点的结果数据进行持久化存储,实现了持久化存储可因数据处理节点的属性信息变化而变化的机制,使得流程引擎可以提供灵活多变的持久化存储规则,提高了流程引擎的持久化存储对于各种复杂的业务产品的适应性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的***。图8示意性地示出了可被用于实现本公开中所述的各个实施例的示例性***(或装置)500。
对于一个实施例,图8示出了示例性***500,该***具有一个或多个处理器502、被耦合到(一个或多个)处理器502中的至少一个的***控制模块(芯片组)504、被耦合到***控制模块504的***存储器506、被耦合到***控制模块504的非易失性存储器(NVM)/存储设备508、被耦合到***控制模块504的一个或多个输入/输出设备510,以及被耦合到***控制模块504的网络接口512。
处理器502可包括一个或多个单核或多核处理器,处理器502可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,***500能够作为本申请实施例中所述的浏览器。
在一些实施例中,***500可包括具有指令的一个或多个计算机可读介质(例如,***存储器506或NVM/存储设备508)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本公开中所述的动作的一个或多个处理器502。
对于一个实施例,***控制模块504可包括任意适当的接口控制器,以向(一个或多个)处理器502中的至少一个和/或与***控制模块504通信的任意适当的设备或组件提供任意适当的接口。
***控制模块504可包括存储器控制器模块,以向***存储器506提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
***存储器506可被用于例如为***500加载和存储数据和/或指令。对于一个实施例,***存储器506可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,***存储器506可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,***控制模块504可包括一个或多个输入/输出控制器,以向NVM/存储设备508及(一个或多个)输入/输出设备510提供接口。
例如,NVM/存储设备508可被用于存储数据和/或指令。NVM/存储设备508可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备508可包括在物理上作为***500被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备508可通过网络经由(一个或多个)输入/输出设备510进行访问。
(一个或多个)输入/输出设备510可为***500提供接口以与任意其他适当的设备通信,输入/输出设备510可以包括通信组件、音频组件、传感器组件等。网络接口512可为***500提供接口以通过一个或多个网络通信,***500可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器502中的至少一个可与***控制模块504的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器502中的至少一个可与***控制模块504的一个或多个控制器的逻辑封装在一起以形成***级封装(SiP)。对于一个实施例,(一个或多个)处理器502中的至少一个可与***控制模块504的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器502中的至少一个可与***控制模块504的一个或多个控制器的逻辑集成在同一模具上以形成片上***(SoC)。
在各个实施例中,***500可以但不限于是:浏览器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,***500可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,***500包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中各方法步骤的指令(instructions)。
在一个示例中提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如本申请实施例的方法。
在一个示例中还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本申请实施例的一个或多个的方法。
本申请实施例公开了一种数据存储方法和装置,示例1包括一种数据存储方法,包括:
获取数据处理节点的属性信息;
根据所述属性信息确定持久化存储规则;
基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
示例2可包括示例1所述的方法,其中,所述持久化存储规则包括序列化存储或范式存储。
示例3可包括示例1和/或示例2所述的方法,其中,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种。
示例4可包括示例1-示例3一个或多个所述的方法,其中,所述根据所述属性信息确定持久化存储规则包括:
根据所述属性信息的数值范围,确定持久化存储规则。
示例5可包括示例1-示例4一个或多个所述的方法,其中,所述根据所述属性信息的数值范围,确定持久化存储规则包括:
若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
示例6可包括示例1-示例5一个或多个所述的方法,其中,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述根据所述属性信息确定持久化存储规则包括:
根据所述属性信息是否包括设定属性信息确定持久化存储规则。
示例7可包括示例1-示例6一个或多个所述的方法,其中,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述获取数据处理节点的属性信息包括:
获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
示例8可包括示例1-示例7一个或多个所述的方法,其中,所述方法还包括:
将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
示例9可包括示例1-示例8一个或多个所述的方法,其中,所述方法还包括:
根据所述数据处理节点的属性信息确定持久化存储的存储容器。
示例10可包括示例1-示例9一个或多个所述的方法,其中,所述根据所述数据处理节点的属性信息确定持久化存储的存储容器包括:
获取所述数据处理节点所属数据处理流程的生命周期;
选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
示例11可包括示例1-示例10一个或多个所述的方法,其中,所述方法还包括:
根据所述数据处理节点的属性信息确定持久化存储的文件形式。
示例12可包括示例1-示例11一个或多个所述的方法,其中,所述根据所述数据处理节点的属性信息确定持久化存储的文件形式包括:
检测所述数据处理节点的数据处理任务中是否包括数据库调用;
若包括数据库调用,则确定持久化存储的文件形式包括数据库;
若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
示例13可包括示例1-示例12一个或多个所述的方法,其中,所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储包括:
调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
示例14可包括示例1-示例13一个或多个所述的方法,其中,所述序列化存储包括:
获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
按序组合多种子数据后转换为设定格式的字符串。
示例15可包括示例1-示例14一个或多个所述的方法,其中,所述序列化存储还包括:
在转换得到的字符串中添加序列化版本标识。
示例16可包括示例1-示例15一个或多个所述的方法,其中,在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,所述方法还包括:
根据上一数据处理节点的结果数据将所述数据处理流程驱动至当前数据处理节点;
执行当前数据处理节点对应的数据处理任务。
示例17包括一种数据存储装置,包括:
信息获取模块,用于获取数据处理节点的属性信息;
规则确定模块,用于根据所述属性信息确定持久化存储规则;
持久化存储模块,用于基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
示例18可包括示例17所述的装置,其中,所述持久化存储规则包括序列化存储或范式存储。
示例19可包括示例17和/或示例18所述的装置,其中,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种。
示例20可包括示例17-示例19一个或多个所述的装置,其中,所述规则确定模块包括:
第一规则确定子模块,用于根据所述属性信息的数值范围,确定持久化存储规则。
示例21可包括示例17-示例20一个或多个所述的装置,其中,所述第一规则确定子模块包括:
序列化存储确定单元,用于若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
范式存储确定单元,用于若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
示例22可包括示例17-示例21一个或多个所述的装置,其中,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述规则确定模块包括:
第二规则确定子模块,用于根据所述属性信息是否包括设定属性信息确定持久化存储规则。
示例23可包括示例17-示例22一个或多个所述的装置,其中,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述信息获取模块包括:
信息获取子模块,用于获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
示例24可包括示例17-示例23一个或多个所述的装置,其中,所述装置还包括:
文件添加模块,用于将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
示例25可包括示例17-示例24一个或多个所述的装置,其中,所述装置还包括:
容器确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的存储容器。
示例26可包括示例17-示例25一个或多个所述的装置,其中,所述容器确定模块包括:
周期获取子模块,用于获取所述数据处理节点所属数据处理流程的生命周期;
存储容器选取子模块,用于选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
示例27可包括示例17-示例26一个或多个所述的装置,其中,所述装置还包括:
文件形式确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的文件形式。
示例28可包括示例17-示例27一个或多个所述的装置,其中,所述文件形式确定模块包括:
调用检测子模块,用于检测所述数据处理节点的数据处理任务中是否包括数据库调用;
数据库确定子模块,用于若包括数据库调用,则确定持久化存储的文件形式包括数据库;
数据文件确定子模块,用于若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
示例29可包括示例17-示例28一个或多个所述的装置,其中,所述持久化存储模块包括:
插件调用子模块,用于调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
示例30可包括示例17-示例29一个或多个所述的装置,其中,所述持久化存储模块包括:
子数据读取子模块,用于获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
字符串转换子模块,用于按序组合多种子数据后转换为设定格式的字符串。
示例31可包括示例17-示例30一个或多个所述的装置,其中,所述持久化存储模块还包括:
标识添加子模块,用于在转换得到的字符串中添加序列化版本标识。
示例32可包括示例17-示例31一个或多个所述的装置,其中,所述装置还包括:
流程驱动模块,用于在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,根据上一数据处理节点的结果数据将所述数据处理流程驱动至当前数据处理节点;
处理任务执行模块,用于执行当前数据处理节点对应的数据处理任务。
示例33包括一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如示例1-16一个或多个的方法。
示例34包括一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如示例1-16一个或多个的方法。
虽然某些实施例是以说明和描述为目的的,各种各样的替代、和/或、等效的实施方案、或计算来达到同样的目的实施例示出和描述的实现,不脱离本申请的实施范围。本申请旨在覆盖本文讨论的实施例的任何修改或变化。因此,显然本文描述的实施例仅由权利要求和它们的等同物来限定。
Claims (32)
1.一种数据存储方法,其特征在于,包括:
获取数据处理节点的属性信息,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种;
根据所述属性信息确定持久化存储规则;
基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
2.根据权利要求1所述的方法,其特征在于,所述持久化存储规则包括序列化存储或范式存储。
3.根据权利要求1所述的方法,其特征在于,所述根据所述属性信息确定持久化存储规则包括:
根据所述属性信息的数值范围,确定持久化存储规则。
4.根据权利要求3所述的方法,其特征在于,所述根据所述属性信息的数值范围,确定持久化存储规则包括:
若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
5.根据权利要求1所述的方法,其特征在于,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述根据所述属性信息确定持久化存储规则包括:
根据所述属性信息是否包括设定属性信息确定持久化存储规则。
6.根据权利要求1所述的方法,其特征在于,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述获取数据处理节点的属性信息包括:
获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述数据处理节点的属性信息确定持久化存储的存储容器。
9.根据权利要求8所述的方法,其特征在于,所述根据所述数据处理节点的属性信息确定持久化存储的存储容器包括:
获取所述数据处理节点所属数据处理流程的生命周期;
选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述数据处理节点的属性信息确定持久化存储的文件形式。
11.根据权利要求10所述的方法,其特征在于,所述根据所述数据处理节点的属性信息确定持久化存储的文件形式包括:
检测所述数据处理节点的数据处理任务中是否包括数据库调用;
若包括数据库调用,则确定持久化存储的文件形式包括数据库;
若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
12.根据权利要求1所述的方法,其特征在于,所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储包括:
调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
13.根据权利要求2所述的方法,其特征在于,所述序列化存储包括:
获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
按序组合多种子数据后转换为设定格式的字符串。
14.根据权利要求13所述的方法,其特征在于,所述序列化存储还包括:
在转换得到的字符串中添加序列化版本标识。
15.根据权利要求1所述的方法,其特征在于,在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,所述方法还包括:
根据上一数据处理节点的结果数据将数据处理流程驱动至当前数据处理节点;
执行当前数据处理节点对应的数据处理任务。
16.一种数据存储装置,其特征在于,包括:
信息获取模块,用于获取数据处理节点的属性信息,所述属性信息包括所属数据处理流程的流程并发数、节点个数以及所述数据处理节点的任务并发数中至少一种;
规则确定模块,用于根据所述属性信息确定持久化存储规则;
持久化存储模块,用于基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储。
17.根据权利要求16所述的装置,其特征在于,所述持久化存储规则包括序列化存储或范式存储。
18.根据权利要求16所述的装置,其特征在于,所述规则确定模块包括:
第一规则确定子模块,用于根据所述属性信息的数值范围,确定持久化存储规则。
19.根据权利要求18所述的装置,其特征在于,所述第一规则确定子模块包括:
序列化存储确定单元,用于若所述属性信息超出对应的设定数值范围,则确定所述持久化存储规则包括序列化存储;
范式存储确定单元,用于若所述属性信息未超出对应的设定数值范围,则确定所述持久化存储规则包括范式存储。
20.根据权利要求16所述的装置,其特征在于,所述属性信息包括所述数据处理节点的任务类型、数据类型、节点标识中至少一种;
所述规则确定模块包括:
第二规则确定子模块,用于根据所述属性信息是否包括设定属性信息确定持久化存储规则。
21.根据权利要求16所述的装置,其特征在于,所述属性信息包括历史属性信息和当前属性信息中至少一种;
当所述属性信息包括历史属性信息时,所述信息获取模块包括:
信息获取子模块,用于获取流程执行的历史记录,根据所述历史记录统计数据处理节点的历史属性信息。
22.根据权利要求16所述的装置,其特征在于,所述装置还包括:
文件添加模块,用于将所述持久化存储规则添加至数据处理流程的配置文件,以供对所述数据处理节点的结果数据进行持久化存储时,从所述配置文件中读取所述持久化存储规则。
23.根据权利要求16所述的装置,其特征在于,所述装置还包括:
容器确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的存储容器。
24.根据权利要求23所述的装置,其特征在于,所述容器确定模块包括:
周期获取子模块,用于获取所述数据处理节点所属数据处理流程的生命周期;
存储容器选取子模块,用于选取适用于所述生命周期的存储容器,所述存储容器包括缓存、内存、硬盘或外存。
25.根据权利要求16所述的装置,其特征在于,所述装置还包括:
文件形式确定模块,用于根据所述数据处理节点的属性信息确定持久化存储的文件形式。
26.根据权利要求25所述的装置,其特征在于,所述文件形式确定模块包括:
调用检测子模块,用于检测所述数据处理节点的数据处理任务中是否包括数据库调用;
数据库确定子模块,用于若包括数据库调用,则确定持久化存储的文件形式包括数据库;
数据文件确定子模块,用于若不包括数据库调用,则确定持久化存储的文件形式包括数据文件。
27.根据权利要求16所述的装置,其特征在于,所述持久化存储模块包括:
插件调用子模块,用于调用所述持久化存储规则对应的功能插件,对所述数据处理节点的结果数据进行持久化存储。
28.根据权利要求17所述的装置,其特征在于,所述持久化存储模块包括:
子数据读取子模块,用于获取所述数据处理节点的结果数据,并从所述结果数据中读取多种子数据;
字符串转换子模块,用于按序组合多种子数据后转换为设定格式的字符串。
29.根据权利要求28所述的装置,其特征在于,所述持久化存储模块还包括:
标识添加子模块,用于在转换得到的字符串中添加序列化版本标识。
30.根据权利要求16所述的装置,其特征在于,所述装置还包括:
流程驱动模块,用于在所述基于所述持久化存储规则,对所述数据处理节点的结果数据进行持久化存储之前,根据上一数据处理节点的结果数据将数据处理流程驱动至当前数据处理节点;
处理任务执行模块,用于执行当前数据处理节点对应的数据处理任务。
31.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-15中任一项所述的方法。
32.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355324.5A CN110399089B (zh) | 2018-04-19 | 2018-04-19 | 数据存储方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355324.5A CN110399089B (zh) | 2018-04-19 | 2018-04-19 | 数据存储方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399089A CN110399089A (zh) | 2019-11-01 |
CN110399089B true CN110399089B (zh) | 2023-05-05 |
Family
ID=68319560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810355324.5A Active CN110399089B (zh) | 2018-04-19 | 2018-04-19 | 数据存储方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399089B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427899A (zh) * | 2020-03-17 | 2020-07-17 | 中国建设银行股份有限公司 | 存储文件的方法、装置、设备和计算机可读介质 |
CN112422613B (zh) * | 2020-09-16 | 2022-02-01 | 北京中兵数字科技集团有限公司 | 数据处理方法、数据处理平台和计算机可读存储介质 |
CN113645287B (zh) * | 2021-07-29 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 汽车报文存储方法及装置、汽车报文存储*** |
CN114138776A (zh) * | 2021-11-01 | 2022-03-04 | 杭州欧若数网科技有限公司 | 图结构和图属性分离设计的方法、***、装置和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN106326331A (zh) * | 2016-06-29 | 2017-01-11 | 河南许继仪表有限公司 | 一种基于云计算的智能用电数据服务*** |
CN107506408A (zh) * | 2017-08-08 | 2017-12-22 | 北京盛华安信息技术有限公司 | 对海量事件分布式关联匹配的方法及*** |
-
2018
- 2018-04-19 CN CN201810355324.5A patent/CN110399089B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN106326331A (zh) * | 2016-06-29 | 2017-01-11 | 河南许继仪表有限公司 | 一种基于云计算的智能用电数据服务*** |
CN107506408A (zh) * | 2017-08-08 | 2017-12-22 | 北京盛华安信息技术有限公司 | 对海量事件分布式关联匹配的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN110399089A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399089B (zh) | 数据存储方法、装置、设备和介质 | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
CN107239479A (zh) | 一种基于区块链的数据存储以及查询的方法及装置 | |
JP2010524060A (ja) | 分散コンピューティングにおけるデータマージング | |
CN111666296A (zh) | 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质 | |
EP2763055A1 (en) | A telecommunication method and mobile telecommunication device for providing data to a mobile application | |
CN114925084B (zh) | 分布式事务处理方法、***、设备及可读存储介质 | |
US8489647B2 (en) | Use-case based configuration of an object-relational mapping framework | |
WO2019148657A1 (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
US11556878B2 (en) | Systems and methods for managing organizational structures | |
CN109582476B (zh) | 数据处理方法、装置及*** | |
CN113448969B (zh) | 数据处理方法、设备及存储介质 | |
US20220374398A1 (en) | Object Creation from Schema for Event Streaming Platform | |
CN111078905A (zh) | 一种数据处理方法、装置、介质以及设备 | |
WO2017148376A1 (zh) | 应用程序用户界面自动化测试方法、电子设备、***及存储介质 | |
US20170293599A1 (en) | Checklist Contexts and Completion | |
CN113987044A (zh) | 资产数据的导入处理方法、装置及电子设备 | |
CN111427902A (zh) | 基于轻量型数据库的元数据管理方法、装置、设备及介质 | |
CN109634606A (zh) | 一种定义功能菜单的方法及装置 | |
CN113190463B (zh) | 一种代码测试方法,节点及*** | |
CN114996319B (zh) | 基于规则引擎的数据处理方法、装置、设备及存储介质 | |
CN110399349B (zh) | 一种对mib匹配文档进行转换的方法和装置 | |
CN115455114A (zh) | 办公自动化***数据同步方法及相关设备 | |
CN115630084A (zh) | 一种sql语句处理方法、装置、设备及存储介质 | |
CN114218268A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40015689 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |