CN110196836B - 一种数据存储方法及装置 - Google Patents

一种数据存储方法及装置 Download PDF

Info

Publication number
CN110196836B
CN110196836B CN201910248097.0A CN201910248097A CN110196836B CN 110196836 B CN110196836 B CN 110196836B CN 201910248097 A CN201910248097 A CN 201910248097A CN 110196836 B CN110196836 B CN 110196836B
Authority
CN
China
Prior art keywords
data
stored
compressed
compression format
dividing
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
Application number
CN201910248097.0A
Other languages
English (en)
Other versions
CN110196836A (zh
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.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Cloud Computing Beijing 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 Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Cloud Computing Beijing Co Ltd
Priority to CN201910248097.0A priority Critical patent/CN110196836B/zh
Publication of CN110196836A publication Critical patent/CN110196836A/zh
Application granted granted Critical
Publication of CN110196836B publication Critical patent/CN110196836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据存储方法及装置,所述方法包括:确定待存储数据的数据类型;根据所述数据类型确定所述待存储数据对应的数据压缩格式;基于所述对应的数据压缩格式对所述待存储数据进行压缩;在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据;将所述压缩数据存储到目标数据库。利用本发明实施例通过的技术方案可以提高数据压缩率,实现数据库的扩容,且可以实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源。

Description

一种数据存储方法及装置
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种数据存储方法及装置。
背景技术
随着互联网和计算机的快速发展,互联网中每个网络节点每天都在产生着海量的数据。对海量的数据进行存储带来较高的存储成本,因此,需要通过数据的压缩和分割来增加数据库的存储容量,进而降低存储成本。
现有技术中在数据存储过程的中数据压缩和数据分割处理,常常是在数据入库后进行的。具体的,将待存储的数据存储到数据库,然后,在数据库中采用单一的数据压缩格式进行数据压缩和数据分割。但上述现有的方法中,数据压缩和分割的处理过程中会占用平台的大量计算资源,数据需要等待较长时间后才能进行入库后的读取使用,且数据压缩格式单一,压缩率低,扩容效果差。因此,需要提供更可靠或更有效的方案。
发明内容
本发明提供了一种数据存储方法及装置,可以提高数据压缩率,实现数据库的扩容,且可以实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源。
一方面,本发明提供了一种数据存储方法,所述方法包括:
确定待存储数据的数据类型;
根据所述数据类型确定所述待存储数据对应的数据压缩格式;
基于所述对应的数据压缩格式对所述待存储数据进行压缩;
在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据;
将所述压缩数据存储到目标数据库。
另一方面提供了一种数据存储装置,所述装置包括:
数据类型确定模块,用于确定待存储数据的数据类型;
数据压缩格式确定模块,用于根据所述数据类型确定所述待存储数据对应的数据压缩格式;
数据压缩处理模块,用于基于所述对应的数据压缩格式对所述待存储数据进行压缩;
数据分割处理模块,用于在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据;
数据存储模块,用于将所述压缩数据存储到目标数据库。
另一方面提供了一种数据存储服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述的数据存储方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的数据存储方法。
本发明提供的数据存储方法及装置,具有如下技术效果:
本发明通过在数据入库前,确定待存储数据的数据类型,根据数据类型确定待存储数据对应的数据压缩格式,实现针对不同类型的数据采用不同的数据压缩格式,进而在基于相应的数据压缩格式对待存储数据进行压缩处理过程中,提高压缩率;在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据后,再将压缩数据存储到目标数据库,实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源,数据入库后就可以直接使用。利用本说明书实施例可以灵活选取数据压缩格式,提高数据压缩率,实现数据库的扩容,且可以实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明实施例提供的一种应用环境的示意图;
图2是本发明实施例提供的一种入库服务器压缩处理的架构示意图;
图3是本发明实施例提供的一种数据存储方法的流程示意图;
图4是本发明实施例提供的另一种数据存储方法的流程示意图;
图5是本发明实施例提供的另一种数据存储方法的流程示意图;
图6是本发明实施例提供的预设分割条件从所述待存储数据中分割出已压缩的数据的一种流程示意图;
图7是本发明实施例提供的预设分割条件从所述待存储数据中分割出已压缩的数据的另一种流程示意图;
图8是本发明实施例提供的一种将所述压缩数据存储到目标数据库的示意图;
图9是本发明实施例提供的一种数据存储装置的流程示意图;
图10是本发明实施例提供的另一种数据存储装置的结构示意图;
图11是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以至少包括入库服务器01、存储服务器02和目标数据库03。
具体的,所述入库服务器01可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。具体的,所述入库服务器01可以用于进行数据的压缩和分割处理,以及将压缩数据发送给存储服务器02侧的目标数据库03。
在实际应用中,为了保证存储服务器中压缩数据的高可用,入库服务器往往是由多个服务器组成的服务器集群,如果其中一台或者数台服务器挂掉,待存储数据会自动流向正常的入库服务器。为了解决各个入库服务器之间性能不均衡导致的水桶效应,本说明书实施例中还可以通过调节上级数据分发的权重来调节各入库服务器的流量(待存储数据的数量)。
具体的,所述存储服务器02可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。具体的,所述存储服务器02可以为Hadoop分布式文件系统(HDFS)的服务器。所述存储服务器02可以用于从所述入库服务器01侧获取压缩数据,并存储到目标数据库03。
具体的,所述目标数据库03可以包括但不限于关系型数据库MySQL,所述目标数据库03可以用于存储压缩数据。
在实际应用中,如图2所示,入库服务器会不断的接收到大量数据,然后,可以先进行数据合并处理、数据拆分处理和脏数据删除处理等数据处理,可以分发到多个线程的缓存buffer(每个数据独占一个线程)。各线程使用相应的压缩工具实时对数据进行压缩。因数据压缩主要消耗CPU(Central Processing Unit,中央处理器)资源,本说明书实施例中通过多线程来处理数据压缩可以有效提升服务器的CPU使用效率,从而大大提升数据处理性能。
另外,当接收得到的数据不需要预先进行数据合并处理、数据拆分处理和脏数据删除处理等数据处理时,可以在接收到大量数据后,直接分发到多个线程的缓存buffer。
以下介绍本发明一种数据存储方法的实施例,图3是本发明实施例提供的一种数据存储方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,所述方法可以包括:
S301:确定待存储数据的数据类型。
本说明书实施例中,所述待存储数据可以包括入库服务器接收到的数据。当入库服务器接收到数据之后,入库服务器中的各个线程可以进行可以确定数据的数据类型。具体的,所述数据类型可以包括字符类型和非字符类型。
此外,需要说明的是,本说明书实施例中所述数据类型并不仅限于上述的类型,在实际应用中还可以包括其他类型。
S303:根据所述数据类型确定所述待存储数据对应的数据压缩格式。
本说明书实施例中,所述数据压缩格式包括gunzip数据压缩格式和zlib数据压缩格式。在实际应用中,相同的数据压缩成不同的数据压缩格式往往会有不同的压缩率。具体的,所述压缩率可以为数据压缩后的大小与压缩前的大小之比,可以反映数据压缩效果。具体的,例如:把500MB的文件压缩后是100MB,压缩率为100/500*100%=20%。
在一个具体的实施例中,所述根据所述数据类型确定所述待存储数据对应的数据压缩格式可以包括:
当所述数据类型为字符类型时,确定所述待存储数据对应的数据压缩格式为gunzip数据压缩格式。
在另一个具体的实施例中,所述根据所述数据类型确定所述待存储数据对应的数据压缩格式可以包括:
当所述数据类型为非字符类型时,确定所述待存储数据对应的数据压缩格式为zlib数据压缩格式。
此外,需要说明的是,本说明书实施例中所述数据压缩格式可以结合实际应用中的数据类型进行设置,并不仅限于上述的gunzip和zlib数据压缩格式,在实际应用中还可以包括其他数据压缩格式。
本说明书实施例中,通过针对不同类型的数据采用不同的数据压缩格式,可以有效提高压缩率,进而增加数据库存储的原数据的数据量(为压缩前数据的数据量)。
S305:基于所述对应的数据压缩格式对所述待存储数据进行压缩。
本说明书实施例中,在确定数据压缩格式之后,可以基于所述对应的数据压缩格式对所述待存储数据进行压缩。具体的,可以结合数据压缩格式选取相应的压缩工具和压缩算法,进而将待存储数据压缩成相应的数据压缩格式。
具体的,当数据压缩格式为gunzip数据压缩格式时,可以结合BOOST iostream的gzip filters(压缩工具)来对待存储数据进行压缩处理,在压缩过程中可以采用deflation压缩算法。
具体的,当数据压缩格式为zlib数据压缩格式时,可以结合zlib提供的数据压缩用的函式库(压缩工具)来对待存储数据进行压缩处理,在压缩过程中可以采用deflation压缩算法。
S307:在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据。
在实际应用中,压缩数据太小会导致管理文件系统的内存使用量增加,进而导致系统崩溃等问题;文件(单个压缩数据)太大会导致计算速度下降。本说明书实施例中可以将压缩数据控制在略小于数据库设置的块大小。相应的,所述预设分割条件可以为预设大小分割阈值。所述预设大小分割阈值为可以包括单个压缩数据的大小上限值,可以根据数据库的块大小进行设置。例如,当数据库的块大小为50MB时,所述预设大小分割阈值可以设置为49MB。
在另一些场景中,对数据具有实时性要求。相应的,所述预设分割条件可以包括预设时间分割阈值。具体的,所述预设时间分割阈值可以结合实际应用中对数据实时性要求情况设置,例如,按照分钟、小时、天等多种设置所述预设时间分割阈值。
具体的,在实际应用中,可以结合数据的实时性来确定分割条件。具体的,如图4所示,在基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据之前,所述方法还包括:
S311:判断所述待存储数据是否为实时性数据。
在实际应用中,一些数据需要结合时间要求(如按天)进行存储,为了便于后续的读取,可以直接按照时间要求对待存储数据进行存储。相应的,本说明书实施例中,实时性数据可以包括需要按照时间来进行划分的数据。
S313:当判断的结果为是时,确定所述预设分割条件为预设时间分割阈值。
本说明书实施例中,当判断出待存储数据为实时性数据时,可以确定预设分割条件为预设时间分割阈值。相应的,在压缩过程中,可以基于预设时间分割阈值从所述待存储数据中分割出已压缩的数据,得到压缩数据。
在另一些实施例中,如图5所示,当步骤S311判断的结果为否时,所述方法还可以包括:
S315:确定所述预设分割条件为预设大小分割阈值。
本说明书实施例中,当判断出待存储数据不是实时性数据时,可以确定预设分割条件为预设大小分割阈值。相应的,在压缩过程中,可以基于预设大小分割阈值从所述待存储数据中分割出已压缩的数据,得到压缩数据。
本说明书实施例中,结合数据的实时性要求,可以在按照时间或按照数据的大小进行压缩过程中的分割条件确定,灵活性较高,可以满足数据库对文件(压缩数据)大小的要求和对数据实时性的要求。
在一些实施例中,如图6所示,当所述预设分割条件为预设时间分割阈值时,所述在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据可以包括:
S3071:在压缩过程中,判断当前的时间是否到达预设分割时间阈值。
本说明书实施例中,在压缩过程中,可以实时监测当前的时间,当当前的时间达到预设分割时间阈值,可以执行步骤S3073,反之,继续进行数据的压缩处理。
具体的,假设需要按天(每天零点)对数据进行存储,相应的,可以进行如下的配置:
“cycle”:0 0****
S3073:当判断的结果为是时,从所述待存储数据中分割出已压缩的数据,得到压缩数据。
在一些实施例中,如图7所示,当所述预设分割条件为预设大小分割阈值时,所述在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据可以包括:
S3075:在压缩过程中,判断当前已压缩的数据的大小是否达到预设大小分割阈值。
本说明书实施例中,在压缩过程中,可以实时监测当前已压缩的数据(即已经压缩好的数据)的大小,当当前已压缩的数据的大小达到预设大小分割阈值时,可以执行步骤S3077,反之,继续进行数据的压缩处理。
具体的,假设预设大小分割阈值为64MB,相应的,可以进行如下的配置:
“Block size”:64
S3077:当判断的结果为是时,从所述待存储数据中分割出已压缩的数据,得到压缩数据。
本说明书实施例中,在压缩过程中结合数据的分割条件,对压缩过程中的时间或数据大小进行检测,可以灵活的按照不同的分割条件进行数据的分割,满足数据库对数据大小的要求和对数据实时性的要求。
在实际应用中,可以维护一个压缩文件目录,用于存储压缩数据(压缩文件)的标识信息。相应的,在基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据之后,所述方法还可以包括:
1)确定所述压缩数据的标识信息。
在实际应用中,在分割出压缩数据后,压缩数据(压缩文件)都会存储到相应的数据库,为了防止冲突,区分不同的压缩文件,可以为每一压缩文件设置相应的标识信息。所述标识信息可以为压缩文件的唯一标识。具体的,所述标识信息可以包括基于IP(InternetProtocol,网络协议)地址、数据名称、时间、递增数等设置的信息。
2)将所述标识信息存储到压缩文件目录,以便所述目标数据库侧的存储服务器基于对所述压缩文件目录的扫描来确定是否存在待入库的数据。
在实际应用中,所述压缩文件目录可以存储在入库服务器本地,也可以存储在其他服务器中。
S309:将所述压缩数据存储到目标数据库。
在实际应用中,存储服务器可以定时扫描压缩文件目录,当发现有压缩文件的标识信息时,可以获取相应的压缩文件。相应的,如图8所示,所述将所述压缩数据存储到目标数据库可以包括:
S3091:接收所述存储服务器在扫描到所述压缩文件目录中存在标识信息时,发送的数据入库请求。
具体的,存储服务器在扫描压缩文件目录后,读取到压缩文件的标识信息后,可以通过对标识信息的解析得到数据名称和时间等信息,进而在维护相应的文件信息列表,以便后续的读取。
S3093:将扫描到的标识信息所对应压缩数据发送给所述存储服务器。
具体的,存储服务器在接收到入库服务器发送的压缩数据(压缩文件)之后,可以将压缩文件写入相应的数据库。
另外,在压缩文件写入过程中因管理文件系统不稳定等容易出现卡死的情况,为了解决这个问题,本说明书实施例中,可以采取多线程处理压缩文件的写入来避免卡死无法入库的问题。
进一步的,还可以结合心跳控制写入过程中的稳定,具体的,可以将每个压缩文件的写入时长控制在设定的时间阈值(例如3分钟)内,当某一压缩文件的写入时长超过3分钟,可以强行停止重新写。
在另一些实施例中,考虑到数据的压缩和切割入库由不同的进程在处理,为例避免写入和读取冲突,本说明书实施例中,可以将压缩中的数据的存储位置暂时存储到临时目录中,当需要进行切割时,在存储目录(用于记录未入库的压缩数据的存储位置)创建压缩数据的存储位置后,删除或清空临时目录。
在另一些实施例中,在基于所述对应的数据压缩格式对所述待存储数据进行压缩之前,所述方法还可以包括:
对所述待存储数据进行预处理,所述预处理至少包括下述之一:数据合并处理、数据拆分处理和脏数据删除处理;
相应的,所述基于所述对应的数据压缩格式对所述待存储数据进行压缩包括:基于所述对应的数据压缩格式对预处理后的待存储数据进行压缩处理。
进一步的,在实际应用中,入库服务器在运行过程中可能出现异常,导致正在压缩的文件格式异常,例如:正在压缩的数据块大小异常,压缩的数据缺少结束信息(因未写入结束信息,导致无法正常解压)。相应的,本说明书实施例中,可以通过逐块恢复压缩文件里面的数据。另外,在恢复过程中遇到非法数据块可以直接删除。
由以上本说明书实施例通过的技术方案可见,本说明书通过在数据入库前,确定待存储数据的数据类型,根据数据类型确定待存储数据对应的数据压缩格式,实现针对不同类型的数据采用不同的数据压缩格式,进而在基于相应的数据压缩格式对待存储数据进行压缩处理过程中,提高压缩率;在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据后,再将压缩数据存储到目标数据库,实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源,数据入库后就可以直接使用。利用本说明书实施例可以灵活选取数据压缩格式,提高数据压缩率,实现数据库的扩容,且可以实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源。
本发明实施例还提供了一种数据存储装置,如图9所示,所述装置包括:
数据类型确定模块910,可以用于确定待存储数据的数据类型;
数据压缩格式确定模块920,可以用于根据所述数据类型确定所述待存储数据对应的数据压缩格式;
数据压缩处理模块930,可以用于基于所述对应的数据压缩格式对所述待存储数据进行压缩;
数据分割处理模块940,可以用于在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据;
数据存储模块950,可以用于将所述压缩数据存储到目标数据库。
在一些实施例中,所述数据类型包括字符类型和非字符类型,所述数据压缩格式包括gunzip数据压缩格式和zlib数据压缩格式;
相应的,所述数据压缩格式确定模块包括:
第一数据压缩格式确定单元,用于当所述数据类型为字符类型时,确定所述待存储数据对应的数据压缩格式为gunzip数据压缩格式;
第二数据压缩格式确定单元,用于当所述数据类型为非字符类型时,确定所述待存储数据对应的数据压缩格式为zlib数据压缩格式。
在另一些实施例中,如图10所示,所述装置还可以包括:
实时性判断模块960,可以用于判断所述待存储数据是否为实时性数据;
第一分割条件确定模块970,可以用于当所述实时性判断模块判断的结果为是时,确定所述预设分割条件为预设时间分割阈值。
在另一些实施例中,所述数据分割处理模块包括:
第一判断模块,用于在压缩过程中,判断当前的时间是否到达预设分割时间阈值;
第一数据分割模块,用于当所述第一判断模块判断的结果为是时,从所述待存储数据中分割出已压缩的数据,得到压缩数据。
在另一些实施例中,所述装置还可以包括:
第二分割条件确定模块,用于当所述实时性判断模块判断的结果为否时,确定所述预设分割条件为预设大小分割阈值。
在另一些实施例中,所述数据分割处理模块包括:
第二判断模块,用于在压缩过程中,判断当前已压缩的数据的大小是否达到预设大小分割阈值;
第二数据分割模块,用于当所述第二判断模块判断的结果为是时,从所述待存储数据中分割出已压缩的数据,得到压缩数据。
在另一些实施例中,所述装置还可以包括:
标识信息确定模块,用于确定所述压缩数据的标识信息;
标识信息存储模块,用于将所述标识信息存储到压缩文件目录,以便所述目标数据库侧的存储服务器基于对所述压缩文件目录的扫描来确定是否存在待入库的数据。
在另一些实施例中,所述数据存储模块包括:
入库请求接收模块,用于接收所述存储服务器在扫描到所述压缩文件目录中存在标识信息时,发送的数据入库请求;
数据发送模块,用于将扫描到的标识信息所对应压缩数据发送给所述存储服务器,以便所述存储服务器存储到所述目标数据库。
在一些实施例中,所述装置还可以包括:
预处理模块,用于对所述待存储数据进行预处理,所述预处理至少包括下述之一:数据合并处理、数据拆分处理和脏数据删除处理;
相应的,所述数据压缩处理,还用于基于所述对应的数据压缩格式对预处理后的待存储数据进行压缩处理。
所述的装置实施例中的装置与方法实施例基于同样地发明构思。
本发明实施例提供了一种数据存储服务器,该数据存储服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的数据存储方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图11是本发明实施例提供的一种数据存储方法的服务器的硬件结构框图。如图11所示,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)1110(处理器1110可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1130,一个或一个以上存储应用程序1123或数据1122的存储介质1120(例如一个或一个以上海量存储设备)。其中,存储器1130和存储介质1120可以是短暂存储或持久存储。存储在存储介质1120的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1110可以设置为与存储介质1120通信,在服务器1100上执行存储介质1120中的一系列指令操作。服务器1100还可以包括一个或一个以上电源1160,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1140,和/或,一个或一个以上操作系统1121,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口1140可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1100的通信供应商提供的无线网络。在一个实例中,输入输出接口1140包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1140可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器1100还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
本发明的实施例还提供了一种存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种数据存储方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的数据存储方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
由上述本发明提供的数据存储方法、装置、服务器或存储介质的实施例可见,本发明中通过在数据入库前,确定待存储数据的数据类型,根据数据类型确定待存储数据对应的数据压缩格式,实现针对不同类型的数据采用不同的数据压缩格式,进而在基于相应的数据压缩格式对待存储数据进行压缩处理过程中,提高压缩率;在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据后,再将压缩数据存储到目标数据库,实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源,数据入库后就可以直接使用。利用本说明书实施例可以灵活选取数据压缩格式,提高数据压缩率,实现数据库的扩容,且可以实现入库前的数据压缩处理,减轻入库后的数据处理负担,占用更少的计算和存储资源。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种数据存储方法,其特征在于,所述方法包括:
确定待存储数据的数据类型;
根据所述数据类型确定所述待存储数据对应的数据压缩格式;
基于所述对应的数据压缩格式对所述待存储数据进行压缩;
在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据;在所述待存储数据为实时性数据的情况下,所述预设分割条件为预设时间分割阈值,所述在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据包括:在压缩过程中,若当前的时间到达所述预设时间分割阈值,从所述待存储数据中分割出已压缩的数据,得到所述压缩数据;在所述待存储数据不为实时性数据的情况下,所述预设分割条件为预设大小分割阈值,所述预设大小分割阈值为根据目标数据库的块大小设置的单个压缩数据的大小上限值;所述在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据包括:在压缩过程中,若当前已压缩的数据的大小达到所述预设大小分割阈值,从所述待存储数据中分割出已压缩的数据,得到所述压缩数据;
将所述压缩数据存储到所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述数据类型包括字符类型和非字符类型,所述数据压缩格式包括gunzip数据压缩格式和zlib数据压缩格式;
相应的,所述根据所述数据类型确定所述待存储数据对应的数据压缩格式包括:
当所述数据类型为字符类型时,确定所述待存储数据对应的数据压缩格式为gunzip数据压缩格式;
当所述数据类型为非字符类型时,确定所述待存储数据对应的数据压缩格式为zlib数据压缩格式。
3.根据权利要求1所述的方法,其特征在于,在基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据之后,所述方法还包括:
确定所述压缩数据的标识信息;
将所述标识信息存储到压缩文件目录,以便所述目标数据库侧的存储服务器基于对所述压缩文件目录的扫描来确定是否存在待入库的数据。
4.根据权利要求3所述的方法,其特征在于,所述将所述压缩数据存储到所述目标数据库包括:
接收所述存储服务器在扫描到所述压缩文件目录中存在标识信息时,发送的数据入库请求;
将扫描到的标识信息所对应压缩数据发送给所述存储服务器,以便所述存储服务器存储到所述目标数据库。
5.根据权利要求1所述的方法,其特征在于,在基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据之前,所述方法还包括:
对所述待存储数据进行预处理,所述预处理至少包括下述之一:数据合并处理、数据拆分处理和脏数据删除处理;
相应的,所述基于所述对应的数据压缩格式对所述待存储数据进行压缩包括:基于所述对应的数据压缩格式对预处理后的待存储数据进行压缩处理。
6.一种数据存储装置,其特征在于,所述装置包括:
数据类型确定模块,用于确定待存储数据的数据类型;
数据压缩格式确定模块,用于根据所述数据类型确定所述待存储数据对应的数据压缩格式;
数据压缩处理模块,用于基于所述对应的数据压缩格式对所述待存储数据进行压缩;
数据分割处理模块,用于在压缩过程中,基于预设分割条件从所述待存储数据中分割出已压缩的数据,得到压缩数据;在所述待存储数据为实时性数据的情况下,所述预设分割条件为预设时间分割阈值,所述数据分割处理模块用于在压缩过程中,若当前的时间到达所述预设时间分割阈值,从所述待存储数据中分割出已压缩的数据,得到所述压缩数据;在所述待存储数据不为实时性数据的情况下,所述预设分割条件为预设大小分割阈值,所述预设大小分割阈值为根据目标数据库的块大小设置的单个压缩数据的大小上限值;所述数据分割处理模块用于在压缩过程中,若当前已压缩的数据的大小达到所述预设大小分割阈值,从所述待存储数据中分割出已压缩的数据,得到所述压缩数据;
数据存储模块,用于将所述压缩数据存储到目标数据库。
7.根据权利要求6所述的装置,其特征在于,所述数据类型包括字符类型和非字符类型,所述数据压缩格式包括gunzip数据压缩格式和zlib数据压缩格式;
所述数据压缩格式确定模块包括:
第一数据压缩格式确定单元,用于当所述数据类型为字符类型时,确定所述待存储数据对应的数据压缩格式为gunzip数据压缩格式;
第二数据压缩格式确定单元,用于当所述数据类型为非字符类型时,确定所述待存储数据对应的数据压缩格式为zlib数据压缩格式。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
标识信息确定模块,用于确定所述压缩数据的标识信息;
标识信息存储模块,用于将所述标识信息存储到压缩文件目录,以便所述目标数据库侧的存储服务器基于对所述压缩文件目录的扫描来确定是否存在待入库的数据。
9.根据权利要求8所述的装置,其特征在于,所述数据存储模块包括:
入库请求接收模块,用于接收所述存储服务器在扫描到所述压缩文件目录中存在标识信息时,发送的数据入库请求;
数据发送模块,用于将扫描到的标识信息所对应压缩数据发送给所述存储服务器,以便所述存储服务器存储到所述目标数据库。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
预处理模块,用于对所述待存储数据进行预处理,所述预处理至少包括下述之一:数据合并处理、数据拆分处理和脏数据删除处理;
所述数据压缩处理,还用于基于所述对应的数据压缩格式对预处理后的待存储数据进行压缩处理。
11.一种数据存储服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1至5任一所述的数据存储方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、或至少一段程序,所述至少一条指令、或所述至少一段程序由处理器加载并执行以实现如权利要求1至5任一所述的数据存储方法。
CN201910248097.0A 2019-03-29 2019-03-29 一种数据存储方法及装置 Active CN110196836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910248097.0A CN110196836B (zh) 2019-03-29 2019-03-29 一种数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910248097.0A CN110196836B (zh) 2019-03-29 2019-03-29 一种数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN110196836A CN110196836A (zh) 2019-09-03
CN110196836B true CN110196836B (zh) 2024-05-10

Family

ID=67751746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910248097.0A Active CN110196836B (zh) 2019-03-29 2019-03-29 一种数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN110196836B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111031030A (zh) * 2019-12-10 2020-04-17 深圳前海环融联易信息科技服务有限公司 缓存处理方法、装置、计算机设备以及存储介质
CN113055017A (zh) * 2019-12-28 2021-06-29 华为技术有限公司 数据压缩方法及计算设备
CN111817722A (zh) * 2020-07-09 2020-10-23 北京奥星贝斯科技有限公司 数据压缩方法、装置及计算机设备
CN111949629B (zh) * 2020-07-22 2024-03-22 金钱猫科技股份有限公司 一种面向边缘云的文件存储方法及终端
CN111865328B (zh) * 2020-08-11 2022-03-01 珠海美佳音科技有限公司 环境数据的压缩方法及相关装置
CN112506879A (zh) * 2020-12-18 2021-03-16 深圳智慧林网络科技有限公司 数据处理方法及相关设备
CN113010490A (zh) * 2021-02-22 2021-06-22 北京字节跳动网络技术有限公司 数据存储方法、装置和电子设备
CN113076293B (zh) * 2021-04-15 2024-03-08 湖南甲万科技有限公司 一种用于智能终端的数据扩容方法
CN113688108A (zh) * 2021-07-16 2021-11-23 深圳智慧林网络科技有限公司 数据处理方法及相关设备
CN114064140B (zh) * 2021-10-15 2024-03-15 南京南瑞继保电气有限公司 一种故障录波数据存储和访问方法及装置、存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163180A (ja) * 2000-11-27 2002-06-07 Nissan Motor Co Ltd データ収集装置およびデータ転送方法
KR20040047207A (ko) * 2002-11-29 2004-06-05 (주)소프트위드솔루션 과부하 조절 기능을 갖는 데이터 백업 시스템 및 이를이용한 데이터 백업 방법
CN101582067A (zh) * 2008-05-15 2009-11-18 国际商业机器公司 解压压缩文件时减小存储需求的方法和系统
CN101800761A (zh) * 2009-12-25 2010-08-11 吴昊 一种基于网络字典的无损数据压缩方法
CN106991134A (zh) * 2017-03-13 2017-07-28 人和未来生物科技(长沙)有限公司 一种基于对象存储的大型数据云存储方法
KR101921097B1 (ko) * 2017-11-09 2019-02-13 한화시스템 주식회사 이중 압축 센싱을 이용한 광대역 디지털 수신 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5941270B2 (ja) * 2010-12-17 2016-06-29 キヤノン株式会社 情報処理装置、情報処理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163180A (ja) * 2000-11-27 2002-06-07 Nissan Motor Co Ltd データ収集装置およびデータ転送方法
KR20040047207A (ko) * 2002-11-29 2004-06-05 (주)소프트위드솔루션 과부하 조절 기능을 갖는 데이터 백업 시스템 및 이를이용한 데이터 백업 방법
CN101582067A (zh) * 2008-05-15 2009-11-18 国际商业机器公司 解压压缩文件时减小存储需求的方法和系统
CN101800761A (zh) * 2009-12-25 2010-08-11 吴昊 一种基于网络字典的无损数据压缩方法
CN106991134A (zh) * 2017-03-13 2017-07-28 人和未来生物科技(长沙)有限公司 一种基于对象存储的大型数据云存储方法
KR101921097B1 (ko) * 2017-11-09 2019-02-13 한화시스템 주식회사 이중 압축 센싱을 이용한 광대역 디지털 수신 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈启安.《多媒体软件设计技术 第3版》.西安:西安电子科技大学出版社,2008,第14页. *

Also Published As

Publication number Publication date
CN110196836A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
CN110196836B (zh) 一种数据存储方法及装置
CN106302632B (zh) 一种基础镜像的下载方法以及管理节点
US9594801B2 (en) Systems and methods for allocating work for various types of services among nodes in a distributed computing system
CN111522636A (zh) 应用容器的调整方法、调整系统、计算机可读介质及终端设备
CN112506870B (zh) 数据仓库增量更新方法、装置及计算机设备
CN110557304B (zh) 一种地址探测方法、设备及计算机可读存储介质
CN107729570B (zh) 用于服务器的数据迁移方法和装置
CN1687899A (zh) 将应用程序动态下载到用户识别模块的方法、系统及模块
CN113485999A (zh) 数据清理方法、装置和服务器
CN112328372A (zh) 一种kubernetes节点自愈方法和系统
CN105068875A (zh) 一种智能数据处理方法及装置
CN111984196B (zh) 一种文件迁移方法、装置、设备及可读存储介质
CN113609090A (zh) 数据存储方法及装置、计算机可读存储介质、电子设备
CN104915376A (zh) 一种云存储中文件的归档压缩方法
CN108989088B (zh) 一种日志上传方法和通信设备
CN111767126A (zh) 分布式批量处理的系统和方法
CN107422991B (zh) 一种存储策略管理系统
CN113076175B (zh) 用于虚拟机的内存共享方法及装置
CN115390754A (zh) 一种硬盘管理方法及装置
CN114629917A (zh) 一种用于跨系统通讯的数据处理方法、装置及电子设备
CN111431951B (zh) 一种数据处理方法、节点设备、系统及存储介质
CN108848136B (zh) 一种云服务集群的共享存储方法
CN112115123A (zh) 用于分布式数据库的性能优化的方法和装置
CN112667607B (zh) 一种历史数据的管理方法及相关设备
CN117527833B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230914

Address after: 100190 Beijing Haidian District Zhichun Road 49 No. 3 West 309

Applicant after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Applicant before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant