CN115017191A - 数据处理方法、装置、服务器及存储介质 - Google Patents

数据处理方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN115017191A
CN115017191A CN202210441351.0A CN202210441351A CN115017191A CN 115017191 A CN115017191 A CN 115017191A CN 202210441351 A CN202210441351 A CN 202210441351A CN 115017191 A CN115017191 A CN 115017191A
Authority
CN
China
Prior art keywords
data
file
indication information
server
data file
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
Application number
CN202210441351.0A
Other languages
English (en)
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202210441351.0A priority Critical patent/CN115017191A/zh
Publication of CN115017191A publication Critical patent/CN115017191A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Abstract

本公开关于一种数据处理方法、装置、服务器及存储介质,属于计算机技术领域。方法包括:接收第一服务器发送的第一数据文件和第二数据文件,所述第一数据文件包括多条数据,所述第二数据文件包括每条所述数据对应的数据标识和位置指示信息,所述数据的位置指示信息用于指示所述数据的存储位置;将所述第一数据文件加载到内存中;将所述第二数据文件中的每条所述数据对应的所述数据标识和所述位置指示信息关联存储到所述内存中。在数据推荐过程中,先基于数据标识查询数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。

Description

数据处理方法、装置、服务器及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、服务器及存储介质。
背景技术
随着计算机技术的发展,数据推荐的应用日益广泛。相关技术中,数据库中存储了大量的数据,服务器从数据库中获取每条数据,将每条数据和每条数据对应的数据标识逐条加载到内存中。在数据推荐过程中,服务器基于目标数据对应的数据标识,从内存中筛选该目标数据。然而数据库中的数据量很大,逐条加载这些数据和对应的数据标识需要花费较长时间,导致服务器的数据加载效率较低。
发明内容
本公开提供一种数据处理方法、装置、服务器及存储介质,提高了数据加载效率。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据处理方法,所述方法包括:
接收第一服务器发送的第一数据文件和第二数据文件,所述第一数据文件包括多条数据,所述第二数据文件包括每条所述数据对应的数据标识和位置指示信息,所述数据的位置指示信息用于指示所述数据的存储位置;
将所述第一数据文件加载到内存中;
将所述第二数据文件中的每条所述数据对应的所述数据标识和所述位置指示信息关联存储到所述内存中。
在一些实施例中,所述方法还包括:
确定待查询的目标数据对应的目标数据标识;
从所述内存中,查询所述目标数据标识关联的所述位置指示信息;
从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据。
在一些实施例中,任一所述数据的所述位置指示信息包括所述数据所在的第一数据文件的文件标识、所述数据在所述第一数据文件中的偏移量以及所述数据对应的长度;
所述从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的数据,包括:
从所述文件标识对应的所述第一数据文件中,从所述偏移量指示的地址开始,获取所述长度的所述目标数据。
在一些实施例中,所述从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据,包括:
在查询到的所述位置指示信息包括状态标识的情况下,从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据,所述状态标识用于表示所述数据存储在所述第一数据文件中。
在一些实施例中,每条所述位置指示信息和所述数据对应的数据标识关联存储在所述内存的目标内存块中;所述方法还包括:
获取增量数据;
将所述增量数据和所述增量数据对应的数据标识关联存储在所述目标内存块中。
在一些实施例中,所述方法还包括:
确定待查询的目标数据对应的目标数据标识;
从所述目标内存块中,查询所述目标数据标识关联的所述位置指示信息;
在未查询到所述目标数据标识对应的位置指示信息的情况下,从所述目标内存块中,获取所述目标数据标识对应的所述目标数据。
在一些实施例中,所述确定待查询的目标数据对应的目标数据标识,包括:
接收用户终端发送的数据获取请求,获取所述数据获取请求中携带的所述目标数据标识;或者,接收用户终端发送的推荐请求,获取所述推荐请求中携带的用户信息,确定所述用户信息关联的所述目标数据标识;
所述方法还包括:向用户终端发送所述目标数据。
在一些实施例中,所述将所述第一数据文件加载到内存中,包括:
响应于目标服务启动,将所述第一数据文件加载到内存中,所述目标服务用于进行数据推荐。
在一些实施例中,所述将所述第二数据文件中的每条所述数据对应的所述数据标识和所述位置指示信息关联存储到所述内存中,包括:
将所述第二数据文件映射至所述内存中。
根据本公开实施例的第二方面,提供一种数据处理方法,所述方法包括:
将数据库中的多条数据写入第一数据文件中;
生成每条所述数据的位置指示信息,所述位置指示信息用于指示所述数据的存储位置;
将每条所述数据对应的数据标识和所述数据的所述位置指示信息,关联写入第二数据文件中;
向第二服务器发送所述第一数据文件和所述第二数据文件。
在一些实施例中,所述生成每条所述数据的位置指示信息,包括:
确定每条所述数据写入到的第一数据文件对应的文件标识、所述数据在所述第一数据文件中的偏移量以及所述数据的长度;
将所述文件标识、所述偏移量和所述长度确定为所述数据的位置指示信息。
在一些实施例中,在所述生成每条所述数据的位置指示信息之后,所述方法还包括:
将所述数据对应的数据标识与所述数据的所述位置指示信息关联存储在内存中;
所述将每条所述数据对应的数据标识和所述数据的所述位置指示信息,关联写入第二数据文件中,包括:
将所述内存中已关联存储的每条所述数据对应的数据标识和所述位置指示信息,写入所述第二数据文件中。
在一些实施例中,所述将数据库中的多条数据写入第一数据文件中,包括:
从所述数据库中获取所述多条数据,将每条所述数据和所述数据对应的数据标识关联存储在内存中;
将所述内存中已存储的每条所述数据写入所述第一数据文件中。
在一些实施例中,所述将每条所述数据和所述数据对应的数据标识关联存储在内存中,包括:
对每条所述数据对应的数据标识进行哈希计算,得到数据索引;
将所述数据索引和所述数据关联存储在所述内存中。
在一些实施例中,所述将所述内存中已存储的每条所述数据写入所述第一数据文件中,包括:
将所述内存中已存储的每条所述数据映射至所述第一数据文件。。
根据本公开实施例的第三方面,提供一种数据处理装置,所述装置包括:
文件接收单元,被配置为执行接收第一服务器发送的第一数据文件和第二数据文件,所述第一数据文件包括多条数据,所述第二数据文件包括每条所述数据对应的数据标识和位置指示信息,所述数据的位置指示信息用于指示所述数据的存储位置;
第一加载单元,被配置为执行将所述第一数据文件加载到内存中;
所述第一加载单元,还被配置为执行将所述第二数据文件中的每条所述数据对应的所述数据标识和所述位置指示信息关联存储到所述内存中。
在一些实施例中,所述装置还包括:
标识确定单元,被配置为执行确定待查询的目标数据对应的目标数据标识;
信息查询单元,被配置为执行从所述内存中,查询所述目标数据标识关联的所述位置指示信息;
第一获取单元,被配置为执行从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据。
在一些实施例中,任一所述数据的所述位置指示信息包括所述数据所在的第一数据文件的文件标识、所述数据在所述第一数据文件中的偏移量以及所述数据对应的长度;
所述第一获取单元,被配置为执行从所述文件标识对应的所述第一数据文件中,从所述偏移量指示的地址开始,获取所述长度的所述目标数据。
在一些实施例中,所述第一获取单元,被配置为执行在查询到的所述位置指示信息包括状态标识的情况下,从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据,所述状态标识用于表示所述数据存储在所述第一数据文件中。
在一些实施例中,每条所述位置指示信息和所述数据对应的数据标识关联存储在所述内存的目标内存块中;所述装置还包括:
第二获取单元,被配置为执行获取增量数据;
第二加载单元,被配置为执行将所述增量数据和所述增量数据对应的数据标识关联存储在所述目标内存块中。
在一些实施例中,所述装置还包括:
标识确定单元,被配置为执行确定待查询的目标数据对应的目标数据标识;
信息查询单元,被配置为执行从所述目标内存块中,查询所述目标数据标识关联的所述位置指示信息;
数据获取单元,被配置为执行在未查询到所述目标数据标识对应的位置指示信息的情况下,从所述目标内存块中,获取所述目标数据标识对应的所述目标数据。
在一些实施例中,所述标识确定单元,被配置为执行接收用户终端发送的数据获取请求,获取所述数据获取请求中携带的所述目标数据标识;或者,所述标识确定单元,还被配置为执行接收用户终端发送的推荐请求,获取所述推荐请求中携带的用户信息,确定所述用户信息关联的所述目标数据标识;
所述装置还包括:数据发送单元,被配置为执行向用户终端发送所述目标数据。
在一些实施例中,所述第一加载单元,被配置为执行响应于目标服务启动,将所述第一数据文件加载到内存中,所述目标服务用于进行数据推荐。
在一些实施例中,所述第一加载单元,被配置为执行将所述第二数据文件映射至所述内存中。
根据本公开实施例的第四方面,提供一种数据处理装置,所述装置包括:
数据写入单元,被配置为执行将数据库中的多条数据写入第一数据文件中;
信息生成单元,被配置为执行生成每条所述数据的位置指示信息,所述位置指示信息用于指示所述数据的存储位置;
所述数据写入单元,还被配置为执行将每条所述数据对应的数据标识和所述数据的所述位置指示信息,关联写入第二数据文件中;
文件发送单元,被配置为执行向第二服务器发送所述第一数据文件和所述第二数据文件。
在一些实施例中,所述信息生成单元,被配置为执行确定每条所述数据写入到的第一数据文件对应的文件标识、所述数据在所述第一数据文件中的偏移量以及所述数据的长度;将所述文件标识、所述偏移量和所述长度确定为所述数据的位置指示信息。
在一些实施例中,所述装置还包括:
信息存储单元,被配置为执行将所述数据对应的数据标识与所述数据的所述位置指示信息关联存储在内存中;
所述数据写入单元,被配置为执行将所述内存中已关联存储的每条所述数据对应的数据标识和所述位置指示信息,写入所述第二数据文件中。
在一些实施例中,所述数据写入单元,被配置为执行从所述数据库中获取所述多条数据,将每条所述数据和所述数据对应的数据标识关联存储在内存中;将所述内存中已存储的每条所述数据写入所述第一数据文件中。
在一些实施例中,所述数据写入单元,被配置为执行对每条所述数据对应的数据标识进行哈希计算,得到数据索引;将所述数据索引和所述数据关联存储在所述内存中。
在一些实施例中,所述数据写入单元,被配置为执行将所述内存中已存储的每条所述数据映射至所述第一数据文件。
根据本公开实施例的第五方面,提供一种服务器,所述服务器包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述方面所述的数据处理方法。
根据本公开实施例提供的第六方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如上述方面所述的数据处理方法。
根据本公开实施例的第七方面,提供一种计算机程序产品,包括指令,所述指令被处理器执行时实现上述方面所述的数据处理方法。
在本公开实施例中,通过直接将接收到的第一数据文件加载到内存中,以及,将每条数据的位置指示信息和该数据对应的数据标识关联存储在内存中,从而在数据推荐过程中,能够先基于数据标识查询数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种实施环境的示意图。
图2是根据一示例性实施例示出的一种数据处理方法的流程图。
图3是根据一示例性实施例示出的另一种数据处理方法的流程图。
图4是根据一示例性实施例示出的再一种数据处理方法的流程图。
图5是根据一示例性实施例示出的一种数据处理过程的示意图。
图6是根据一示例性实施例示出的又一种数据处理方法的流程图。
图7是根据一示例性实施例示出的一种数据处理装置的框图。
图8是根据一示例性实施例示出的另一种数据处理装置的框图。
图9是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图说明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。
图1是本公开实施例提供的一种实施环境的示意图。参见图1,该实施环境包括第一服务器101和第二服务器102。第一服务器101和第二服务器102之间通过无线或者有线网络连接。
其中,第一服务器101用于将从数据库中获取的多条数据写入数据文件,向第二服务器102发送数据文件,第二服务器102用于接收数据文件,将数据文件加载到内存中,以基于数据文件中的多条数据,为用户终端提供数据推荐服务。
在一些实施例中,第一服务器101为应用的后台服务器或者为提供云计算以及云存储等服务的云服务器,第二服务器102为应用的后台服务器或者为提供云计算以及云存储等服务的云服务器。需要说明的一点是,第一服务器101和第二服务器102的数量可以为一个或者多个,本公开实施例对此不做限制。
本公开实施例提供的数据处理方法能够应用于数据推荐场景。例如,以数据为多媒体数据为例,第一服务器从数据库中获取多条多媒体数据,将多条多媒体数据写入数据文件,向第二服务器发送数据文件,第二服务器接收该数据文件并加载到内存中,基于数据文件向用户终端推荐多媒体数据。
图2是根据一示例性实施例示出的一种数据处理方法的流程图,该方法由第一服务器执行,如图2所示,包括以下步骤。
201、第一服务器将数据库中的多条数据写入第一数据文件中。
数据库中存储有大量的数据。数据为物品相关的数据。可选地,数据包括多媒体数据,例如,数据包括物品的名称、图像或者视频等。物品可以为任一种类型的物品,例如生活用品或者办公用品等。
202、第一服务器生成每条数据的位置指示信息,位置指示信息用于指示数据的存储位置。
203、第一服务器将每条数据对应的数据标识和数据的位置指示信息,关联写入第二数据文件中。
204、第一服务器向第二服务器发送第一数据文件和第二数据文件。
第二服务器用于接收第一数据文件和第二数据文件,将第一数据文件和第二数据文件加载到内存中,以便基于第一数据文件和第二数据文件向用户终端推荐数据。
在本公开实施例中,通过将多条数据写入第一数据文件,将每条数据对应的数据标识和位置指示信息写入第二数据文件,使得第二服务器在接收到的第一数据文件和第二数据文件之后,能够在数据推荐过程中,先基于位置指示信息确定数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。
图3是根据一示例性实施例示出的另一种数据处理方法的流程图,该方法由第二服务器执行,如图3所示,包括以下步骤。
301、第二服务器接收第一服务器发送的第一数据文件和第二数据文件,第一数据文件包括多条数据,第二数据文件包括每条数据对应的数据标识和位置指示信息,数据的位置指示信息用于指示数据的存储位置。
第一数据文件所包括的多条数据是第一服务器从数据库中获取到的。第一数据文件和第二数据文件均为二进制(binary)文件。
302、第二服务器将第一数据文件加载到内存中。
303、第二服务器将第二数据文件中的每条数据对应的数据标识和位置指示信息关联存储到内存中。
在本公开实施例中,通过直接将接收到的第一数据文件加载到内存中,以及,将每条数据的位置指示信息和该数据对应的数据标识关联存储在内存中,从而在数据推荐过程中,能够先基于数据标识查询数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。
图4是根据一示例性实施例示出的再一种数据处理方法的流程图,本公共实施例以第一服务器和第二服务器之间的数据交互为例进行说明,如图4所示,包括以下步骤。
401、第一服务器将数据库中的多条数据写入第一数据文件中。
数据库中存储有多条数据。在一些实施例中,用户在需要对物品进行推广时,在用户终端中输入物品的数据,用户终端向服务器发送该数据,服务器接收该数据并将该数据存储在数据库中。该服务器可以为第一服务器,或者,该服务器还可以为除第一服务器以外的其他用于向数据库中存储数据的服务器,本公开实施例对此不做限制。
在一些实施例中,第一服务器将数据库中的多条数据写入第一数据文件中的实现方式包括:第一服务器从数据库中获取多条数据,将每条数据和数据对应的数据标识关联存储在内存中;将内存中已存储的每条数据写入第一数据文件中。
其中,数据对应的数据标识是基于数据确定的。可选地,对于每条数据,第一服务器从该数据中提取数据段,将该数据段作为数据的数据标识。该数据段可以为数据中的任一长度的数据段。
在从数据库中获取到多条数据之后,第一服务器可以将多条数据存储在磁盘中,在需要向第二服务器发送数据时,将磁盘中的多条数据加载到内存中。可选地,第一服务器对从数据库中获取到的多条数据进行筛选,将筛选得到的数据加载到内存中。由于数据库中存储了大量的数据,而第二服务器在提供数据推荐服务时,可能并不需要用到数据库中全部的数据,则第一服务器可以先从数据库中获取全量的数据,在获取到数据库中全量的数据之后,通过对获取到的数据进行筛选,从而能够得到用于数据推荐服务的多条数据,进而提高了数据的准确性。
在本公开实施例中,通过将获取到的数据与数据对应的数据标识关联存储在内存中,使得处理器能够从内存中获取数据,将数据写入第一数据文件,从而为处理器的数据处理提供数据支持。
可选地,数据与数据对应的数据标识以哈希(hash)表的形式关联存储在内存中。相应地,第一服务器将每条数据与数据对应的数据标识关联存储在内存中的实现方式包括:第一服务器对每条数据对应的数据标识进行哈希计算,得到数据索引;将数据索引和数据关联存储在内存中。
哈希表是以键(key)-值(value)对的形式存储数据的,则数据索引为key,数据为value。需要说明的一点是,第一服务器并非直接将数据存储在内存中,而是对数据进行解析和转换得到value,也即哈希表支持的数据结构,以便于存储在内存中。
可选地,哈希表为HashMap。HashMap可以选取闭散列(开放定址法)hash的方式实现,从而方便后续使用HashMap的持久化存储能力实现数据的导出和导入。例如,哈希表以sparse hash(一种hash实现)或者libcuckoo value(一种hash实现)的结构实现。
内存中存储的数据(value.data)存储在堆内存,也即堆上地址,而堆内存用来存放由创建(new)的对象和数组。
在本公开实施例中,通过对数据对应的数据标识进行哈希运算,得到数据索引,使得数据索引能够唯一标识数据,通过将数据索引和数据关联存储在内存中,从而在获取数据时能够根据数据索引获取数据,提高了数据获取的便捷性。
在一些实施例中,第一服务器将内存中已存储的每条数据写入第一数据文件中的实现方式包括:第一服务器将内存中已存储的每条数据映射至第一数据文件。或者,第一服务器还可以将内存中已存储的每条数据进行序列化处理,将得到字节流存储在第一数据文件中。
可选地,第一服务器通过遍历接口获取内存中已存储的每条数据。
在本公开实施例中,通过将内存中存储的数据映射至第一数据文件,从而实现了数据的导出,通过将内存中存储的数据的数据结构转换成了能够进行传输的数据结构,为数据传输提供了可行性。
402、第一服务器生成每条数据的位置指示信息,该位置指示信息用于指示该数据的存储位置。
由于第一服务器将每条数据写入了第一数据文件,在这种情况下,第一服务器可以记录每条数据在第一数据文件中的存储位置,得到数据的位置指示信息。在一些实施例中,第一服务器生成每条数据的位置指示信息的实现方式包括:第一服务器确定每条数据写入到的第一数据文件对应的文件标识、数据在第一数据文件中的偏移量以及数据的长度;将文件标识、偏移量和长度确定为数据的位置指示信息。
其中,文件标识(file index)用于区分不同的第一数据文件,例如,第一数据文件A和第二数据文件B的文件标识不同。在本公开实施例中,第一服务器从数据库中获取到的多条数据的数据量较大,而第一数据文件能够存储的数据量有限,因此第一服务器将多条数据写入了至少一个第一数据文件。
若第一数据文件的数量为一个,表示多条数据均被写入同一个第一数据文件中,则每条数据对应的文件标识相同。若第一数据文件的数量为多个,表示多条数据被写入了不同的第一数据文件。例如,多条数据包括数据1、数据2、数据3、数据4、数据5和数据6,其中,数据1、数据2和数据3写入了第一数据文件A,数据4、数据5和数据6写入了第一数据文件B。
本公开实施例对第一数据文件能够存储的数据量不做限制,例如第一数据文件能够存储的数据量为4GB(Gibibyte,吉字节)。若在步骤401中,多条数据写入了128个第一数据文件中,则多条数据占用内存的存储空间大小为128×4GB=512GB。
数据在第一数据文件中的偏移量(offset)指的是数据在第一数据文件的起始存储位置,数据的长度(length)指的是数据在第一数据文件中占据的存储空间的大小,例如第一数据文件为二进制文件,第一数据文件中的数据以字节流的形式存在,则数据1的偏移量可以用从第一数据文件的指定位置向前或向后移动的字节数的形式表示,数据的长度可以用字节数表示。本公开实施例对偏移量的设置不做限制,也即是对第一数据文件的指定位置的设置不做限制,例如数据的偏移量可以表示为从第一数据文件开头向后移动若干字节数。
在本公开实施例中,通过将数据写入到的第一数据文件对应的文件标识、数据在第一数据文件中的偏移量以及数据的长度,确定为数据的位置指示信息,从而即使在第一数据文件无法通过数据标识来查询数据,也能够通过位置指示信息来查询数据,进而为数据查询提供了数据支持。
在一些实施例中,在生成每条数据的位置指示信息之后,本公开实施例提供的数据处理方法还包括以下步骤:第一服务器将每条数据对应的数据标识与该数据的位置指示信息关联存储在内存中。其中,数据对应的数据标识和数据的位置指示信息可以以哈希表的形式关联存储在内存中。
由于第一服务器的内存中已关联存储了数据和数据对应的数据标识,在数据和数据对应的数据标识以哈希表的形式关联存储在内存中的情况下,第一服务器可以借助于该哈希表构建用于存储数据的位置信息的哈希表。
可选地,第一服务器复制关联存储有数据和数据对应的数据标识的第一哈希表,得到第二哈希表;对于任一条数据,将第二哈希表中的该数据替换为该数据的位置指示信息。这样,能够得到一个更新后的第二哈希表,更新后的第二哈希表中关联存储的是数据对应的数据标识和位置指示信息。通过这种方式实现数据对应的数据标识和数据的位置指示信息的关联存储的过程,能够节省存储位置指示信息所花费的时间,提高关联存储的效率。
可选地,第一服务器直接将第一哈希表中的数据替换为该数据的位置指示信息,从而得到一个更新后的第一哈希表,且更新后的第一哈希表中关联存储的是数据对应的数据标识和位置指示信息。这样在无需复制第一哈希表的情况下,通过直接替换哈希表中的数据,能够节省内存的存储资源。
需要说明的一点是,第一服务器可以每生成一条数据的位置指示信息,就将该位置指示信息存储在内存中。
在一些实施例中,数据的位置指示信息还包括状态标识(is static),该状态标识用于表示数据存储在第一数据文件中。
例如,服务器通过C语言中的union关键字,将位置指示信息所包含的偏移量、长度、文件标识和状态标识存储在内存中,其中union用于共用体声明和共用体变量定义。服务器还可以通过alignas关键字设置位置指示信息所包含的每个信息所占用的内存字节大小,例如alignas(8),表示占用字节大小为8字节。
403、第一服务器将每条数据对应的数据标识和数据的位置指示信息,关联写入第二数据文件中。
在一些实施例中,服务器将每条所述数据对应的数据标识和所述数据的所述位置指示信息,关联写入第二数据文件中的实现方式包括:服务器将所述内存中已关联存储的每条所述数据对应的数据标识和所述位置指示信息,写入所述第二数据文件中。
相应地,第一服务器将内存中已存储的每条数据对应的数据标识和数据的位置指示信息映射至第二数据文件。或者,服务器还可以将内存中已存储的每条数据对应的数据标识和数据的位置指示信息进行序列化处理,将得到的字节流存储在第二数据文件。
在本公开实施例中,通过将数据对应的数据标识和位置指示信息关联存储在内存中,从而能够将数据标识和位置指示信息关联写入第二数据文件,保证了第二数据文件中信息的关联性。
在另一些实施例中,第一服务器直接将每个位置指示信息写入第二数据文件,也即第二数据文件不包含数据对应的数据标识。可选地,第一服务器将每个位置指示信息写入第二数据文件的实现方式与第一服务器将每条数据对应的数据标识和数据的位置指示信息,关联写入第二数据文件中的实现方式同理,在此不再赘述。
404、第一服务器向第二服务器发送第一数据文件和第二数据文件。
405、第二服务器接收第一服务器发送的第一数据文件和第二数据文件。
406、第二服务器将第一数据文件加载到内存中。
在一些实施例中,在接收到第一数据文件之后,第二服务器先将第一数据文件存储在磁盘中,在目标服务启动时,才将第一数据文件加载到内存中。相应地,第二服务器将第一数据文件加载到内存中的实现方式包括:第二服务器响应于目标服务启动,将第一数据文件加载到内存中,目标服务用于进行数据推荐。
本公开实施例对目标服务的启动方式不做限制,例如,在第二服务器开机或者重启时目标服务启动,或者,技术人员可以手动设置目标服务的启动。
在本公开实施例中,在接收到第一数据文件时,第二服务器可能当前用不上第一数据文件中的数据,则无需立即将第一数据文件加载到内存中,以节省内存的存储资源;而用于进行数据推荐的目标服务启动,表示第二服务器启动为用户终端提供数据推荐服务了,由于目标服务需要用到第一数据文件中的数据,则此时可以将第一数据文件加载到内存中,已实现数据还原。
可选地,第二服务器将第一数据文件加载到数组(Attach_Data)中,该数组也即存储第一数据文件的内存地址。若第一数据文件的数量为多个,则第二服务器将第一数据文件逐个加载到该数组中。例如,第一数据文件通过mmap(一种文件映射函数)或者fread(一种数据读取函数)加载到数组中。其中,fread(bufer,file,size())表示从第一数据文件file中读取数据到数组buffer,size是要读取的每个数据项的字节数,单位是字节。
407、第二服务器将第二数据文件中的每条数据对应的数据标识和位置指示信息关联存储到内存中。
在一些实施例中,第二服务器将第二数据文件中的每条数据对应的数据标识和位置指示信息关联存储到内存中的实现方式包括:第二服务器将第二数据文件映射至内存中。
由于第二数据文件中存储的是每条数据对应的数据标识和位置指示信息,则第二服务器可以以文件映射的方式直接将第二数据文件映射到内存中。可选地,位置指示信息和数据对应的数据标识以哈希表的形式关联存储在内存中。
在本公开实施例中,第二数据文件是第一服务器对内存中关联存储的数据标识和位置指示信息进行映射得到的,通过对第二数据文件进行文件映射,能够得到原始的数据标识和位置指示信息,实现了数据还原,且以文件映射的方式大大提高了数据还原效率。
在另一些实施例中,在第二数据文件只包含位置指示信息不包含数据对应的数据标识的情况下,则若直接将第二数据文件中的位置指示信息加载到内存中,由于内存中的数据是基于随机存储的方式存储的,那么加载到内存中的位置指示信息的存储地址是不连续的,不便于后续位置指示信息的获取。则第二服务器将第二数据文件中的每条数据对应的数据标识和位置指示信息关联存储到内存中的实现方式包括:对第二数据文件进行反序列化处理,得到每条位置指示信息;对于每条位置指示信息,从该位置指示信息中获取数据段,将该数据段确定为数据标识;将位置指示信息和数据标识关联存储在内存中。
其中,第二服务器将位置指示信息和数据标识关联存储在内存中的实现方式与步骤401中第一服务器将数据和与数据对应的数据标识关联存储在内存中的实现方式同理,在此不再赘述。
需要说明的一点是,本公开实施例对步骤405和步骤406的执行顺序不做限制。
需要说明的另一点是,第一服务器可以定期从数据库中获取数据,也即定期执行步骤401-步骤403的操作,从而第二服务器能够基于第一服务器新发送的第一数据文件和第二数据文件,执行步骤405-步骤406的操作。其中,由于用户终端随时可能上传数据,则数据库中的数据会更新,则第一服务器通过定期从数据库中获取数据,使得第二服务器能够及时接收到更新后的数据,以提高数据推荐服务的准确性。
本公开实施例提供的数据处理方法提供了上亿条数据的快速加载能力,使得第二服务器能够在较短的时间内完成数据的加载,从而极大地提高了数据还原的效率,缩短了服务启动的时长。本公开实施例提供的数据处理方法所设计的存储结构能够使第一服务器将在内存中存储的数据离线导出为第一数据文件,从而第二服务器在提供线上的数据推荐服务时,能够将第一数据文件加载到内存中进行数据还原,无需逐条数据加载,从而减少了数据加载的时间,实现了数据加载时长从小时级别缩减到分钟界别的效果。
例如,参见图5,第一服务器作为制作模块,从数据库中获取多条数据,得到数据集合,逐条读取数据并插入到内存中的哈希表中,得到以键值对(key-value)的形式存储的数据(数据标识-数据),然后遍历哈希表,导出数据,得到第一数据文件(Attach File),并在哈希表中记录每条数据在第一数据文件中的存储位置,得到位置指示信息,遍历该哈希表导出每个关联存储的数据标识和位置指示信息,得到第二数据文件,第一服务器向第二服务器发送第一数据文件和第二数据文件。其中,第一数据文件和第二数据文件均为二进制文件,以便于数据传输。继续参见图5,第二服务器作为加载模块,将接收到的第一数据文件加载到内存的数组中,将第二数据文件还原成内存中存储有数据标识和位置指示信息的哈希表。
需要说明的是,本公开实施例中的每条数据的数据长度可以不同,则第一服务器内存中的哈希表所存储的value是变长的。这种情况下,通过将多条数据写入第一数据文件,将数据对应的数据标识和位置指示信息写入第二数据文件,从而向第二服务器发送第一数据文件和第二数据文件,那么第二服务器可以直接将第一数据文件和第二数据文件加载到内存中,例如以文件映射的方式映射到内存中,则即使数据的数据长度是变长的,也能借助于位置指示信息获取数据,从而该数据处理方法能够适应更多数据处理场景,适应性更高。
在本公开实施例中,通过直接将接收到的第一数据文件加载到内存中,以及,将每条数据的位置指示信息和该数据对应的数据标识关联存储在内存中,从而在数据推荐过程中,能够先基于数据标识查询数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。
在本公开实施例中,第二服务器将第一数据文件和第二数据文件加载到内存之后,能够通过这两个数据文件为用户终端提供数据推荐服务,相应地,图6是根据一示例性实施例示出的又一种数据处理方法的流程图,本公开实施例以第二服务器基于目标数据标识查询目标数据为例进行说明,如图6所示,包括以下步骤。
601、第二服务器确定待查询的目标数据对应的目标数据标识。
在第二服务器为用户终端提供数据推荐服务的过程中,第二服务器从内存中已存储的多条数据中查询该目标数据(actualvalue)。由于第二服务器可以基于数据标识查询数据,则第二服务器需要先确定该目标数据对应的目标数据标识;可选地,第二服务器确定待查询的目标数据对应的目标数据标识的实现方式包括:第二服务器接收用户终端发送的数据获取请求,获取数据获取请求中携带的目标数据标识。
其中,用户终端在需要展示目标数据时,向服务器发送数据获取请求,从而第二服务器能够从数据获取请求中获取目标数据对应的目标数据标识。例如,目标数据为用户数据,数据获取请求中携带的目标数据标识也即用户标识。
或者,第二服务器接收用户终端发送的推荐请求,获取推荐请求中携带的用户信息,确定用户信息关联的目标数据标识。
用户终端在需要展示数据时,获取用户信息,该用户信息能够表征用户终端的相关信息,例如用户信息为用户终端的展示时间、用户终端的显示屏尺寸、用户终端所登录的用户账号的所属人群等信息。其中,展示时间指的是用户终端在什么时间展示数据。用户账号所属人群可以根据需要设置。第二服务器在提供数据推荐服务之前,会关联存储用户信息和数据对应的数据标识,例如第二服务器以倒排索引的方式关联存储用户信息和数据对应的数据标识。在获取到用户信息之后,第二服务器从已存储的用户信息和数据对应的数据标识中,查询从推荐请求中获取到的用户信息关联的目标数据标识。
在本公开实施例中,通过在接收到用户终端发送的请求之后,基于请求中携带的信息确定目标数据标识,从而能够确定出针对于该用户终端的目标数据标识,提高了目标数据标识的准确性。
602、第二服务器从内存中,查询目标数据标识关联的位置指示信息。
由于数据标识和位置指示信息是关联存储在内存中的,则第二服务器可以基于目标数据标识从内存中查询相应的位置指示信息。
603、第二服务器从第一数据文件中,获取位置指示信息所指示的存储位置处的目标数据。
在查询到位置指示信息的情况下,第二服务器从第一数据文件中获取目标数据。可选地,任一数据的位置指示信息包括数据所在的第一数据文件的文件标识、数据在第一数据文件中的偏移量以及数据对应的长度;则第二服务器从第一数据文件中,获取位置指示信息所指示的存储位置处的数据的实现方式包括:第二服务器从文件标识对应的第一数据文件中,从偏移量指示的地址开始,获取长度的目标数据。
在本公开实施例中,由于数据的位置指示信息能够指示数据的存储位置,从而能够从文件标识对应的第一数据文件中获取到偏移量和长度对应的目标数据,提高了数据获取效率。
可选地,数据的位置指示信息还包括状态标识(is static),则第二服务器从第一数据文件中,获取位置指示信息所指示的存储位置处的目标数据的实现方式包括:第二服务器在查询到的位置指示信息包括状态标识的情况下,从第一数据文件中,获取位置指示信息所指示的存储位置处的目标数据,状态标识用于表示数据存储在第一数据文件中。
其中,数据的位置指示信息和数据对应的数据标识关联存储在内存中。可选地,每条位置指示信息和数据对应的数据标识关联存储在内存的目标内存块中。由于目标内存块中可能还存储有其他数据,而该数据与位置指示信息并不同且并未存储在第一数据文件中,那么通过在位置指示信息中设置状态标识,从而能够根据状态标识来区分位置指示信息与其他数据。
在本公开实施例中,通过在位置指示信息中设置状态标识,使得处理器在从目标内存块中获取到目标数据标识关联的数据之后,能够根据状态标识判断该数据是位置指示信息还是其他数据,从而在包含状态标识的情况下,获取位置指示信息所指示的存储位置处的目标数据,提高了数据获取的准确性。
在一些实施例中,本公开实施例提供的数据处理方法还包括:第二服务器获取增量数据;将增量数据和增量数据对应的数据标识关联存储在目标内存块中。
其中,增量数据是第二服务器直接从数据库中获取到的,也即并未经过第一服务器的传输。将增量数据和增量数据对应的数据标识关联存储在目标内存块中的实现方式与将位置指示信息和位置指示信息对应的数据标识关联存储在目标内存块中的实现方式同理,在此不再赘述。例如,参见图5,第二服务器作为加载模块,关联存储增量数据和增量数据对应的数据标识。
在本公开实施例中,通过将获取到的增量数据和增量数据对应的数据标识关联存储在目标内存块中,从而保证了增量数据与事先从数据库中获取到的全量数据能够存储在相同的内存块中,实现了数据存储的连续性。
在目标内存块中除位置指示信息以外,还存储有增量数据的情况下,第二服务器在未查询到目标数据标识对应的位置指示信息的情况下,从目标内存块中,获取目标数据标识对应的目标数据。
第二服务器从目标内存块中查询到的目标数据标识关联的可能是位置指示信息,也可能是增量数据,那么在未查询到位置指示信息的情况下,第二服务器可以直接获取目标数据标识关联存储的目标数据,该目标数据是增量数据。
其中,目标内存块中存储的增量数据存储在堆上地址,也即目标内存块中的增量数据是以指针的形式存储的。由于堆上地址对应的指针取值范围有限,也即指针最高位只能是0,且位置指示信息中的状态标识也存储在位置指示信息的最高位,则状态标识可以设置为1,从而将位置指示信息和堆上地址存储的增量数据区分开。
则第二服务器在目标内存块中查询到目标数据标识对应的信息之后,判断该信息的最高位是否为状态标识,若为状态标识则表示该信息为位置指示信息,若不是状态标识,则表示该信息为增量数据,则第二服务器可以直接获取该增量数据,以实现目标数据的获取。
在本公开实施例中,由于目标内存块中还存储了增量数据,而增量数据不包含状态标识,则在未获取到位置指示信息时,表示目标数据标识关联的信息是增量数据,则通过获取增量数据能够实现目标数据的获取,提高了数据获取的准确性。
第二服务器在获取到目标数据之后,向用户终端发送目标数据,以使得用户终端展示目标数据。例如,目标数据为多媒体数据,则用户终端可以在显示界面展示多媒体数据。
在本公开实施例中,在数据推荐过程中,能够先基于目标数据标识查询目标数据的存储位置,从而在第一数据文件中的该存储位置处获取目标数据,这样能够在未关联存储数据和数据对应的数据标识的情况下,实现数据的获取,进而在提高数据加载效率的基础上保证了数据的准确获取。
图7是根据一示例性实施例示出的一种数据处理装置的框图。参照图7,该装置包括:
文件接收单元701,被配置为执行接收第一服务器发送的第一数据文件和第二数据文件,第一数据文件包括多条数据,第二数据文件包括每条数据对应的数据标识和位置指示信息,数据的位置指示信息用于指示数据的存储位置;
第一加载单元702,被配置为执行将第一数据文件加载到内存中;
第一加载单元702,还被配置为执行将第二数据文件中的每条数据对应的数据标识和位置指示信息关联存储到内存中。
在一些实施例中,装置还包括:
标识确定单元,被配置为执行确定待查询的目标数据对应的目标数据标识;
信息查询单元,被配置为执行从内存中,查询目标数据标识关联的位置指示信息;
第一获取单元,被配置为执行从第一数据文件中,获取位置指示信息所指示的存储位置处的目标数据。
在一些实施例中,任一数据的位置指示信息包括数据所在的第一数据文件的文件标识、数据在第一数据文件中的偏移量以及数据对应的长度;
第一获取单元,被配置为执行从文件标识对应的第一数据文件中,从偏移量指示的地址开始,获取长度的目标数据。
在一些实施例中,第一获取单元,被配置为执行在查询到的位置指示信息包括状态标识的情况下,从第一数据文件中,获取位置指示信息所指示的存储位置处的目标数据,状态标识用于表示数据存储在第一数据文件中。
在一些实施例中,每条位置指示信息和数据对应的数据标识关联存储在内存的目标内存块中;装置还包括:
第二获取单元,被配置为执行获取增量数据;
第二加载单元,被配置为执行将增量数据和增量数据对应的数据标识关联存储在目标内存块中。
在一些实施例中,装置还包括:
标识确定单元,被配置为执行确定待查询的目标数据对应的目标数据标识;
信息查询单元,被配置为执行从目标内存块中,查询目标数据标识关联的位置指示信息;
数据获取单元,被配置为执行在未查询到目标数据标识对应的位置指示信息的情况下,从目标内存块中,获取目标数据标识对应的目标数据。
在一些实施例中,标识确定单元,被配置为执行接收用户终端发送的数据获取请求,获取数据获取请求中携带的目标数据标识;或者,标识确定单元,还被配置为执行接收用户终端发送的推荐请求,获取推荐请求中携带的用户信息,确定用户信息关联的目标数据标识;
装置还包括:数据发送单元,被配置为执行向用户终端发送目标数据。
在一些实施例中,第一加载单元702,被配置为执行响应于目标服务启动,将第一数据文件加载到内存中,目标服务用于进行数据推荐。
在一些实施例中,第一加载单元702,被配置为执行将第二数据文件映射至内存中。
在本公开实施例中,通过直接将接收到的第一数据文件加载到内存中,以及,将每条数据的位置指示信息和该数据对应的数据标识关联存储在内存中,从而在数据推荐过程中,能够先基于数据标识查询数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。
图8是根据一示例性实施例示出的另一种数据处理装置的框图。参照图8,该装置包括:
数据写入单元801,被配置为执行将数据库中的多条数据写入第一数据文件中;
信息生成单元802,被配置为执行生成每条数据的位置指示信息,位置指示信息用于指示数据的存储位置;
数据写入单元801,还被配置为执行将每条数据对应的数据标识和数据的位置指示信息,关联写入第二数据文件中;
文件发送单元803,被配置为执行向第二服务器发送第一数据文件和第二数据文件。
在一些实施例中,信息生成单元802,被配置为执行确定每条数据写入到的第一数据文件对应的文件标识、数据在第一数据文件中的偏移量以及数据的长度;将文件标识、偏移量和长度确定为数据的位置指示信息。
在一些实施例中,装置还包括:
信息存储单元,被配置为执行将数据对应的数据标识与数据的位置指示信息关联存储在内存中;
数据写入单元801,被配置为执行将内存中已关联存储的每条数据对应的数据标识和位置指示信息,写入第二数据文件中。
在一些实施例中,数据写入单元801,被配置为执行从数据库中获取多条数据,将每条数据和数据对应的数据标识关联存储在内存中;将内存中已存储的每条数据写入第一数据文件中。
在一些实施例中,数据写入单元801,被配置为执行对每条数据对应的数据标识进行哈希计算,得到数据索引;将数据索引和数据关联存储在内存中。
在一些实施例中,数据写入单元801,被配置为执行将内存中已存储的每条数据映射至第一数据文件。
在本公开实施例中,通过将多条数据写入第一数据文件,将每条数据对应的数据标识和位置指示信息写入第二数据文件,使得第二服务器在接收到的第一数据文件和第二数据文件之后,能够在数据推荐过程中,先基于位置指示信息确定数据的存储位置,从而在第一数据文件中的该存储位置处获取数据,这样在无需将数据和数据对应的数据标识逐条加载到内存的情况下,也能实现数据的获取,进而大大提高了数据加载效率。
需要说明的是:上述实施例提供的数据处理装置在进行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种服务器。图9是根据一示例性实施例示出的一种服务器的框图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)901和一个或一个以上的存储器902,其中,存储器902用于存储所述处理器可执行指令,处理器901被配置为执行该指令,以实现上述各个方法实施例提供的数据处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,计算机可读存储介质中的指令由服务器中的处理器执行,以实现上述实施例中的数据处理方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括指令,当指令被处理器执行时实现上述实施例中的数据处理方法。
在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个服务器上执行,或者在位于一个地点的多个服务器上执行,又或者,在分布在多个地点且通过通信网络互连的多个服务器上执行,分布在多个地点且通过通信网络互连的多个服务器可以组成区块链系统。
需要说明的是,本申请所涉及的信息(包括但不限于位置指示信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的数据库中的数据都是在充分授权的情况下获取的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据处理方法,其特征在于,所述数据处理方法包括:
接收第一服务器发送的第一数据文件和第二数据文件,所述第一数据文件包括多条数据,所述第二数据文件包括每条所述数据对应的数据标识和位置指示信息,所述数据的位置指示信息用于指示所述数据的存储位置;
将所述第一数据文件加载到内存中;
将所述第二数据文件中的每条所述数据对应的所述数据标识和所述位置指示信息关联存储到所述内存中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
确定待查询的目标数据对应的目标数据标识;
从所述内存中,查询所述目标数据标识关联的所述位置指示信息;
从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据。
3.根据权利要求2所述的数据处理方法,其特征在于,任一所述数据的所述位置指示信息包括所述数据所在的第一数据文件的文件标识、所述数据在所述第一数据文件中的偏移量以及所述数据对应的长度;
所述从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的数据,包括:
从所述文件标识对应的所述第一数据文件中,从所述偏移量指示的地址开始,获取所述长度的所述目标数据。
4.根据权利要求2所述的数据处理方法,其特征在于,所述从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据,包括:
在查询到的所述位置指示信息包括状态标识的情况下,从所述第一数据文件中,获取所述位置指示信息所指示的存储位置处的目标数据,所述状态标识用于表示所述数据存储在所述第一数据文件中。
5.一种数据处理方法,其特征在于,所述数据处理方法包括:
将数据库中的多条数据写入第一数据文件中;
生成每条所述数据的位置指示信息,所述位置指示信息用于指示所述数据的存储位置;
将每条所述数据对应的数据标识和所述数据的所述位置指示信息,关联写入第二数据文件中;
向第二服务器发送所述第一数据文件和所述第二数据文件。
6.一种数据处理装置,其特征在于,所述数据处理装置包括:
文件接收单元,被配置为执行接收第一服务器发送的第一数据文件和第二数据文件,所述第一数据文件包括多条数据,所述第二数据文件包括每条所述数据对应的数据标识和位置指示信息,所述数据的位置指示信息用于指示所述数据的存储位置;
第一加载单元,被配置为执行将所述第一数据文件加载到内存中;
所述第一加载单元,还被配置为执行将所述第二数据文件中的每条所述数据对应的所述数据标识和所述位置指示信息关联存储到所述内存中。
7.一种数据处理装置,其特征在于,所述数据处理装置包括:
数据写入单元,被配置为执行将数据库中的多条数据写入第一数据文件中;
信息生成单元,被配置为执行生成每条所述数据的位置指示信息,所述位置指示信息用于指示所述数据的存储位置;
所述数据写入单元,还被配置为执行将每条所述数据对应的数据标识和所述数据的所述位置指示信息,关联写入第二数据文件中;
文件发送单元,被配置为执行向第二服务器发送所述第一数据文件和所述第二数据文件。
8.一种服务器,其特征在于,所述服务器包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-4任一项所述的数据处理方法,或者如权利要求5所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如权利要求1-4任一项所述的数据处理方法,或者如权利要求5所述的数据处理方法。
10.一种计算机程序产品,包括指令,其特征在于,所述指令被处理器执行时实现如权利要求1-4任一项所述的数据处理方法,或者如权利要求5所述的数据处理方法。
CN202210441351.0A 2022-04-25 2022-04-25 数据处理方法、装置、服务器及存储介质 Pending CN115017191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210441351.0A CN115017191A (zh) 2022-04-25 2022-04-25 数据处理方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210441351.0A CN115017191A (zh) 2022-04-25 2022-04-25 数据处理方法、装置、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN115017191A true CN115017191A (zh) 2022-09-06

Family

ID=83066881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210441351.0A Pending CN115017191A (zh) 2022-04-25 2022-04-25 数据处理方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN115017191A (zh)

Similar Documents

Publication Publication Date Title
EP3477914B1 (en) Data recovery method and device, and cloud storage system
WO2017028514A1 (zh) 一种数据存储、读取方法及装置
CN108932257B (zh) 多维度数据的查询方法及装置
CN108647357B (zh) 数据查询的方法及装置
CN111339171B (zh) 数据查询的方法、装置及设备
CN109885577B (zh) 数据处理方法、装置、终端及存储介质
CN111797134A (zh) 分布式数据库的数据查询方法、装置和存储介质
CN110851474A (zh) 数据查询方法、数据库中间件、数据查询设备及存储介质
CN112395157A (zh) 审计日志的获取方法、装置、计算机设备和存储介质
CN104423982A (zh) 请求的处理方法和处理设备
CN113886485A (zh) 数据处理方法、装置、电子设备、系统和存储介质
CN115470156A (zh) 基于rdma的内存使用方法、系统、电子设备和存储介质
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
CN113064919B (zh) 数据处理方法、数据存储系统、计算机设备及存储介质
US9230011B1 (en) Index-based querying of archived data sets
CN115017191A (zh) 数据处理方法、装置、服务器及存储介质
CN113905252B (zh) 直播间的数据存储方法、装置、电子设备及存储介质
CN112464049B (zh) 号码详单下载方法、装置和设备
CN114238085A (zh) 接口测试方法、装置、计算机设备、存储介质
CN110275863A (zh) 文件移动方法、装置及存储介质
CN115374109B (zh) 数据访问方法、装置、计算设备和系统
CN116305288B (zh) 一种隔离数据库资源的方法、装置、设备和存储介质
CN116594848B (zh) 一种任务监控方法、装置、设备、终端设备及存储介质
CN104424238B (zh) 一种海量文件生成的方法、装置
CN116319809B (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