CN111339096A - 数据配置表处理的方法、装置、设备及存储介质 - Google Patents
数据配置表处理的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111339096A CN111339096A CN202010118289.2A CN202010118289A CN111339096A CN 111339096 A CN111339096 A CN 111339096A CN 202010118289 A CN202010118289 A CN 202010118289A CN 111339096 A CN111339096 A CN 111339096A
- Authority
- CN
- China
- Prior art keywords
- reading
- data
- configuration table
- reading mode
- data configuration
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000006870 function Effects 0.000 claims description 26
- 238000007906 compression Methods 0.000 claims description 19
- 230000006835 compression Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 235000019580 granularity Nutrition 0.000 abstract description 104
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据配置表处理的方法、装置、设备及存储介质,涉及应用技术领域。该数据配置表处理方法包括:获取针对数据配置表的读取指令;根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式,将所述调用接口对应的读取方式作为目标读取方式;采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据。本申请可以通过不同的调用接口对应不同的读取方式,以不同的读取粒度进行读取操作,相对于现有技术,解决了以固定的大粒度的读取方式进行数据的读取,造成读取速度较慢,且资源浪费的问题。
Description
技术领域
本申请涉及应用技术领域,具体而言,涉及一种数据配置表处理的方法、装置、设备及存储介质。
背景技术
在软件开发领域中,数据配置表是软件中一个重要的组成部分。在应用程序开发领域中,数据配置表的用途更加广泛和必要。游戏设计人员的大部分设计工作都是通过修改数据配置表来实现。
数据配置表在应用程序中一般是以字典的形式存在。在应用程序的使用过程中,需从数据配置表从读取对应的数据。目前的方案中,每次读取均以固定的整表为读取粒度,对数据进行读取,若读取的内容为数据配置表的某一行的数据,也需要先读取整个数据配置表,随后在整表中定位对应的数据。也就是说,目前的方案中,无论待读取的目标数据为何,其读取粒度均是固定的粒度。
但是这样以固定的读取粒度来读取,很容易造成资源的浪费,从而影响读取速度。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据配置表处理的方法、装置、设备及存储介质,以解决现有技术中的读取方式造成的资源浪费,读取速度较慢的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种数据配置表处理的方法,所述方法包括:
获取针对数据配置表的读取指令;
根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式,将所述调用接口对应的读取方式作为目标读取方式;
采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据。
可选地,所述根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式之前,还包括:
确定不存在指定的读取方式。
可选地,所述获取针对数据配置表的读取指令之后,所述方法还包括:
若存在指定的读取方式,将所述指定的读取方式作为目标读取方式。
可选地,所述读取方式包括以下至少一种:随机读取方式、顺序预读方式、整表读取方式。
可选地,若所述调用接口为第一函数的调用接口,则所述调用接口对应的读取方式为随机读取方式,所述随机读取方式对应的读取粒度为数据行粒度;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述随机读取方式,从所述数据配置表中读取数据行的数据。
可选地,所述从所述数据配置表中读取数据行的数据,包括:
根据所述数据配置表所在文件的文件头确定待读取的数据行的位置,所述文件头包含所述待读取的数据行的标识及位置偏移量;
读取所述数据配置表中所述位置对应的数据行的数据。
可选地,若所述调用接口为第二函数的调用接口,则所述读取方式为顺序预读方式,所述顺序预读方式对应的读取粒度为数据行粒度;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述顺序预读方式,依次读取所述数据配置表中数据行的数据。
可选地,若所述调用接口为第三函数的调用接口,则所述读取方式为整表读取方式,所述整表读取方式对应的读取粒度为数据表粒度;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述整表读取方式,读取所述数据配置表所有数据。
可选地,所述获取针对数据配置表的读取指令之后,包括:
根据所述读取指令从外存中将所述数据配置表加载至内存;
对内存中的所述数据配置表进行反序列化处理;
对反序列化处理后的数据配置表进行缓存;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取缓存的所述数据配置表中的数据。
可选地,所述根据所述读取指令从外存中将所述数据配置表加载至内存,包括:根据所述读取指令从外存中将以预设的压缩粒度压缩的数据配置表加载至内存;
对内存中的所述数据配置表进行反序列化处理之前,还包括:对所述数据配置表进行解压缩。
可选地。所述压缩粒度包括以下至少一种:数据行粒度和数据表粒度。
可选地,所述对反序列化处理后的数据配置表进行缓存,包括:
根据LRU原理和/或预设的内存限制对所述反序列化处理后的数据配置表进行缓存。
可选地,所述对反序列化处理后的数据配置表进行缓存,包括:
以预设的缓存粒度对所述反序列化处理后的数据配置表进行缓存,所述缓存粒度包括以下至少一种:数据行粒度和数据表粒度。
第二方面,本申请实施例还提供一种数据配置表处理的装置,包括:获取模块、确定模块和读取模块,其中:
所述获取模块,用于获取针对数据配置表的读取指令;
所述确定模块,用于根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式,将所述调用接口对应的读取方式作为目标读取方式;
所述读取模块,用于采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据。
可选地,所述确定模块,还用于确定不存在指定的读取方式。
可选地,所述确定模块,还用于若存在指定的读取方式,将所述指定的读取方式作为目标读取方式。
可选地,所述确定模块,还用于若所述调用接口为第一函数的调用接口,则所述调用接口对应的读取方式为随机读取方式,所述随机读取方式对应的读取粒度为数据行粒度;
所述读取模块,还用于采用所述随机读取方式,从所述数据配置表中读取数据行的数据。
可选地,所述确定模块,还用于根据所述数据配置表所在文件的文件头确定待读取的数据行的位置,所述文件头包含所述待读取的数据行的标识及位置偏移量;
可选地,所述读取模块,还用于读取所述数据配置表中所述位置对应的数据行的数据。
可选地,所述确定模块,还用于若所述调用接口为第二函数的调用接口,则所述读取方式为顺序预读方式,所述顺序预读方式对应的读取粒度为数据行粒度;
所述读取模块,还用于采用所述顺序预读方式,依次读取所述数据配置表中数据行的数据。
可选地,所述确定模块,还用于若所述调用接口为第三函数的调用接口,则所述读取方式为整表读取方式,所述整表读取方式对应的读取粒度为数据表粒度;
所述读取模块,还用于采用所述整表读取方式,读取所述数据配置表所有数据。
可选地,该装置还包括:加载模块、处理模块和缓存模块,其中:
所述加载模块,用于根据所述读取指令从外存中将所述数据配置表加载至内存;
所述处理模块,用于对内存中的所述数据配置表进行反序列化处理;
所述缓存模块,用于对反序列化处理后的数据配置表进行缓存;
所述确定模块,用于采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取缓存的所述数据配置表中的数据。
可选地,所述处理模块,还用于对内存中的所述数据配置表进行反序列化处理之前,还包括:对所述数据配置表进行解压缩。
可选地,所述缓存模块,还用于根据LRU原理和/或预设的内存限制对所述反序列化处理后的数据配置表进行缓存。
可选地,所述缓存模块,还用于以预设的缓存粒度对所述反序列化处理后的数据配置表进行缓存,所述缓存粒度包括以下至少一种:数据行粒度和数据表粒度。
第三方面,本申请实施例还提供一种电子设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所提供的任一数据配置表处理方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面所提供的任一数据配置表处理方法。
本申请的有益效果是:通过确定读取指令对应的调用接口,来确定调用接口对应的读取方式,将调用接口对应的读取方式作为目标读取方式,并在数据配置表中以该读取方式对应的读取粒度读取数据,针对数据配置表的读取粒度,可基于读取指令的调用接口获取,基于该读取粒度进行数据读取,使得对数据配置表的读取粒度更灵活,读取方式更丰富,有效避免了单一固定的整表读取粒度带来的资源浪费,提高了读取速度,并且解决了资源浪费的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供数据配置表处理的方法的流程示意图;
图2为本申请另一实施例提供的数据配置表处理的方法的流程示意图;
图3为本申请另一实施例提供的数据配置表处理的方法的流程示意图;
图4为本申请另一实施例提供的数据配置表处理的方法的流程示意图;
图5为本申请一实施例提供的数据配置表处理的装置的结构示意图;
图6为本申请另一实施例提供的数据配置表处理的装置的结构示意图;
图7为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
本申请提供数据配置表处理方法应用于安装有应用程序的电子设备,在应用程序的运行过程中,从该电子设备所存储的数据配置表中,读取对应的数据,实现对应的应用功能。其中,应用程序可以为游戏类应用程序,也可以为其它类应用程序。具体的实现过程中,可由该电子设备的处理器,从外存中读取数据配置表中对应的数据,还可将读取到的数据缓存至内存中。处理器为实现对数据配置表的读取,可依次通过数据配置表分层模型中的各个处理层进行处理。在一种可能的实现示例中,数据配置表分层模型可依次包括:查询分析层、缓存管理层、反序列化层、数据读取层。
通过本申请所提供的数据配置表分层模型中各个处理层的实现功能,可保证读取速度、解决内存占用问题、外存占用问题等性能指标。
其中,查询分析层,可用于根据读取指令确定读取方式,继而确定读取方式对应的读取粒度。本申请技术方案中,可对外提供预设的访问接口如与PYTHON DICT一致调用接口,对内根据被调用的接口的不同来区分不同的读取方式,有利于优化读取速度以及内存占用。
缓存管理层,可用于对反序列化得到的数据进行缓存管理等缓存相关的操作。本申请技术方案中,基于上述确定的读取方式,也可确定读取方式对应的缓存粒度,以根据对应的缓存力粒度,实现数据的缓存管理,有利于优化内存占用和读取速度。
在反序列化层,可用于对读取到的数据进行反序列化处理,用以进行缓存。本申请技术方案提供专门用于数据反序列化的方法,有利于优化读取速度和外存占用。
在数据读取层,可采用上述读取方式对应的读取粒度,从数据配置表中读取对应的数据。本申请技术方案,可根据基于调用指令所确定的读取方式对应的读取粒度,实现了数据配置表中数据的灵活读取。
下面对各层的具体优化方式进行详细说明。
图1为本申请一实施例提供的数据配置表处理的方法的流程示意图,该数据配置表处理方法可由安装有应用程序的电子设备执行。图1所示,该方法可包括:
S101:获取针对数据配置表的读取指令。
其中,读取指令为用户发出的从内存或缓存读取数据配置表的读取指令,或应用程序的内部处理逻辑触发的读取指令,该读取指令用于指示读取方式和读取内容,具体读取指令的形式并不以上述两种形式为限。
S102:根据读取指令对应的调用接口,确定调用接口对应的读取方式,将调用接口对应的读取方式作为目标读取方式。
可选地,不同的调用接口对应不同的读取方式,不同的读取方式对应不同的读取粒度,例如,在本申请的一个实施例中,读取粒度可以为:数据行粒度或数据表粒度等。根据读取指令的具体内容我们可以确定需要调用的接口,即对应的调用接口。
S103:采用目标读取方式以及目标读取方式对应的读取粒度读取数据配置表中的数据。
其中,数据配置表中包括多个数据,多个数据在数据配置表中逐行放置,即数据配置表中每一行放置一个数据,读取时,可以读取数据配置表中的某一行或多行数据,也可以读取整个数据配置表,具体读取的内容根据用户的读取指令确定。
可选地,在本申请的一个实施例中,读取粒度可以包括:整表粒度和数据行粒度。
采用本申请提供的数据配置表处理方法,通过读取指令的调用接口,来确定调用接口对应的读取方式,将调用接口对应的读取方式作为目标读取方式,并在数据配置表中以该读取方式对应的读取粒度读取数据,针对数据配置表的读取粒度,可基于读取指令的调用接口获取,基于该读取粒度进行数据读取,使得对数据配置表的读取粒度更灵活,读取方式更丰富,有效避免了单一固定的整表读取粒度带来的资源浪费的问题,提高了读取速度。
可选地,根据用户读取指令的不同,采用不同的数据读取方式,在本申请的一个实施例中,具体数据读取方式包括:随机读取、顺序读取和整表读取;但是也可以根据用户需要在数据读取方式中添加其他的读取方式,具体数据读取方式可以根据用户需要设计,并不以下述三个实施例为限制。
图2为本申请另一实施例提供的数据配置表的处理的方法的流程示意图,如图2所示,S102之前,该方法还包括:
S104:确定不存在指定的读取方式。
其中,根据读取指令,确定读取指令中是否存在指定的读取方式。当读取指令中不存在指定的读取方式时,我们可以根据调用接口来确定读取方式。
可选地,在本申请的一个实施例中,读取方式包括以下至少一种:随机读取方式、顺序预读方式、整表读取方式。
则S101之后还可包括:若存在指定的读取方式,将指定的读取方式作为目标读取方式。
可选地,若调用接口为第一函数的调用接口,则调用接口对用的读取方式为随机读取数据的方式,随机读取方式对应的读取粒度为数据行粒度;则S103包括:采用随机读取数据的方式,从数据配置表中读取数据行的数据。
其中,随机读取方式对应的读取粒度为数据行粒度,即以数据行粒度为单位从数据配置表中读取数据。
从数据配置表中读取数据行的数据,包括:根据数据配置表所在文件的文件头确定待读取的数据行的位置,文件头包含待读取的数据行的标识及位置偏移量;读取数据配置表中位置对应的数据行的数据。
可选地,随机读取可以随机读取一个数据行的数据,也可随机读取多个数据行的数据,具体读取的数据行信息根据读取指令中的读取内容确定,本申请在此不做任何限制。
可选地,第一函数可以为获取(get)函数或条目获取(getitem)函数。
举例说明,可以根据函数名字确定接口,若接口对应的读取方式为随机读取方式,则根据待读取数据的索引定位其具体位置,随机读取数据配置表一行的数据的代码设置可以如下:
Import demodata.skill
Doc=demodata.skill.data[(1263,1)]
可选地,若调用接口为第二函数的调用接口,则调用接口对应的读取方式为顺序预读方式,顺序预读方式对应的读取粒度为数据行粒度;则S103包括:采用顺序预读数据的方式,依次读取数据配置表中数据行的数据。
其中,顺序预读方式对应的读取粒度为数据行粒度,即以数据行为单位从数据配置表中顺序读取数据;读取过程中会顺序读取数据配置表中数据行的数据,并且对读取的数据进行预读。对数据进行预读即为读取数据行时,先对数据行的主要内容进行读取,从而加速后续读取数据行的完整数据时的速度。举例说明:若调用接口为第二函数的调用接口,则可以根据读取指令,在数据配置表中进行顺序预读,确定待读取数据行的数据的位置信息,从而确定待读取数据行的数据,随后依次对确定的数据行数据进行读取。
可选地,第二函数可以为迭代条目(itertem)函数。
举例说明,若读取方式为顺序读取多行,则代码设置可以如下:
Import demodata.skill
For i in self.keys:
Doc=demodata.skill.data[i]
可选地,若调用接口为第三函数的调用接口,则读取方式为整表读取数据的方式,整表读取方式对应的读取粒度为数据表粒度;则S103包括:采用整表读取方式,读取数据配置表所有数据。
可选地,整表读取数据的方式对应的读取粒度为数据表粒度,即以数据表为单位读取整张数据配置表中的所有数据;读取过程中会首先定位整张数据配置表的位置,随后对整张数据配置表进行读取。其中,一个数据配置表对应一个文件,以数据表为单位对数据配置表进行读取,即为读取当前数据配置表对应的整个文件。
可选地,第三函数可以为条目(Items)函数。
可选地,若读取方式为读取整表,则代码设置可以如下:
Import demodata.skill
For k,v in demodata.skill.data.iteritema():
Doc=v
相对于传统技术中,不管是不是读取数据配置表中的某一行数据,均会首先载入整个数据配置表,随后在整个数据配置表中读取目标数据行的数据。本申请提供的读取方式可以根据不同的调用接口对应不同的读取方式,根据不同的读取方式对应不同的读取粒度,除了可以以数据配置表为粒度,还可以以数据行为粒度对目标数据进行读取,不需要整表读取后再读取目标数据,从而降低的格外的资源消耗,减少了内存占用。
举例说明:读取指令为读取数据配置表中的一数据行的数据时,若该数据配置表包含3401行数据,在传统技术中,需要读取整个数据配置表中的每一行数据,随后在读取的每一行数据中,选择目标数据进行读取;而本申请提供的读取方式,只需要读取一行数据,相对于传统技术,无需额外读取其余3400行数据。
数据配置表中的数据可以以预设的压缩方式进行压缩并存储在外存中,图3为本申请另一实施例提供的数据配置表处理的方法的流程示意图,如图3所示,S102之后,该方法还包括:
S106:根据读取指令从外存中将数据配置表加载至内存。
S107:对内存中的数据配置表进行反序列化处理。
可选地,本申请的一个实施例中,数据反序列化的方法可以为MSPACK,JSON等,具体反序列化的方法选择可以根据用户需要设计,本申请在此不做任何限制。
S108:将反序列化处理后的数据配置表进行缓存。
可选地,在本申请的一个实施例中,根据最近最少使用(Least Recently Used,LRU)原理和/或预设的内存限制对反序列化处理后的数据配置表进行缓存。
进一步的,采用目标读取方式以及目标读取方式对应的读取粒度读取数据配置表中的数据,包括:采用目标读取方式以及目标读取方式对应的读取粒度读取缓存的数据配置表中的数据。
根据缓存粒度,将反序列化处理后的数据配置表按照对应的缓存粒度缓存至内存中,相对于传统技术中,无论读取整表数据还是某行数据,均需要将整表均存储在内存中,而本申请中根据读取数据对应的缓存粒度,将读取数据缓存至内存中,可以减少内存的占用。
其中,具体读取方式与上述实施例给出的相同,在此不再赘述。
图4为本申请另一实施例提供的数据配置表处理的方法的流程示意图,如图4所示,S106可包括:
S109:根据读取指令从外存中将以预设的压缩粒度压缩的数据配置表加载至内存。
可选地,在本申请的一个实施例中,以预设的压缩粒度压缩数据配置表的过程中,需要将所有数据的标识和偏移存放在数据头,并对压缩后的数据按照数据配置表中的顺序依次存放,最后存放的是整个数据配置表的整表压缩数据,后续用户读取时,根据读取指令确定对应的压缩数据。
在本发明实施例中,压缩粒度包括以下至少一种:数据行粒度和数据表粒度,即通过提供两种不同粒度的预设的压缩方式,使得压缩时可以根据数据格式对应的压缩方式对数据进行压缩,数据格式可以为数据表格式或者数据行格式,在对数据配置表和数据压缩后,将压缩后的数据存放在外存中,如果以数据表粒度对某个数据配置表进行压缩,则可以达到0.088的压缩率;如果以数据行粒度对某个数据配置表中的数据进行压缩,则可以达到0.227的压缩率;如果需要同时对整张数据配置表和数据配置表中的数据行进行压缩,则可以达到0.315的压缩率,从而将数据以压缩的格式存放在外存中,可以减小外存的占用。
在本申请的一个实施例中,以数据行粒度进行压缩的过程为:首先需要使用同一个数据配置表中的所有数据计算出一个压缩字典,随后使用该压缩字典对每一行数据进行压缩。其中,使用压缩字典对每一行数据进行压缩,可以提高压缩率,从而减少外存的占用。
对应地,S107之前,还包括:
S110:对数据配置表进行解压缩。
其中,由于读取到的数据是从外存中读取的压缩数据,所以需要解压后才能使用,解压过程中,需要根据压缩粒度确定对用的解压缩方式。
本申请提供的数据配置表处理方法中,可由于数据配置表和每行数据均是根据对应的压缩方式压缩存放在外存中的,这样的存放方式减少了外存占用;从外存读取数据至内存的过程中,会根据读取指令对应的调用接口选择对应的读取方式,除了整表读取时为根据数据表粒度对数据进行读取,其他读取方式均以数据行粒度为读取单位进行读取,这样的读取方式不需要调用整张表后再读取,仅根据读取指令读取对应的数据行数据,这样就减少了内存的占用,同时提高了读取速度,减少了资源的浪费。因此,采用本申请提出的数据配置表处理方法,读取速度、内存占用、外存占用等性能均显著提高。
图5为本申请一实施例提供的数据配置表处理的装置的结构示意图,如图5所示,该装置包括:获取模块201、确定模块202和读取模块203,其中:
获取模块201,用于获取针对数据配置表的读取指令。
确定模块202,用于根据读取指令对应的调用接口,确定调用接口对应的读取方式,将调用接口对应的读取方式作为目标读取方式。
读取模块203,用于采用目标读取方式以及目标读取方式对应的读取粒度读取数据配置表中的数据。
可选地,确定模块202,还用于确定不存在指定的读取方式。
可选地,确定模块202,还用于若存在指定的读取方式,将指定的读取方式作为目标读取方式。
可选地,确定模块202,还用于若调用接口为第一函数的调用接口,则调用接口对应的读取方式为随机读取方式,随机读取方式对应的读取粒度为数据行粒度;
读取模块203,还用于采用随机读取方式,从数据配置表中读取数据行的数据。
可选地,确定模块202,还用于根据数据配置表所在文件的文件头确定待读取的数据行的位置,文件头包含待读取的数据行的标识及位置偏移量;
可选地,读取模块203,还用于读取数据配置表中位置对应的数据行的数据。
可选地,确定模块202,还用于若调用接口为第二函数的调用接口,则读取方式为顺序预读方式,顺序预读方式对应的读取粒度为数据行粒度;
读取模块203,还用于采用顺序预读方式,依次读取数据配置表中数据行的数据。
可选地,确定模块202,还用于若调用接口为第三函数的调用接口,则读取方式为整表读取方式,整表读取方式对应的读取粒度为数据表粒度。
读取模块203,还用于采用整表读取方式,读取数据配置表所有数据。
图6为本申请一实施例提供的数据配置表处理的装置的结构示意图,如图6所示,该装置还包括:加载模块204、处理模块205和缓存模块206,其中:
加载模块204,用于根据读取指令从外存中将数据配置表加载至内存;
处理模块205,用于对内存中的数据配置表进行反序列化处理;
缓存模块206,用于对反序列化处理后的数据配置表进行缓存;
确定模块202,用于采用目标读取方式以及目标读取方式对应的读取粒度读取缓存的数据配置表中的数据。
可选地,处理模块205,还用于对内存中的数据配置表进行反序列化处理之前,还包括:对数据配置表进行解压缩。
可选地,缓存模块206,还用于根据LRU原理和/或预设的内存限制对反序列化处理后的数据配置表进行缓存。
可选地,缓存模块206,还用于以预设的缓存粒度对反序列化处理后的数据配置表进行缓存,缓存粒度包括以下至少一种:数据行粒度和数据表粒度。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图7为本申请一实施例提供的电子设备的结构示意图。该游戏中模型的配置设备包括:处理器501、存储介质502和总线503。
处理器501用于存储程序,处理器501调用存储介质502存储的程序,以执行上述图1-图4对应的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如存储介质,该存储介质上存储有计算机程序,包括程序,该程序在被处理器运行时执行上述方法对应的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种数据配置表处理的方法,其特征在于,所述方法包括:
获取针对数据配置表的读取指令;
根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式,将所述调用接口对应的读取方式作为目标读取方式;
采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式之前,还包括:
确定不存在指定的读取方式。
3.根据权利要求1所述的方法,其特征在于,所述获取针对数据配置表的读取指令之后,所述方法还包括:
若存在指定的读取方式,将所述指定的读取方式作为目标读取方式。
4.根据权利要求1所述的方法,其特征在于,所述读取方式包括以下至少一种:随机读取方式、顺序预读方式、整表读取方式。
5.根据权利要求4所述的方法,其特征在于,若所述调用接口为第一函数的调用接口,则所述调用接口对应的读取方式为随机读取方式,所述随机读取方式对应的读取粒度为数据行粒度;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述随机读取方式,从所述数据配置表中读取数据行的数据。
6.根据权利要求5所述的方法,其特征在于,所述从所述数据配置表中读取数据行的数据,包括:
根据所述数据配置表所在文件的文件头确定待读取的数据行的位置,所述文件头包含所述待读取的数据行的标识及位置偏移量;
读取所述数据配置表中所述位置对应的数据行的数据。
7.根据权利要求4所述的方法,其特征在于,若所述调用接口为第二函数的调用接口,则所述读取方式为顺序预读方式,所述顺序预读方式对应的读取粒度为数据行粒度;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述顺序预读方式,依次读取所述数据配置表中数据行的数据。
8.根据权利要求4所述的方法,其特征在于,若所述调用接口为第三函数的调用接口,则所述读取方式为整表读取方式,所述整表读取方式对应的读取粒度为数据表粒度;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述整表读取方式,读取所述数据配置表所有数据。
9.根据权利要求1-8中任一所述的方法,其特征在于,所述获取针对数据配置表的读取指令之后,包括:
根据所述读取指令从外存中将所述数据配置表加载至内存;
对内存中的所述数据配置表进行反序列化处理;
对反序列化处理后的数据配置表进行缓存;
所述采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据,包括:
采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取缓存的所述数据配置表中的数据。
10.根据权利要求9所述的方法,其特征在于,所述根据所述读取指令从外存中将所述数据配置表加载至内存,包括:
根据所述读取指令从外存中将以预设的压缩粒度压缩的数据配置表加载至内存;
对内存中的所述数据配置表进行反序列化处理之前,还包括:对所述数据配置表进行解压缩。
11.根据权利要求10所述的方法,其特征在于,所述压缩粒度包括以下至少一种:数据行粒度和数据表粒度。
12.根据权利要求9所述的方法,其特征在于,所述对反序列化处理后的数据配置表进行缓存,包括:
根据最近最少使用LRU原理和/或预设的内存限制对所述反序列化处理后的数据配置表进行缓存。
13.根据权利要求9所述的方法,其特征在于,所述对反序列化处理后的数据配置表进行缓存,包括:
以预设的缓存粒度对所述反序列化处理后的数据配置表进行缓存,所述缓存粒度包括以下至少一种:数据行粒度和数据表粒度。
14.一种数据配置表处理的装置,其特征在于,所述装置包括:获取模块、确定模块和读取模块,其中:
所述获取模块,用于获取针对数据配置表的读取指令;
所述确定模块,用于根据所述读取指令对应的调用接口,确定所述调用接口对应的读取方式,将所述调用接口对应的读取方式作为目标读取方式;
所述读取模块,用于采用所述目标读取方式以及所述目标读取方式对应的读取粒度读取所述数据配置表中的数据。
15.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118289.2A CN111339096B (zh) | 2020-02-25 | 2020-02-25 | 数据配置表处理的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118289.2A CN111339096B (zh) | 2020-02-25 | 2020-02-25 | 数据配置表处理的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111339096A true CN111339096A (zh) | 2020-06-26 |
CN111339096B CN111339096B (zh) | 2024-07-23 |
Family
ID=71185618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118289.2A Active CN111339096B (zh) | 2020-02-25 | 2020-02-25 | 数据配置表处理的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339096B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299141A (zh) * | 2018-10-19 | 2019-02-01 | 深圳市元征科技股份有限公司 | 一种数据查询的方法、系统及相关组件 |
CN109521970A (zh) * | 2018-11-20 | 2019-03-26 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
CN109710572A (zh) * | 2018-12-29 | 2019-05-03 | 北京赛思信安技术股份有限公司 | 一种基于HBase的文件分片方法 |
-
2020
- 2020-02-25 CN CN202010118289.2A patent/CN111339096B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299141A (zh) * | 2018-10-19 | 2019-02-01 | 深圳市元征科技股份有限公司 | 一种数据查询的方法、系统及相关组件 |
CN109521970A (zh) * | 2018-11-20 | 2019-03-26 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
CN109710572A (zh) * | 2018-12-29 | 2019-05-03 | 北京赛思信安技术股份有限公司 | 一种基于HBase的文件分片方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111339096B (zh) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220027354A1 (en) | Hybrid Column Store Providing Both Paged and Memory-Resident Configurations | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
CN115150471A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN113570033A (zh) | 神经网络处理单元、神经网络的处理方法及其装置 | |
CN112771546A (zh) | 运算加速器和压缩方法 | |
CN116721007B (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
CN115129460A (zh) | 获取算子硬件时间的方法、装置、计算机设备和存储介质 | |
CN111339096A (zh) | 数据配置表处理的方法、装置、设备及存储介质 | |
CN111858612A (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
CN116483643A (zh) | 一种gpu调试方法、装置、设备及存储介质 | |
WO2022001133A1 (zh) | 一种提升软拷贝读性能的方法、系统、终端及存储介质 | |
CN115408423A (zh) | 业务处理方法、装置、设备及存储介质 | |
CN115878550A (zh) | 一种数据处理的方法、芯片、设备以及系统 | |
CN114692824A (zh) | 一种神经网络模型的量化训练方法、装置和设备 | |
CN118093932B (zh) | 视频处理方法、装置和计算机设备 | |
CN112468576B (zh) | 一种云内存共享的方法与系统 | |
CN113570034B (zh) | 处理装置、神经网络的处理方法及其装置 | |
CN114238292B (zh) | 数据清洗方法、装置、计算机设备、计算机可读存储介质 | |
CN112579607B (zh) | 数据访问方法和装置、存储介质、电子设备 | |
CN118394919B (zh) | 生成式对话模型推理方法、设备、介质及计算机程序产品 | |
US20210192353A1 (en) | Processing unit, processor core, neural network training machine, and method | |
CN110489469B (zh) | 数据传输方法、装置、计算机设备以及存储介质 | |
CN115934317A (zh) | 分布式数据处理方法、装置、电子设备及存储介质 | |
CN116186088A (zh) | 一种缓存管理方法、装置、计算机设备以及存储介质 | |
CN116501454A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |