CN109977074B - 一种基于hdfs的lob数据处理方法及装置 - Google Patents
一种基于hdfs的lob数据处理方法及装置 Download PDFInfo
- Publication number
- CN109977074B CN109977074B CN201910178903.1A CN201910178903A CN109977074B CN 109977074 B CN109977074 B CN 109977074B CN 201910178903 A CN201910178903 A CN 201910178903A CN 109977074 B CN109977074 B CN 109977074B
- Authority
- CN
- China
- Prior art keywords
- data
- lob data
- stored
- lob
- information corresponding
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种基于HDFS的LOB数据处理方法及装置,根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入预设索引文件;获取已存储LOB数据对应的第一索引信息在预设索引文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。该方法及装置能够将部分待存储LOB数据统一写入一个数据存储单元,以使得每个数据存储单元存储空间的利用率实现最大化,一定程度上有效节省了LOB数据的整体存储空间。
Description
技术领域
本发明实施例涉及计算机技术领域,更具体地,涉及一种基于HDFS的LOB数据处理方法及装置。
背景技术
LOB数据是一种用于存储大对象的数据类型,如医学记录(如X-射线)、视频、图像等。目前,LOB数据一般采用HDFS分布式文件系统进行存储,HDFS分布式文件系统中的一个存储单元为一个block,在采用HDFS分布式文件系统进行LOB数据存储时,一个block往往只能存储一个LOB数据。
然而,一个block的大小固定为128MB,一个LOB数据的大小范围是0-2GB,有些LOB数据的大小往往不足128MB,有些LOB数据的大小甚至不足10MB,这些LOB数据可以称为小型LOB数据。若需对大量小型LOB数据进行存储,则需针对每个小型LOB数据分配一个block,而每个小型LOB数据的大小于远远小于一个block的大小,从而导致每个block中将存在大量存储空间被浪费。
有鉴于此,亟需提供一种基于HDFS的LOB数据处理方法及装置,以解决现有LOB数据存储方式所存在的大量存储空间被浪费的问题。
发明内容
本发明实施例为了解决现有LOB数据存储方式所存在的大量存储空间被浪费的问题,提供一种基于HDFS的LOB数据处理方法及装置。
第一方面,本发明实施例提供一种基于HDFS的LOB数据处理方法,包括:
根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;
对于任意一个已存储LOB数据,获取所述已存储LOB数据在所在数据存储单元中的存储位置,作为所述已存储LOB数据对应的第一索引信息,将所述已存储LOB数据对应的第一索引信息写入索引管理文件;
获取所述已存储LOB数据对应的第一索引信息在所述索引管理文件中的存储位置,作为所述已存储LOB数据对应的第二索引信息,将所述已存储LOB数据对应的第二索引信息返回给终端。
第二方面,本发明实施例提供一种基于HDFS的LOB数据处理装置,包括:
数据存储模块,用于根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;
第一索引模块,用于对于任意一个已存储LOB数据,获取所述已存储LOB数据在所在数据存储单元中的存储位置,作为所述已存储LOB数据对应的第一索引信息,将所述已存储LOB数据对应的第一索引信息写入索引管理文件;
第二索引模块,用于获取所述已存储LOB数据对应的第一索引信息在所述索引管理文件中的存储位置,作为所述已存储LOB数据对应的第二索引信息,将所述已存储LOB数据对应的第二索引信息返回给终端。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的基于HDFS的LOB数据处理方法及装置,通过数据存储单元对待存储LOB数据进行存储,且一个数据存储单元能够同时存储不止一个待存储LOB数据,从而能够将部分待存储LOB数据统一写入一个数据存储单元,以使得每个数据存储单元存储空间的利用率实现最大化,一定程度上有效节省了LOB数据的整体存储空间;同时,将已存储LOB数据对应的第二索引信息返回给终端有利于终端根据已存储LOB数据对应的第二索引信息获取已存储LOB数据的具体存储位置,便于终端对已存储LOB数据进行后续处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于HDFS的LOB数据处理方法的流程示意图;
图2为本发明实施例提供的基于HDFS的LOB数据处理装置的结构示意图;
图3为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于HDFS的LOB数据处理方法的流程示意图,如图1所示,本发明实施例提供一种基于HDFS的LOB数据处理方法,包括:
S1,根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;
具体地,当终端需要对多个LOB数据进行存储时,终端发起数据存储请求,数据存储请求中携带了多个待存储LOB数据。在此基础上,根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元。可以理解的是,若所有待存储LOB数据的大小总和不大于一个数据存储单元的大小,则可将所有待存储LOB数据统一写入一个数据存储单元中;若所有待存储LOB数据的大小总和大于一个数据存储单元的大小,则需要至少两个数据存储单元才能够容纳所有待存储LOB数据。
需要说明的是,本发明实施例中,数据存储单元用于存储LOB数据的数据内容,一个数据存储单元的大小为1TB,由于一个待存储LOB数据的大小不大于2GB,因此一个数据存储单元至少可以存储512个待存储LOB数据。即,每个数据存储单元能够存储多个待存储LOB数据。在其他实施例中,一个数据存储单元的大小可以根据实际需求进行设置,此处不做具体限定。
S2,对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入索引管理文件;
在所有待存储LOB数据均存储完成之后,即可获得多个已存储LOB数据。对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息。例如,若已存储LOB数据A被存储在第i个数据存储单元中,且其在第i个数据存储单元中的存储位置为第L位,则已存储LOB数据A对应的第一索引信息为第i个数据存储单元中的第L位。最终,将已存储LOB数据对应的第一索引信息写入索引管理文件,其中,索引管理文件是预先创建的文件,其用于存储每个已存储LOB数据对应的第一索引信息。
S3,获取已存储LOB数据对应的第一索引信息在预设索引文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。
具体地,在将已存储LOB数据对应的第一索引信息写入索引管理文件之后,获取已存储LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为已存储LOB数据对应的第二索引信息。例如,若将已存储LOB数据A对应的第一索引信息存储在索引管理文件的第S位,则已存储LOB数据A对应的第二索引信息为第S位。最终,将已存储LOB数据对应的第二索引信息返回给终端。
可以理解的是,在上述方法步骤中,由于一个数据存储单元能够同时存储不止一个待存储LOB数据,因此可以将部分待存储LOB数据统一存储在一个数据存储单元中,由此可使得每个数据存储单元存储空间的利用率实现最大化,一定程度上有效节省了LOB数据的整体存储空间。此外,将已存储LOB数据对应的第二索引信息返回给终端,有利于终端根据已存储LOB数据对应的第二索引信息获取已存储LOB数据的具体存储位置,便于终端对已存储LOB数据进行后续处理。
本发明实施例提供的基于HDFS的LOB数据处理方法,根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入预设索引文件;获取已存储LOB数据对应的第一索引信息在预设索引文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。该方法能够将部分待存储LOB数据统一写入一个数据存储单元,以使得每个数据存储单元存储空间的利用率实现最大化,一定程度上有效节省了LOB数据的整体存储空间;同时,将已存储LOB数据对应的第二索引信息返回给终端,有利于终端根据已存储LOB数据对应的第二索引信息获取已存储LOB数据的具体存储位置,便于终端对已存储LOB数据进行后续处理。
基于上述任一实施例,提供一种基于HDFS的LOB数据处理方法,将所有待存储LOB数据依次写入至少一个数据存储单元,具体为:获取当前待存储LOB数据,若当前数据存储单元的剩余存储容量大小小于当前待存储LOB数据的大小,则新增一个数据存储单元,作为下一个数据存储单元;将剩余待存储LOB数据依次写入下一个数据存储单元,直至所有待存储LOB数据存储完成。
具体地,在获得多个待存储LOB数据之后,首先将所有待存储LOB数据依次写入当前数据存储单元,其中,当前数据存储单元指的是最新创建的数据存储单元。在将所有待存储LOB数据依次写入当前数据存储单元的过程中,当若干个待存储LOB数据已被写入当前数据存储单元时,若当前数据存储单元的剩余存储容量大小小于当前待存储LOB数据的大小,即当前数据存储单元的剩余存储容量不足以存储当前待存储LOB数据,则新增一个数据存储单元,记为下一个数据存储单元。在此基础上,将剩余待存储LOB数据依次写入下一个数据存储单元,直至所有待存储LOB数据均存储完成。
本发明实施例提供的基于HDFS的LOB数据处理方法,获取当前待存储LOB数据,若当前数据存储单元的剩余存储容量大小小于当前待存储LOB数据的大小,则新增一个数据存储单元,作为下一个数据存储单元;将剩余待存储LOB数据依次写入下一个数据存储单元,直至所有待存储LOB数据存储完成。该方法能够将多个待存储LOB数据统一写入一个数据存储单元,以使得每个数据存储单元存储空间的利用率实现最大化,一定程度上有效节省了LOB数据的整体存储空间。
基于上述任一实施例,提供一种基于HDFS的LOB数据处理方法,还包括:根据终端发送的数据删除请求获取待删除LOB数据对应的第二索引信息;将待删除LOB数据对应的第二索引信息写入删除管理文件;当删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据进行统一删除。
具体地,当终端需要对某个LOB数据进行删除时,终端发起删除请求,删除请求中携带了待删除LOB数据对应的第二索引信息。可以理解的是,待删除LOB数据是已经完成存储的LOB数据,在该LOB数据存储的过程中,已将该LOB数据对应的第二索引信息返回给终端,因此,当终端需要对该LOB数据进行删除时,终端可以将该LOB数据对应的第二索引信息设置在数据删除请求中。在此基础上,根据终端发送的数据删除请求获取待删除LOB数据对应的第二索引信息,最终,将待删除数据对应的第二索引信息写入删除管理文件中。其中,删除管理文件为预先创建的文件,其用于存储已删除LOB数据的第二索引信息。可以理解的是,一旦将某个LOB数据对应的第二索引信息写入删除管理文件中,则标识该LOB数据为待删除LOB数据。最终,当删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,再将删除管理文件中的所有待删除LOB数据进行统一删除。其中,预设条件可以为删除管理文件中的所有待删除LOB数据的总数量达到一定数量,也可以为删除管理文件中的所有待删除LOB数据的总数量占比达到一定比例,可以根据实际需求进行设置,此处不做具体限定。
需要说明的是,本发明实施例中,通过将待删除LOB数据对应的第二索引信息写入删除管理文件,当且仅当删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,再将删除管理文件中的所有待删除LOB数据进行统一删除;可以有效避免因频繁地单独删除少量的LOB数据所造成的系统资源浪费。
本发明实施例提供的基于HDFS的LOB数据处理方法,根据终端发送的数据删除请求获取待删除LOB数据对应的第二索引信息;将待删除LOB数据对应的第二索引信息写入删除管理文件;当删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据进行统一删除。该方法能够对多个待删除LOB数据进行统一删除,可以有效避免因频繁地单独删除少量的LOB数据所造成的系统资源浪费。
基于上述任一实施例,提供一种基于HDFS的LOB数据处理方法,还包括:根据终端发送的数据读取请求获取待读取LOB数据对应的第二索引信息;根据待读取LOB数据对应的第二索引信息从索引管理文件中获取待读取LOB数据对应的第一索引信息;根据待读取LOB数据对应的第一索引信息读取待读取LOB数据。
具体地,当终端需要从数据存储单元中读取某个LOB数据时,终端发起数据读取请求,数据读取请求中携带了待读取LOB数据对应的第二索引信息。可以理解的是,待读取LOB数据是已经完成存储的LOB数据,在该LOB数据存储的过程中,已将该LOB数据对应的第二索引信息返回给终端,因此,当终端需要对该LOB数据进行读取时,终端可以将该LOB数据对应的第二索引信息设置在数据读取请求中。在此基础上,根据终端发送的数据读取请求获取待读取LOB数据对应的第二索引信息。由于某个LOB数据对应的第二索引信息指示的是LOB数据对应的第一索引信息在索引管理文件中的存储位置,因此,可以待读取LOB数据对应的第二索引信息从索引管理文件中获取待读取LOB数据对应的第一索引信息。由于某个LOB数据对应的第一索引信指示的是该LOB数据在所在数据存储单元中的存储位置,因此,可以根据待读取LOB数据对应的第一索引信息从数据存储单元中读取待读取LOB数据。
需要说明的是,现有技术中,由于每个LOB数据是单独存储在一个block中的,当终端需要对多个LOB数据进行读取时,需要从一个block跳转到另一个block,即需进行多次跳转。然而,本发明实施例中,由于多个LOB数据可以统一存储在同一数据存储单元,因此,当需要对多个LOB数据进行读取时,仅需访问同一数据存储单元,无需进行多次跳转,可以有效提高数据读取的整体效率。
本发明实施例提供的基于HDFS的LOB数据处理方法,根据终端发送的数据读取请求获取待读取LOB数据对应的第二索引信息;根据待读取LOB数据对应的第二索引信息从索引管理文件中获取待读取LOB数据对应的第一索引信息;根据待读取LOB数据对应的第一索引信息读取待读取LOB数据。该方法在对多个LOB数据进行读取时,仅需访问同一数据存储单元,无需进行多次跳转,可以有效提高数据读取的整体效率。
基于上述任一实施例,提供一种基于HDFS的LOB数据处理方法,还包括:根据终端发送的数据修改请求获取待修改LOB数据对应的第二索引信息和待修改LOB数据对应的替换LOB数据;将待修改LOB数据对应的第二索引信息写入删除管理文件;若当前数据存储单元的剩余存储容量大小不小于替换LOB数据的大小,则将替换LOB数据写入当前数据存储单元;获取替换LOB数据在当前数据存储单元中的存储位置,作为替换LOB数据对应的第一索引信息,将替换LOB数据对应的第一索引信息写入索引管理文件;获取替换LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为替换LOB数据对应的第二索引信息,将替换LOB数据对应的第二索引信息返回给终端。
具体地,当终端需要修改已存储的某个LOB数据时,终端发起数据修改请求,数据修改请求中携带了待修改LOB数据对应的第二索引信息。可以理解的是,待修改LOB数据是已经完成存储的LOB数据,在该LOB数据存储的过程中,已将该LOB数据对应的第二索引信息返回给终端,因此,当终端需要对该LOB数据进行修改时,终端可以将该LOB数据对应的第二索引信息设置在数据修改请求中。此外,数据修改请求中还携带了待修改LOB数据对应的替换LOB数据。在此基础上,本发明实施例中,当需要对某个LOB数据进行修改时,先将该LOB数据进行删除,再将该LOB数据对应的替换数据写入数据存储单元。具体实现过程如下:
首先,根据终端发送的数据修改请求获取待修改LOB数据对应的第二索引信息和待修改LOB数据对应的替换LOB数据。在此基础上,将待修改LOB数据对应的第二索引信息写入删除管理文件,由此标识对待修改LOB数据进行删除。此后,判断当前数据存储单元的剩余存储容量大小是否小于替换LOB数据的大小,若当前数据存储单元的剩余存储容量大小不小于替换LOB数据的大小,即表明当前数据存储单元的剩余存储容量足够容纳替换LOB数据,则将替换LOB数据写入当前数据存储单元。
进一步地,获取替换LOB数据在当前数据存储单元中的存储位置,作为替换LOB数据对应的第一索引信息,将替换LOB数据对应的第一索引信息写入索引管理文件。然后,获取替换LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为替换LOB数据对应的第二索引信息,将替换LOB数据对应的第二索引信息返回给终端。
此外,在上述方法步骤中,若当前数据存储单元的剩余存储容量大小小于替换LOB数据的大小,即表明当前数据存储单元的剩余存储容量不足够容纳替换LOB数据,则新增一个数据存储单元,作为下一个数据存储单元,再将替换LOB数据写入下一个数据存储单元。
本发明实施例提供的基于HDFS的LOB数据处理方法,根据终端发送的数据修改请求获取待修改LOB数据对应的第二索引信息和待修改LOB数据对应的替换LOB数据;将待修改LOB数据对应的第二索引信息写入删除管理文件;再对替换LOB数据进行存储并将替换数据对应的第二索引信息返回给终端。该方法能够在不影响其他已存储LOB数据的基础上,有效实现对某个已存储LOB数据进行修改,能够有效降低LOB数据的修改开销,有利于提升系统的整体性能。
基于上述任一实施例,提供一种基于HDFS的LOB数据处理方法,当所述删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据进行统一删除,具体为:获取所有数据存储单元中所有已存储LOB数据的总数量,作为第一数量;获取删除管理文件中所有待删除LOB数据的总数量,作为第二数量;若第二数量和第一数量的比值大于预设阈值,则从所有数据存储单元中获取除待删除LOB数据之外的所有LOB数据,作为有效LOB数据;将有效LOB数据重新存储至新的数据存储单元,删除原有的数据存储单元并清空删除管理文件。
具体地,本发明实施例中,通过设置监控周期对删除管理文件中的待删除LOB数据进行监控,其中监控周期可以根据实际需求进行设置,此处不做具体限定。此外,在其他实施例中,也可以选择在系统业务量较少的时间段对删除管理文件中的待删除LOB数据进行监控。当删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据从数据存储单元中进行统一删除。具体实现过程如下:
获取所有数据存储单元中所有已存储LOB数据的总数量,作为第一数量。与此同时,获取删除管理文件中所有待删除LOB数据的总数量,作为第二数量。可以理解的是,删除管理文件中存储的是待删除LOB数据对应的第二索引信息,其中一个第二索引信息对应一个待删除LOB数据,因此,可以通过统计删除管理文件中第二索引信息的总数量获得待删除LOB数据的总数量。
进一步地,计算第二数量和第一数量的比值,若第二数量和第一数量的比值大于预设阈值,即表明待删除LOB数据在所有已存储LOB数据中的占比大于预设阈值,则从所有数据存储单元中获取除待删除LOB数据之外的所有LOB数据,作为有效LOB数据。其中,预设阈值可以根据实际需求进行设置,此处不做具体限定。可以理解的是,通过删除管理文件中记录的第二索引信息,即可确定数据存储单元中哪些LOB数据是待删除LOB数据,在此基础上,即可从所有数据存储单元中获取除待删除LOB数据之外的所有LOB数据,并将其作为有效LOB数据。
最后,将有效LOB数据重新存储至新的数据存储单元,有效LOB数据的具体存储过程可以参见上述方法实施例中待存储LOB数据的存储过程,此处不再赘述。与此同时,删除原有的数据存储单元,即删除原有的数据存储单元中的所有已存储LOB数据,并清空删除管理文件,即表明删除管理文件中的所有待删除LOB数据已经从数据存储单元中删除。由此,数据存储单元中仅存储了有效LOB数据,而在删除管理文件中标识的待删除LOB数据已被统一删除。
本发明实施例提供的基于HDFS的LOB数据处理方法,获取所有数据存储单元中所有已存储LOB数据的总数量,作为第一数量;获取删除管理文件中所有待删除LOB数据的总数量,作为第二数量;若第二数量和第一数量的比值大于预设阈值,则从所有数据存储单元中获取除待删除LOB数据之外的所有LOB数据,作为有效LOB数据;将有效LOB数据重新存储至新的数据存储单元,删除原有的数据存储单元并清空删除管理文件。该方法在删除管理文件中的待删除LOB数据达到一定数量时,能够将待删除LOB数据统一从数据存储单元中删除,有利于对无用的LOB数据进行统一清理,一方面节省了系统进行数据清理的开销,一方面节省了系统的数据存储空间。
基于上述任一实施例,提供一种基于HDFS的LOB数据处理方法,还包括:根据预设周期内所接收到的终端的历史请求,获取每个已存储LOB数据的操作次数;获取操作次数大于预设次数的所有已存储LOB数据,作为热点LOB数据;将热点LOB数据重新存储至新的数据存储单元。
具体地,本发明实施例中,根据预设周期内所接收到的终端的历史请求,获取每个已存储LOB数据的操作次数。其中,预设周期可以根据实际需求进行设置,此处不做具体限定。终端的历史请求指的是终端对已存储LOB数据的操作请求,包括读取请求和修改请求等。每个已存储LOB数据的操作次数与终端对每个已存储LOB数据的历史请求次数对应。可以理解的是,若终端在预设周期内对某个已存储LOB数据A的历史请求包括5次读取请求和3次修改请求,即终端在预设周期内对已存储LOB数据A进行了5次读取操作和3次修改操作,则已存储LOB数据A的操作次数为8。
进一步地,在获得每个已存储LOB数据的操作次数之后,将每个已存储LOB数据的操作次数与预设次数进行比对,获取操作次数大于预设次数的所有已存储LOB数据,作为热点LOB数据。其中,预设次数可以根据实际需求进行设置,此处不做具体限定。最终,将热点LOB数据重新存储至新的数据存储单元。热点LOB数据的具体存储过程可以参见上述方法实施例中待存储LOB数据的存储过程,此处不再赘述。
需要说明的是,通过上述方法步骤,对于终端请求频繁的LOB数据,即,热点LOB数据,将被集中存储在某几个数据存储单元中。由此,当终端需要对这些热点LOB数据进行相关处理时,仅需集中访问这几个数据存储单元,而无需从一个数据存储单元频繁跳转至另一个数据存储单元,有利于降低系统响应终端请求的开销,进而有利于提升系统的整体性能。
本发明实施例提供的基于HDFS的LOB数据处理方法,根据预设周期内所接收到的终端的历史请求,获取每个已存储LOB数据的操作次数;获取操作次数大于预设次数的所有已存储LOB数据,作为热点LOB数据;将热点LOB数据重新存储至新的数据存储单元。该方法能够将终端请求频繁的LOB数据集中存储在某几个数据存储单元中,以使得当终端需要对这些热点LOB数据进行相关处理时,仅需集中访问这几个数据存储单元,而无需从一个数据存储单元频繁跳转至另一个数据存储单元,有利于降低系统响应终端请求的开销,进而有利于提升系统的整体性能。
图2为本发明实施例提供的基于HDFS的LOB数据处理装置的结构示意图,如图2所示,该装置包括:数据存储模块21、第一索引模块22和第二索引模块23,其中:
数据存储模块21,用于根据终端的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据。
具体地,当终端需要对多个LOB数据进行存储时,终端发起数据存储请求,数据存储请求中携带了多个待存储LOB数据。在此基础上,数据存储模块21根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元。可以理解的是,若所有待存储LOB数据的大小总和不大于一个数据存储单元的大小,则可将所有待存储LOB数据统一写入一个数据存储单元中;若所有待存储LOB数据的大小总和大于一个数据存储单元的大小,则需要至少两个数据存储单元才能够容纳所有待存储LOB数据。
需要说明的是,本发明实施例中,数据存储单元用于存储LOB数据的数据内容,一个数据存储单元的大小为1TB,由于一个待存储LOB数据的大小不大于2GB,因此一个数据存储单元至少可以存储512个待存储LOB数据。即,每个数据存储单元能够存储多个待存储LOB数据。在其他实施例中,一个数据存储单元的大小可以根据实际需求进行设置,此处不做具体限定。
第一索引模块22,用于对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入索引管理文件。
在所有待存储LOB数据均存储完成之后,即可获得多个已存储LOB数据。对于任意一个已存储LOB数据,第一索引模块22获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息。例如,若已存储LOB数据A被存储在第i个数据存储单元中,且其在第i个数据存储单元中的存储位置为第L位,则已存储LOB数据A对应的第一索引信息为第i个数据存储单元中的第L位。最终,第一索引模块22将已存储LOB数据对应的第一索引信息写入索引管理文件,其中,索引管理文件是预先创建的文件,其用于存储每个已存储LOB数据对应的第一索引信息。
第二索引模块23,用于获取已存储LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。
具体地,在第一索引模块22将已存储LOB数据对应的第一索引信息写入索引管理文件之后,第二索引模块23获取已存储LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为已存储LOB数据对应的第二索引信息。例如,若将已存储LOB数据A对应的第一索引信息存储在索引管理文件的第S位,则已存储LOB数据A对应的第二索引信息为第S位。最终,第二索引模块23将已存储LOB数据对应的第二索引信息返回给终端。
可以理解的是,通过上述方法步骤,可以将多个待存储LOB数据统一存储在一个数据存储单元中,且每个数据存储单元存储空间的利用率将实现最大化,一定程度上有效节省了LOB数据的整体存储空间。此外,将已存储LOB数据对应的第二索引信息返回给终端,有利于终端根据已存储LOB数据对应的第二索引信息获取已存储LOB数据的具体存储位置,便于终端对已存储LOB数据进行后续处理。
本发明实施例提供的基于HDFS的LOB数据处理装置,具体执行上述各方法实施例流程,具体请详见上述各方法实施例的内容,在此不再赘述。
本发明实施例提供的基于HDFS的LOB数据处理装置,根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入预设索引文件;获取已存储LOB数据对应的第一索引信息在预设索引文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。该装置能够将部分待存储LOB数据统一写入一个数据存储单元,以使得每个数据存储单元存储空间的利用率实现最大化,一定程度上有效节省了LOB数据的整体存储空间;同时,将已存储LOB数据对应的第二索引信息返回给终端,有利于终端根据已存储LOB数据对应的第二索引信息获取已存储LOB数据的具体存储位置,便于终端对已存储LOB数据进行后续处理。
图3为本发明实施例提供的电子设备的实体结构示意图。参照图3,所述电子设备,包括:处理器(processor)31、存储器(memory)32和总线33;其中,所述处理器31和存储器32通过所述总线33完成相互间的通信;所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入索引管理文件;获取已存储LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。
此外,上述的存储器32中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;对于任意一个已存储LOB数据,获取已存储LOB数据在所在数据存储单元中的存储位置,作为已存储LOB数据对应的第一索引信息,将已存储LOB数据对应的第一索引信息写入索引管理文件;获取已存储LOB数据对应的第一索引信息在索引管理文件中的存储位置,作为已存储LOB数据对应的第二索引信息,将已存储LOB数据对应的第二索引信息返回给终端。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于HDFS的LOB数据处理方法,其特征在于,包括:
根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;
对于任意一个已存储LOB数据,获取所述已存储LOB数据在所在数据存储单元中的存储位置,作为所述已存储LOB数据对应的第一索引信息,将所述已存储LOB数据对应的第一索引信息写入索引管理文件;
获取所述已存储LOB数据对应的第一索引信息在所述索引管理文件中的存储位置,作为所述已存储LOB数据对应的第二索引信息,将所述已存储LOB数据对应的第二索引信息返回给终端;
还包括:
根据终端发送的数据删除请求获取待删除LOB数据对应的第二索引信息;
将待删除LOB数据对应的第二索引信息写入删除管理文件;
当所述删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据进行统一删除。
2.根据权利要求1所述的方法,其特征在于,将所有待存储LOB数据依次写入至少一个数据存储单元,具体为:
获取当前待存储LOB数据,若当前数据存储单元的剩余存储容量大小小于当前待存储LOB数据的大小,则新增一个数据存储单元,作为下一个数据存储单元;
将剩余待存储LOB数据依次写入下一个数据存储单元,直至所有待存储LOB数据存储完成。
3.根据权利要求1所述的方法,其特征在于,还包括:
根据终端发送的数据读取请求获取待读取LOB数据对应的第二索引信息;
根据所述待读取LOB数据对应的第二索引信息从所述索引管理文件中获取所述待读取LOB数据对应的第一索引信息;
根据所述待读取LOB数据对应的第一索引信息读取所述待读取LOB数据。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据终端发送的数据修改请求获取待修改LOB数据对应的第二索引信息和所述待修改LOB数据对应的替换LOB数据;
将所述待修改LOB数据对应的第二索引信息写入删除管理文件;
若当前数据存储单元的剩余存储容量大小不小于所述替换LOB数据的大小,则将所述替换LOB数据写入当前数据存储单元;
获取所述替换LOB数据在当前数据存储单元中的存储位置,作为所述替换LOB数据对应的第一索引信息,将所述替换LOB数据对应的第一索引信息写入所述索引管理文件;
获取所述替换LOB数据对应的第一索引信息在所述索引管理文件中的存储位置,作为所述替换LOB数据对应的第二索引信息,将所述替换LOB数据对应的第二索引信息返回给终端。
5.根据权利要求1所述的方法,其特征在于,当所述删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据进行统一删除,具体为:
获取所有数据存储单元中所有已存储LOB数据的总数量,作为第一数量;
获取所述删除管理文件中所有待删除LOB数据的总数量,作为第二数量;
若所述第二数量和所述第一数量的比值大于预设阈值,则从所有数据存储单元中获取除待删除LOB数据之外的所有LOB数据,作为有效LOB数据;
将所述有效LOB数据重新存储至新的数据存储单元,删除原有的数据存储单元并清空所述删除管理文件。
6.根据权利要求1所述的方法,其特征在于,还包括:
根据预设周期内所接收到的终端发送的历史请求,获取每个已存储LOB数据的操作次数;
获取操作次数大于预设次数的所有已存储LOB数据,作为热点LOB数据;
将所述热点LOB数据重新存储至新的数据存储单元。
7.一种基于HDFS的LOB数据处理装置,其特征在于,包括:
数据存储模块,用于根据终端发送的数据存储请求获取多个待存储LOB数据,将所有待存储LOB数据依次写入至少一个数据存储单元,其中,每个数据存储单元能够存储多个待存储LOB数据;
第一索引模块,用于对于任意一个已存储LOB数据,获取所述已存储LOB数据在所在数据存储单元中的存储位置,作为所述已存储LOB数据对应的第一索引信息,将所述已存储LOB数据对应的第一索引信息写入索引管理文件;
第二索引模块,用于获取所述已存储LOB数据对应的第一索引信息在所述索引管理文件中的存储位置,作为所述已存储LOB数据对应的第二索引信息,将所述已存储LOB数据对应的第二索引信息返回给终端;
还包括:
根据终端发送的数据删除请求获取待删除LOB数据对应的第二索引信息;
将待删除LOB数据对应的第二索引信息写入删除管理文件;
当所述删除管理文件中的所有待删除LOB数据的总数量满足预设条件时,将删除管理文件中的所有待删除LOB数据进行统一删除。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910178903.1A CN109977074B (zh) | 2019-03-11 | 2019-03-11 | 一种基于hdfs的lob数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910178903.1A CN109977074B (zh) | 2019-03-11 | 2019-03-11 | 一种基于hdfs的lob数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977074A CN109977074A (zh) | 2019-07-05 |
CN109977074B true CN109977074B (zh) | 2021-04-27 |
Family
ID=67078357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910178903.1A Active CN109977074B (zh) | 2019-03-11 | 2019-03-11 | 一种基于hdfs的lob数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109977074B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694847B (zh) * | 2020-06-04 | 2023-07-18 | 贵州易鲸捷信息技术有限公司 | 一种特大lob数据高并发低延迟的更新访问方法 |
CN113329076B (zh) * | 2021-05-27 | 2022-11-08 | 上海达梦数据库有限公司 | 数据传输方法、装置及系统、计算机设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
CN104112013A (zh) * | 2014-07-17 | 2014-10-22 | 浪潮(北京)电子信息产业有限公司 | HBase二级索引方法及装置 |
CN107391769A (zh) * | 2017-09-12 | 2017-11-24 | 北京优网助帮信息技术有限公司 | 一种索引查询方法及装置 |
CN107436736A (zh) * | 2017-08-08 | 2017-12-05 | 郑州云海信息技术有限公司 | 一种hdfs中文件的存储方法及装置 |
CN108415986A (zh) * | 2018-02-11 | 2018-08-17 | 杭州朗和科技有限公司 | 一种数据处理方法、装置、系统、介质和计算设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732140B2 (en) * | 2011-05-24 | 2014-05-20 | Red Lambda, Inc. | Methods for storing files in a distributed environment |
CN105630779A (zh) * | 2014-10-27 | 2016-06-01 | 杭州海康威视系统技术有限公司 | 一种基于分布式文件系统的小文件存储方法和装置 |
US9959306B2 (en) * | 2015-06-12 | 2018-05-01 | International Business Machines Corporation | Partition-based index management in hadoop-like data stores |
CN105183839A (zh) * | 2015-09-02 | 2015-12-23 | 华中科技大学 | 一种基于Hadoop的小文件分级索引的存储优化方法 |
-
2019
- 2019-03-11 CN CN201910178903.1A patent/CN109977074B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
CN104112013A (zh) * | 2014-07-17 | 2014-10-22 | 浪潮(北京)电子信息产业有限公司 | HBase二级索引方法及装置 |
CN107436736A (zh) * | 2017-08-08 | 2017-12-05 | 郑州云海信息技术有限公司 | 一种hdfs中文件的存储方法及装置 |
CN107391769A (zh) * | 2017-09-12 | 2017-11-24 | 北京优网助帮信息技术有限公司 | 一种索引查询方法及装置 |
CN108415986A (zh) * | 2018-02-11 | 2018-08-17 | 杭州朗和科技有限公司 | 一种数据处理方法、装置、系统、介质和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109977074A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978335B (zh) | 数据访问控制方法和装置 | |
CN109271435B (zh) | 一种支持断点续传的数据抽取方法及系统 | |
CN111159436B (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
CN104571954B (zh) | 一种数据存储方法及装置 | |
US11003367B2 (en) | Data storage, reading, and cleansing method and device, and cloud storage system | |
AU2010319840A1 (en) | Allocating storage memory based on future use estimates | |
CN104978362A (zh) | 分布式文件系统的数据迁移方法、装置及元数据服务器 | |
CN110895524B (zh) | redis满载时键的复合过期方法、装置、服务器及存储介质 | |
CN110737388A (zh) | 数据预读方法、客户端、服务器以及文件系统 | |
US11461239B2 (en) | Method and apparatus for buffering data blocks, computer device, and computer-readable storage medium | |
CN107656807A (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
CN109977074B (zh) | 一种基于hdfs的lob数据处理方法及装置 | |
CN110555001A (zh) | 数据处理方法、装置、终端及介质 | |
US20170123975A1 (en) | Centralized distributed systems and methods for managing operations | |
CN108874324A (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
CN115576505A (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
CN109189726B (zh) | 一种读写日志的处理方法及装置 | |
CN110083482B (zh) | 对文件存储系统进行纠删码处理的方法、装置及电子设备 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
US9710183B2 (en) | Effectively limitless apparent free space on storage device | |
CN110888846B (zh) | 一种数据存储器管理方法及系统 | |
CN110825652B (zh) | 淘汰磁盘块上的缓存数据的方法、装置及设备 | |
CN111158605B (zh) | 用于优化操作系统磁盘存储策略的方法、装置和智能设备 | |
CN107862095B (zh) | 一种数据处理方法及装置 | |
CN112543213B (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 |