CN116185305A - 业务数据存储方法、装置、计算机设备和存储介质 - Google Patents
业务数据存储方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116185305A CN116185305A CN202310311147.1A CN202310311147A CN116185305A CN 116185305 A CN116185305 A CN 116185305A CN 202310311147 A CN202310311147 A CN 202310311147A CN 116185305 A CN116185305 A CN 116185305A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- sub
- space
- queried
- 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
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种业务数据存储方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:获取目标业务数据对应的初始索引序列;从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间;当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列;当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。采用本方法能够提高资源利用率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种业务数据存储方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着数据存储技术的发展,出现了堆存储技术,将海量的数据长度不同的数据存储在堆中,并记录各个数据分别对应的索引,索引中存储了数据在堆中对应的指针,通过指针访问堆可以获取数据的值。
然而,使用传统的堆存储技术,盲目地将数据存入堆中,会出现资源利用率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高资源利用率的业务数据存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
本申请提供了一种业务数据存储方法。所述方法包括:
获取目标业务数据对应的初始索引序列;
从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间;
当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列;
当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。
本申请还提供了一种业务数据存储装置。所述装置包括:
索引序列获取模块,用于获取目标业务数据对应的初始索引序列;
目标子数据确定模块,用于从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间;
目标子数据存储模块,用于当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列;
目标子数据存储模块,还用于当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述业务数据存储方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述业务数据存储方法的步骤。
一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述业务数据存储方法的步骤。
上述业务数据存储方法、装置、计算机设备、存储介质和计算机程序产品,通过获取目标业务数据对应的初始索引序列,并从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列。当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。这样,在目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,直接将目标子数据写入目标索引空间,而无需为目标子数据分配相应的堆空间,能够避免开辟不必要的资源空间,有效提高资源利用率。
附图说明
图1为一个实施例中业务数据存储方法的应用环境图;
图2为一个实施例中业务数据存储方法的流程示意图;
图3为一个实施例中确定空间数据长度的流程示意图;
图4为一个实施例中业务数据存储的示意图;
图5为另一个实施例中业务数据存储的示意图;
图6为一个实施例中业务数据存储装置的结构框图;
图7为另一个实施例中业务数据存储装置的结构框图;
图8为一个实施例中计算机设备的内部结构图;
图9为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的业务数据存储方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能电视、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
终端和服务器均可单独用于执行本申请实施例中提供的业务数据存储方法。
例如,终端获取目标业务数据对应的初始索引序列。终端从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,终端将目标子数据写入目标索引空间,得到目标索引序列。当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,终端将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。
终端和服务器也可协同用于执行本申请实施例中提供的业务数据存储方法。
例如,终端向服务器发送携带目标业务数据标识的业务数据存储请求,服务器基于目标业务数据标识获取目标业务数据对应的初始索引序列。服务器从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,服务器将目标子数据写入目标索引空间,得到目标索引序列。当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,服务器将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。服务器向终端返回业务数据存储结果。
在一个实施例中,如图2所示,提供了一种业务数据存储方法,以该方法应用于计算机设备为例进行说明,计算机设备可以是终端或服务器,由终端或服务器自身单独执行,也可以通过终端和服务器之间的交互来实现。业务数据存储方法包括以下步骤:
步骤S202,获取目标业务数据对应的初始索引序列。
其中,业务数据是指包含大量待存储的子业务数据的业务对象,例如,业务对象可以为信息登记表格,表格内单元格中的数据信息即为子业务数据;业务对象可以为单据,单据包含的各个待存储的数据信息即为子业务数据;等等。目标业务数据是指需要进行数据存储的业务数据。索引序列是指由目标业务数据中各个子业务数据分别对应的索引空间组成的序列。初始索引序列是指在对目标子数据进行存储操作前,目标业务数据对应的索引序列。
示例性地,在使用堆存储方案对目标业务数据进行存储时,首先是在堆中为目标子数据分配相应的存储空间,再将目标子数据写入堆中对应的存储空间中,并将该存储空间对应的指针写入目标业务数据在初始索引序列中对应的目标索引空间。然而,当目标业务数据中包含大量不定长的子业务数据,即子业务数据的数据长度是不固定,并且存在大量的数据长度小于或等于索引空间长度的子业务数据时,盲目地将子业务数据存储在堆中,会造成资源的浪费。因此,在对目标业务数据进行存储操作时,计算机设备首先获取目标业务数据对应的初始索引序列,进而对比初始索引序列中目标索引空间的空间数据长度和目标子数据的目标数据长度,来确定目标子数据对应的存储方式,使得目标子数据能够以相应的存储方式进行存储。
步骤S204,从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。
其中,目标子数据是指从目标业务数据包含的各个子业务数据中确定的,需要进行数据存储操作的子业务数据。索引空间是指用于存储子业务数据对应的指针或者直接存储子业务数据的存储空间,在进行数据查询时,当索引空间中存储的数据为指针时,可以通过索引空间中存储的指针在堆中读取相应的子业务数据,当索引空间中存储的数据为子业务数据时,可以直接在索引空间中读取子业务数据。目标索引空间是指目标子数据对应的索引空间。
示例性地,当目标业务数据存在相应的子业务数据存储顺序时,计算机设备按照子业务数据存储顺序,在目标业务数据包含的各个子业务数据中确定目标子数据。当目标业务数据不存在对应的子业务数据存储顺序时,将目标业务数据包含的各个待存储的子业务数据中的任意一个子业务数据作为目标子数据。进而在初始索引序列中确定目标子数据对应的索引空间,将该索引空间作为目标子数据对应的目标索引空间。
步骤S206,当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列。
其中,目标数据长度是指目标子数据的数据长度,例如,当目标子数据为字符型数据时,目标数据长度为1字节,当目标子数据为整型数据时,目标数据长度为4字节等。空间数据长度是指索引空间所占存储空间的大小,例如,目标索引空间的空间数据长度可以为4字节、8字节等。目标索引序列是指对目标子数据进行存储操作后,即基于目标子数据更新初始索引序列中的目标索引空间后,得到的索引序列。
示例性地,对比目标子数据的目标数据长度和目标索引空间的空间数据长度,当目标数据长度小于或等于目标索引空间的空间数据长度时,直接将目标子数据写入目标索引空间中,得到更新后的目标索引序列。继续在目标业务数据包含的各个子业务数据中确定目标子数据,返回获取目标业务数据对应的初始索引序列的步骤执行,直至目标业务数据包含的所有子业务数据均被写入相应的存储空间中。
在一个实施例中,获取目标子数据对应的安全等级,当目标子数据的目标数据长度小于或等于空间数据长度,且目标子数据的安全等级小于预设安全等级时,将目标子数据存储在目标索引空间中,若目标子数据的安全等级大于或等于预设等级时,将目标子数据存储在目标业务数据对应的目标堆空间中。为目标业务数据包含的各个子业务数据设置相应的安全等级,根据不同子业务数据分别对应的安全等级和数据长度来确定对应的存储方式,在提高资源利用率的同时,还能够保证数据存储的安全性。
在一个实施例中,获取目标子数据对应的访问等级,访问等级用于表征目标子数据被访问的频率,若目标子数据为经常需要访问的数据时,目标子数据对应的访问等级越高。获取目标子数据对应的安全等级,当目标子数据的目标数据长度小于或等于空间数据长度,且目标子数据对应的访问等级大于或等于预设访问等级时,将目标子数据存储在目标索引空间中,从而提高查询速度并提高资源利用率。当目标子数据的目标数据长度小于或等于空间数据长度,目标子数据对应的访问等级小于预设访问等级,且目标子数据对应的安全等级大于或等于预设安全等级时,将目标子数据存储在目标堆空间中,从而提升目标子数据的安全性。当目标子数据的目标数据长度小于或等于空间数据长度,目标子数据对应的安全等级小于预设安全等级,且目标子数据对应的访问等级小于预设访问等级时,将目标子数据存储在目标索引空间中,从而提高查询速度并提高资源利用率。为目标业务数据包含的各个子业务数据分别设置相应的安全等级和访问等级,并根据不同子业务数据分别对应的安全等级、访问等级和数据长度来确定对应的存储方式,这样,在数据存储时综合考虑了不同子业务数据分别对应的安全需求和访问需求,有效提高了数据存储的灵活性。
步骤S208,当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。
其中,目标堆空间是指为目标业务数据分配的堆存储空间。目标指针是指目标子数据在目标堆空间中对应的存储空间的首地址。例如,当目标子数据为第一个存储至目标堆空间中的子数据时,目标子数据对应的目标指针为0,若目标子数据的数据长度为4字节,第二个存储至目标堆空间中的子数据对应的目标指针即为4。
示例性地,对比目标子数据的目标数据长度和目标索引空间的空间数据长度,当目标数据长度小于或等于目标索引空间的空间数据长度时,计算机设备在堆中为目标子数据分配相应的存储空间,作为目标子数据对应的目标堆空间。将目标子数据写入目标堆空间中,并将目标堆空间对应的目标指针写入目标索引空间中,得到目标索引序列。继续在目标业务数据包含的各个子业务数据中确定目标子数据,返回获取目标业务数据对应的初始索引序列的步骤执行,直至目标业务数据包含的所有子业务数据均被写入相应的存储空间中。
上述业务数据存储方法中,通过获取目标业务数据对应的初始索引序列,并从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列。当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。这样,在目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,直接将目标子数据写入目标索引空间,而无需为目标子数据分配相应的堆空间,能够避免开辟不必要的资源空间,有效提高资源利用率。
在一个实施例中,业务数据存储方法还包括:
统计各个子业务数据分别对应的数据长度,得到目标业务数据对应的预计数据长度;基于预计数据长度确定空间数据长度。
其中,预计数据长度是指存储目标业务数据包含的各个子业务数据所需的存储空间的长度。
示例性地,计算机设备统计目标业务数据中包含的子业务数据分别对应的数据长度,计算各个子业务数据分别对应的数据长度之和,得到目标业务数据对应的预计数据长度。基于预计数据长度计算索引空间对应的空间数据长度。例如,目标业务数据的索引空间对应的空间数据长度通常为4字节或者8字节,当空间数据长度为4字节时,对应的最大寻址范围为231-1,当空间数据长度为8字节时,对应的最大寻址范围为263-1,若预计数据长度为230字节时,可以将空间数据长度设置为4字节,若预计数据长度为240字节时,可以将空间数据长度设置为8字节。
在一个实施例中,计算机设备基于预计数据长度,确定索引空间对应的各个候选数据长度,候选数据长度是指索引空间对应的各个候选的空间数据长度,候选数据长度对应的最大寻址范围大于预计数据长度,并且候选数据长度的最大值为8字节。为了提高资源利用率,将各个候选数据长度中的最小值作为空间数据长度。例如,当预计数据长度为230字节时,索引空间对应的各个候选数据长度分别为4字节、5字节、6字节、7字节和8字节,将空间数据长度设置为4字节;当预计数据长度为250字节时,索引空间对应的各个候选数据长度分别为7字节和8字节,将空间数据长度设置为7字节。
在一个实施例中,可以人为设置目标业务数据对应的空间数据长度。具体地,通过判断目标业务数据所属的业务类型,来确定目标业务数据所需的空间数据长度。例如,当目标业务数据所属的业务类型所需的存储空间大小的最大值小于231-1字节时,可以人为将目标业务数据对应的空间数据长度设置为4字节;当目标业务数据所属的业务类型所需的存储空间大小的最大值大于231-1字节时,可以人为将目标业务数据对应的空间数据长度设置为8字节;等等。
上述实施例中,通过统计各个子业务数据分别对应的数据长度,来确定目标业务数据对应的预计数据长度,基于预计数据长度来确定索引空间对应的空间数据长度,能够有效节约计算机设备的存储资源,提高资源利用率。
在一个实施例中,如图3所示,基于所述预计数据长度确定所述空间数据长度,包括:
步骤S302,对预计数据长度进行二进制转换得到转换结果,基于转换结果得到初始数据长度。
步骤S304,获取参考数据长度,基于参考数据长度和初始数据长度,确定扩充长度范围。
步骤S306,在目标业务数据对应的子业务数据中,统计数据长度处于扩充长度范围内的子业务数据,得到扩充子数据量。
步骤S308,统计目标业务数据包含的子业务数据得到目标子数据量。
步骤S310,当扩充子数据量与目标子数据量之间的比值大于预设比值时,基于参考数据长度更新初始数据长度,得到空间数据长度。
其中,转换结果是指将预计数据长度转换为二进制后得到的结果。
初始数据长度是指基于预计数据长度确定的索引空间对应的初始的空间数据长度。参考数据长度是指用于对初始数据长度进行扩充的数据长度,参考数据长度大于或等于初始数据长度,例如,参考数据长度通常可以设置为8字节。扩充长度范围是指由初始数据长度和参考数据长度确定的数据长度范围,初始数据长度为扩充长度范围的下限,参考数据长度为扩充长度范围的下限,扩充长度范围包括参考数据长度,例如,当初始数据长度为2字节,参考数据长度为4字节时,扩充长度范围为(2,4]。扩充子数据量是指数据长度处于扩充长度范围内的子业务数据的数量。目标子数据量是指目标业务数据中包含的子业务数据的数量。
示例性地,将预计数据长度转换为二进制,得到转换结果,基于转换结果的位数确定索引空间对应的初始数据长度。例如,当预计数据长度为255字节时,将255转换为二进制得到的转换结果为1111 1111,转换结果对应的位数为8位,因此,初始数据长度应该大于或等于1字节,例如,可以将初始数据长度设置为1字节或者2字节。获取参考数据长度,当初始数据长度小于参考数据长度时,基于初始数据长度和参考数据长度确定扩充长度范围。在目标业务数据包含的各个子业务数据中,统计数据长度处于扩充长度范围内的各个子业务数据,得到扩充子数据量。统计目标业务数据包含的各个子业务数据,得到目标子数据量。计算扩充子数据量和目标子数据量之间的比值,当比值大于或者等于预设比值时,用参考数据长度更新初始数据长度,得到空间数据长度。例如,预设比值可以设置为0.5,即当目标业务数据中50%及以上的子业务数据的数据长度均处于扩充长度范围内时,用参考数据长度更新初始数据长度,例如,当参考数据长度为8字节,初始数据长度为4字节时,将初始数据长度更新为8字节。
上述实施例中,通过统计处于扩充长度范围内的子业务数据,来确定待扩充子数据量,当待扩充子数据量与目标子数据量的比值大于预设阈值时,说明仍然存在大量的数据长度较短的子业务数据需要存储在堆空间中。此时,基于参考数据长度更新初始数据长度,使得数据长度处于扩充长度范围内的各个子业务数据能够直接写入索引空间中,能够进一步地提高资源利用率。
在一个实施例中,业务数据存储方法还包括:
在目标索引序列中,基于目标子数据对应的存储方式,更新目标索引空间对应的目标标记位;存储方式包括堆空间存储和索引空间存储,目标标记位用于表征目标子数据对应的存储方式。
其中,标记位是指索引序列中用于记录各个子数据分别对应的存储方式的存储空间,例如,如图4所示,标记位可以位于索引空间之前,占用1个字节,当子数据对应的标记位为1时,表示子数据对应的存储方式为索引空间存储,即指针空间存储,当子数据对应的标记位为0时,表示子数据对应的存储方式为堆空间存储,即堆存储。目标标记位是指目标索引序列中的目标子数据对应的标记位。堆空间存储是指在堆中为子数据分配相应的存储空间作为子数据对应的堆空间,将子数据存储在该堆空间中。索引空间存储是指将子数据直接存储在对应的索引空间中。
示例性地,计算机设备基于目标子数据对应的存储方式,更新目标索引空间对应的目标标记位。例如,可以规定当目标子数据对应的存储方式为索引空间存储时,将目标子数据对应的目标标记位设置为1,当目标子数据对应的存储方式为堆空间存储时,将目标子数据对应的目标标记位设置为0。
在一个实施例中,可以目标索引空间对应的目标标记位可以存储在目标索引序列之外,例如,可以建立标记位序列,标记位序列中存储各个索引空间分别对应的标记位。
上述实施例中,基于目标子数据对应的存储方式,更新目标子数据对应的目标标记位,使得在进行数据查询时,能够根据目标标记位来确定目标子数据对应的存储方式,进而基于目标子数据对应的存储方式从相应的存储空间查询目标子数据,能够保证数据查询的可靠性。
在一个实施例中,业务数据存储方法还包括:
获取子数据查询请求;子数据查询请求携带待查询子数据对应的数据标识;基于数据标识,获取待查询子数据所属的业务数据对应的当前索引序列;基于数据标识,在当前索引序列中确定待查询子数据对应的待查询索引空间;基于待查询索引空间对应的待查询标记位,确定待查询子数据对应的存储方式;基于待查询子数据对应的存储方式,从相应的存储空间读取待查询子数据,向子数据查询请求对应的查询方返回待查询子数据。
其中,子数据查询请求是指目标业务数据中的待查询子数据对应的查询请求。待查询子数据是指子数据查询请求所查询的子业务数据。数据标识是指待查询子数据对应的标识,能够指示待查询子数据对应的当前索引序列,以及待查询子数据在当前索引序列中对应的待查询索引空间。当前索引序列是指待查询子数据所述的业务数据对应的索引序列。待查询索引空间是指待查询子数据在当前索引序列中对应的索引空间。待查询标记位是指待查询子数据对应的待查询索引空间的标记位。子数据查询请求对应的查询方是指发出子数据查询请求的计算机设备,查询方可以是终端或者服务器。
示例性地,计算机设备获取查询方发送的子数据查询请求,基于子数据查询请求中携带的数据标识,查找待查询子数据所属的业务数据对应的当前索引序列,进而再通过数据标识在当前索引序列中确定待查询子数据对应的待查询索引空间。根据待查询索引空间对应的待查询标记位,确定待查询子数据对应的存储方式。进而基于待查询子数据对应的存储方式和待查询索引空间,确定待查询子数据对应的存储空间,从相应的存储空间读取待查询子数据,并将查询到的待查询子数据返回至子数据查询请求对应的查询方。
上述实施例中,子数据查询请求中携带了待查询子数据对应的数据标识,基于数据标识确定待查询子数据对应的待查询索引空间,进而基于索引空间对应的待查询标记位来确定待查询子数据对应的存储方式,接着基于待查询子数据对应的存储方式从相应的存储空间读取待查询子数据,可以保证数据查询的可靠性。
在一个实施例中,基于待查询子数据对应的存储方式,从相应的存储空间读取待查询子数据,包括:
当待查询子数据对应的存储方式为堆空间存储时,基于待查询索引空间中存储的指针,确定待查询子数据在对应的待查询堆空间中的待查询存储空间,从待查询存储空间中读取待查询子数据;当待查询子数据对应的存储方式为索引空间存储时,从待查询索引空间中读取待查询子数据。
其中,待查询堆空间是指为待查询子数据所属的业务数据目标业务数据分配的堆存储空间。待查询存储空间是指待查询堆空间中存储了待查询子数据的存储空间。
示例性地,当待查询子数据对应的存储方式为堆空间存储时,从待查询索引空间中获取待查询子数据对应的指针,通过该指针在待查询子数据对应的待查询堆空间中确定待查询子数据对应的待查询存储空间,从待查询存储空间中读取待查询子数据。当待查询子数据对应的存储方式为索引空间存储时,从待查询子数据对应的待查询索引空间中读取待查询子数据。
上述实施例中,当待查询子数据对应的存储方式为索引空间存储时,直接从待查询子业务数据对应的待查询索引空间读取待查询子数据,减少基于指针定位到待查询数据对应的待查询存储空间的时间开销,提高数据查询的效率。
在一个实施例中,目标业务数据为目标表格,所述目标子数据为目标单元格数据。
其中,目标表格是指需要进行数据存储的表格,目标表格中包含大量不定长的单元格数据。目标单元格数据是指目标表格的单元格中存储的数据。
在一个具体的实施例中,本申请的业务数据存储方法可以应用于存储表格中的数据。业务数据存储方法包括以下步骤:
1、获取目标表格对应的索引序列
计算机设备获取目标表格对应的初始索引序列,获取初始索引序列中索引空间的空间数据长度。
2、确定目标单元格数据和目标索引空间
计算机设备从目标表格包含的各个单元格数据中确定目标单元格数据,并将初始索引序列中目标单元格数据对应的索引空间作为目标索引空间。
3、存储目标单元格数据
如图5所示,当目标单元格数据对应的数据长度小于或等于索引空间的空间数据长度时,将目标单元格数据写入目标索引空间,即利用指针空间存储,并更新目标索引空间对应的标记位,得到目标索引序列。当目标单元格数据对应的数据长度大于索引空间的空间数据长度时,将目标单元格数据和目标单元格数据对应的数据长度等信息写入目标表格对应的目标堆空间中,得到目标单元格数据对应的目标指针,将目标指针写入目标索引空间中,得到目标索引序列。
上述实施例中,当目标表格中存在大量的数据长度小于或等于索引空间长度的单元格数据时,将这类单元格数据直接存储在对应的索引空间中,将索引空间进行充分利用,并使用标记位标记该数据是直接利用索引空间存储还是存储在堆中。能够大大提高资源利用率,减少资源的浪费,此外将单元格数据存储在索引处,在查询数据时,能够减少一次基于指针查找存储空间的消耗,即减少根据指针定位到单元格数据在堆中对应的存储空间的时间开销,提高数据读取性能,使程序更加高效。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的业务数据存储方法的业务数据存储装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务数据存储装置实施例中的具体限定可以参见上文中对于业务数据存储方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种业务数据存储装置,包括:索引序列获取模块602、目标子数据确定模块604和目标子数据存储模块606,其中:
目标子数据确定模块,用于从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。
目标子数据存储模块,用于当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列。
目标子数据存储模块,还用于当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。
上述业务数据存储装置,通过获取目标业务数据对应的初始索引序列,并从目标业务数据包含的各个子业务数据中确定目标子数据,将初始索引序列中目标子数据对应的索引空间作为目标索引空间。当目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,将目标子数据写入目标索引空间,得到目标索引序列。当目标子数据对应的目标数据长度大于目标索引空间的空间数据长度时,将目标子数据写入目标业务数据对应的目标堆空间中,得到目标子数据对应的目标指针,将目标指针写入目标索引空间,得到目标索引序列。这样,在目标子数据对应的目标数据长度小于或等于目标索引空间的空间数据长度时,直接将目标子数据写入目标索引空间,而无需为目标子数据分配相应的堆空间,能够避免开辟不必要的资源空间,有效提高资源利用率。
在一个实施例中,如图7所示,业务数据存储装置还包括:
空间数据长度确定模块702,用于统计各个子业务数据分别对应的数据长度,得到目标业务数据对应的预计数据长度;基于预计数据长度确定空间数据长度。
目标标记位更新模块704,用于在目标索引序列中,基于目标子数据对应的存储方式,更新目标索引空间对应的目标标记位;存储方式包括堆空间存储和索引空间存储,目标标记位用于表征目标子数据对应的存储方式。
查询请求响应模块706,用于获取子数据查询请求;子数据查询请求携带待查询子数据对应的数据标识;基于数据标识,获取待查询子数据所属的业务数据对应的当前索引序列;基于数据标识,在当前索引序列中确定待查询子数据对应的待查询索引空间;基于待查询索引空间对应的待查询标记位,确定待查询子数据对应的存储方式;基于待查询子数据对应的存储方式,从相应的存储空间读取待查询子数据,向子数据查询请求对应的查询方返回待查询子数据。
在一个实施例中,空间数据长度确定模块702还用于:
对预计数据长度进行二进制转换得到转换结果,基于所述转换结果得到初始数据长度;获取参考数据长度,基于参考数据长度和初始数据长度,确定扩充长度范围;在目标业务数据对应的子业务数据中,统计数据长度处于扩充长度范围内的子业务数据,得到扩充子数据量;统计目标业务数据包含的子业务数据得到目标子数据量;当扩充子数据量与目标子数据量之间的比值大于预设比值时,基于参考数据长度更新初始数据长度,得到空间数据长度。
在一个实施例中,查询请求响应模块706还用于:
当待查询子数据对应的存储方式为堆空间存储时,基于待查询索引空间中存储的指针,确定待查询子数据在对应的待查询堆空间中的待查询存储空间,从待查询存储空间中读取待查询子数据;当待查询子数据对应的存储方式为索引空间存储时,从待查询索引空间中读取待查询子数据。
上述业务数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储初始索引序列、目标子数据等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务数据存储方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种业务数据存储方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8、9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种业务数据存储方法,其特征在于,所述方法包括:
获取目标业务数据对应的初始索引序列;
从所述目标业务数据包含的各个子业务数据中确定目标子数据,将所述初始索引序列中所述目标子数据对应的索引空间作为目标索引空间;
当所述目标子数据对应的目标数据长度小于或等于所述目标索引空间的空间数据长度时,将所述目标子数据写入所述目标索引空间,得到目标索引序列;
当所述目标子数据对应的目标数据长度大于所述目标索引空间的空间数据长度时,将所述目标子数据写入所述目标业务数据对应的目标堆空间中,得到所述目标子数据对应的目标指针,将所述目标指针写入所述目标索引空间,得到目标索引序列。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计所述各个子业务数据分别对应的数据长度,得到所述目标业务数据对应的预计数据长度;
基于所述预计数据长度确定所述空间数据长度。
3.根据权利要求2所述的方法,其特征在于,所述基于所述预计数据长度确定所述空间数据长度,包括:
对所述预计数据长度进行二进制转换得到转换结果,基于所述转换结果得到初始数据长度;
获取参考数据长度,基于所述参考数据长度和所述初始数据长度,确定扩充长度范围;
在所述目标业务数据对应的子业务数据中,统计数据长度处于所述扩充长度范围内的子业务数据,得到扩充子数据量;
统计所述目标业务数据包含的子业务数据得到目标子数据量;
当所述扩充子数据量与所述目标子数据量之间的比值大于预设比值时,基于所述参考数据长度更新所述初始数据长度,得到所述空间数据长度。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标索引序列中,基于所述目标子数据对应的存储方式,更新所述目标索引空间对应的目标标记位;所述存储方式包括堆空间存储和索引空间存储,所述目标标记位用于表征所述目标子数据对应的存储方式。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取子数据查询请求;所述子数据查询请求携带待查询子数据对应的数据标识;
基于所述数据标识,获取所述待查询子数据所属的业务数据对应的当前索引序列;
基于所述数据标识,在所述当前索引序列中确定所述待查询子数据对应的待查询索引空间;
基于所述待查询索引空间对应的待查询标记位,确定所述待查询子数据对应的存储方式;
基于所述待查询子数据对应的存储方式,从相应的存储空间读取所述待查询子数据,向所述子数据查询请求对应的查询方返回所述待查询子数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述待查询子数据对应的存储方式,从相应的存储空间读取所述待查询子数据,包括:
当所述待查询子数据对应的存储方式为堆空间存储时,基于所述待查询索引空间中存储的指针,确定所述待查询子数据在对应的待查询堆空间中的待查询存储空间,从所述待查询存储空间中读取所述待查询子数据;
当所述待查询子数据对应的存储方式为索引空间存储时,从所述待查询索引空间中读取所述待查询子数据。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述目标业务数据为目标表格,所述目标子数据为目标单元格数据。
8.一种业务数据存储装置,其特征在于,所述装置包括:
索引序列获取模块,用于获取目标业务数据对应的初始索引序列;
目标子数据确定模块,用于从所述目标业务数据包含的各个子业务数据中确定目标子数据,将所述初始索引序列中所述目标子数据对应的索引空间作为目标索引空间;
目标子数据存储模块,用于当所述目标子数据对应的目标数据长度小于或等于所述目标索引空间的空间数据长度时,将所述目标子数据写入所述目标索引空间,得到目标索引序列;
目标子数据存储模块,还用于当所述目标子数据对应的目标数据长度大于所述目标索引空间的空间数据长度时,将所述目标子数据写入所述目标业务数据对应的目标堆空间中,得到所述目标子数据对应的目标指针,将所述目标指针写入所述目标索引空间,得到目标索引序列。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310311147.1A CN116185305A (zh) | 2023-03-14 | 2023-03-14 | 业务数据存储方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310311147.1A CN116185305A (zh) | 2023-03-14 | 2023-03-14 | 业务数据存储方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185305A true CN116185305A (zh) | 2023-05-30 |
Family
ID=86450739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310311147.1A Pending CN116185305A (zh) | 2023-03-14 | 2023-03-14 | 业务数据存储方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185305A (zh) |
-
2023
- 2023-03-14 CN CN202310311147.1A patent/CN116185305A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105205014B (zh) | 一种数据存储方法和装置 | |
US9489409B2 (en) | Rollover strategies in a N-bit dictionary compressed column store | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN108762915B (zh) | 一种在gpu内存中缓存rdf数据的方法 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
CN110968585A (zh) | 面向列的存储方法、装置、设备及计算机可读存储介质 | |
CN112199039B (zh) | 虚拟存储管理方法及处理器 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN116185305A (zh) | 业务数据存储方法、装置、计算机设备和存储介质 | |
CN114745436A (zh) | 数据采集方法、装置、计算机设备和存储介质 | |
CN115168259A (zh) | 一种数据存取方法、装置、设备和计算机可读存储介质 | |
CN116561374B (zh) | 基于半结构化存储的资源确定方法、装置、设备及介质 | |
CN117453759B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN115993938B (zh) | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 | |
CN117667825A (zh) | 远程直接内存访问方法、装置、设备和存储介质 | |
CN118041996A (zh) | 报文转发方法、装置、车载终端和车辆 | |
CN116627876A (zh) | 地址重映射方法、装置、设备及存储介质 | |
CN117785889A (zh) | 一种针对图数据库的索引管理方法及相关设备 | |
CN117725266A (zh) | 负荷曲线数据处理方法、装置和智能电表 | |
CN117370488A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN116974745A (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 |