数据的存储方法及装置、电子设备和计算机可读存储介质与流程

文档序号:28168610发布日期:2021-12-24 23:07阅读:83来源:国知局
数据的存储方法及装置、电子设备和计算机可读存储介质与流程

1.本技术涉及数据存储领域,特别是涉及一种数据的存储方法及装置、电子设备和计算机可读存储介质。


背景技术:

2.企业生产环境中会产生大量数据,对数据进行存储和分析对于企业而言至关重要,现有技术中对于数据的存储方式包括:1)不压缩直接对数据进行存储;2)按照统一的压缩比例进行压缩后再存储。采用上述方式1)则会导致占用存储空间较大,采用上述方式2)压缩后再存储后,如果要对存储的数据进行读取,必须先对其进行解压缩才能读取。可见,现有技术中的数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。


技术实现要素:

3.本技术实施例的目的在于提供一种数据的存储方法及装置、电子设备和计算机可读存储介质,解决了现有技术的数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。
4.在本技术实施的第一方面,首先提供了一种数据的存储方法,所述方法包括:确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;存储压缩后的第一数据。
5.在本技术实施的第二方面,还提供了一种数据的存储装置,所述装置包括:确定模块,用于确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;第一压缩模块,用于基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;第一存储模块,用于存储压缩后的第一数据。
6.在本技术实施的第三方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的数据的存储方法。
7.在本技术实施的第四方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据的存储方法。
8.本技术实施例提供的数据的存储方法及装置,通过确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;存储压缩后的第一数据;也就是说,在本技术实施例中可以根据数据的存储粒度来确定对应的压缩比例,即可以有选择的对需要压缩的数据根据存储粒度的不同选择对应的压缩比例进行压缩,在节省存储空间的同时也能保证读取效率,从而解决了现有技术中数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。
附图说明
9.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
10.图1为本技术实施例中数据的存储方法流程图之一;
11.图2为本技术实施例中数据的存储方法流程图之二;
12.图3为本技术实施例中数据的存储方法流程图之三;
13.图4为本技术实施例中数据的流向示意图;
14.图5为本技术实施例中参数的设置流程示意图;
15.图6为本技术实施例中数据的压缩流程示意图;
16.图7为本技术实施例中日志数据的存储方法流程示意图;
17.图8为本技术实施例中数据的存储装置结构示意图之一;
18.图9为本技术实施例中数据的存储装置结构示意图之二;
19.图10为本技术实施例中数据的存储装置结构示意图之三;
20.图11为本技术实施例中电子设备的结构示意图。
具体实施方式
21.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述地实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.在后续的描述中,使用用于表示元件的诸如“模块”、“单元”的后缀仅为了有利于本技术的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。本技术实施例提供了一种数据的存储方法,如图1所示,该方法包括以下步骤:
24.步骤102:确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;
25.其中,需要说明的是,第一索引通过应用程序接口(application programming interface,api)接口根据第一字段建立;第一字段用于区分第一数据与其他数据;以日志数据为例,字段可以是正常信息info、错误信息error、排错信息debug、警告信息warm等,根据error字段上的索引,可以确定对应的error数据。
26.步骤104:基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;
27.其中,需要说明的是,第一数据的存储粒度小,表明第一数据需要细化程度高,则可以将对应的第一压缩比例设置小一些;而第一数据的存储粒度大,表明第一数据需要细化程度低,则可以将对应的第一压缩比例设置大一些,即第一数据的存储粒度越小对应的第一比例越小,第一数据的存储粒度越大则对应的第一比例越大;在一示范例中,在日志的存储过程中,存储粒度小的error数据的压缩比例可以设置为1:1,存储粒度大的info数据的压缩比例可以设置为5:1。当然,上述具体的压缩比例仅仅是举例说明,在具体应用场景中可以根据实际情况进行相应的设置,例如存储粒度小的error数据的压缩比例也可以设
置为2:1等,存储粒度大的info数据的压缩比例也可以设置为7:1等。
28.步骤106:存储压缩后的第一数据。
29.通过本技术实施例的上述步骤102至步骤106,确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;存储压缩后的第一数据;也就是说,基于字段上的索引确定需要存储的数据,按照字段对应的压缩比例对数据进行压缩并存储,本技术实施例所提供的数据的存储方法可以根据数据的存储粒度来确定对应的压缩比例,即可以有选择的对需要压缩的数据根据存储粒度的不同选择对应的压缩比例进行压缩,在节省存储空间的同时也能保证读取效率,从而解决了现有技术中数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。
30.在本技术实施例的可选实施方式中,本技术实施例提供的数据的存储方法,如图2所示,进一步可以包括:
31.步骤202:在检测到的字段由第一字段变为第二字段之后的预设时长内,基于第一压缩比例对第二数据进行压缩,其中,第二字段为第二数据的字段;
32.其中,需要说明的是,预设时长在不同的应用场景根据对应的需求进行相应的预设,预设时长的单位包括但不限于秒、分钟、小时;在一示范例中,以预设时长为10分钟为例,即当检测到字段从error变为info之后的10分钟内,依然基于error字段的压缩比例1:1对info字段对应的数据进行压缩;
33.其中,error字段的压缩比例1:1仅仅用于举例说明,在实际应用中根据存储粒度的不同也可以是3:1、5:1等其它比例。
34.步骤204:在经过预设时长后,基于与第二字段对应的第二压缩比例对第二数据进行压缩;其中,第二压缩比例基于第二数据的存储粒度确定;
35.其中,需要说明的是,在一示范例中,以预设时长为10分钟为例,在检测到字段从error变为info之后的10分钟内,依然基于error字段的压缩比例1:1对info字段对应的数据进行压缩,10分钟之后则按照info字段的压缩比例10:1对info数据进行压缩;其中,info字段的压缩比例为10:1仅仅用于举例说明,在实际应用中根据存储粒度的不同也可以是30:1、50:1等其它比例。
36.步骤206:存储压缩后的第二数据;
37.其中,第一压缩比例不同于第二压缩比例。
38.其中,需要说明的是,第一压缩比例根据第一数据的存储粒度确定;第二压缩比例根据第二数据的存储粒度确定;例如,第一压缩比例为7:1,第二压缩比例为9:1。
39.通过本技术实施例的上述步骤202至步骤204,本技术实施例所提供的数据的存储方法可以根据预设时长延迟变换最新字段对应的压缩比例,在字段更新较快的情况下也不会频繁调整压缩比例,保障了数据存储系统的安全性。
40.在本技术实施例的可选实施方式中,本技术步骤202至步骤204中涉及到的第一数据的存储粒度大于第二数据的存储粒度的情况下,第一压缩比例大于第二压缩比例。
41.其中,需要说明的是,第一数据的存储粒度越小,细化程度越高,对应的第一压缩比例越小,第一数据的存储粒度越大,细化程度越低,对应的第一压缩比例越大;在一示范例中,error数据的存储粒度大于info数据的存储粒度,,error字段对应的压缩比例为2:1,
大于info字段对应的压缩比例8:1。
42.在本技术实施例的可选实施方式中,本技术实施例提供的数据的存储方法在步骤102之前,如图3所示,包括:
43.步骤302:在第一数据中设置第一字段;其中,第一字段用于区分第一数据与其它数据;
44.其中,需要说明的是,第一字段用于区分第一数据与其他数据;以智能家居应用场景中的数据为例,字段可以是管理员操作信息、成员操作信息等,根据管理员操作信息字段上的索引,可以确定对应的管理员操作信息数据。
45.步骤304:根据第一字段生成第一索引;
46.其中,需要说明的是,第一索引通过api接口根据第一字段建立。
47.步骤306:设置第一字段对应的第一压缩比例。
48.其中,需要说明的是,第一压缩比例可以根据第一字段对应的第一数据的存储粒度确定。
49.在本技术实施例的可选实施方式中,本技术实施例提供的数据的存储方法在步骤106之后,包括:基于与第一压缩比例对应的解压缩方式对压缩后的第一数据进行解压缩。
50.其中,需要说明的是,当第一压缩比例为1:1时,不需要解压缩即可直接读取数据。
51.可见,本技术实施例所提供的数据的存储方法可以基于字段上的索引确定需要存储的数据,按照字段对应的压缩比例对数据进行压缩并存储,从而解决了现有技术中的数据的存储方法存在占用存储空间较大影响了服务器性能、数据在存储后读取数据不便的技术问题。
52.在本技术实施例中,本技术实施例所提供的数据的存储方法中数据的流向如下图4所示,数据流经服务器处理成热数据,经过缓存并压缩,最后存储在硬盘中。
53.在本技术实施例中,本技术实施例所提供的数据的存储方法涉及到的参数设置流程如下图5所示,包括:
54.步骤502:确定指定数据的指定字段;
55.步骤504:根据指定数据的存储粒度设置指定字段的指定压缩比例;
56.步骤506:设置预设时长;
57.步骤508:服务器对指定数据进行处理;
58.步骤510:通过api接口根据指定字段生成索引;
59.步骤512:下游存储服务对指定数据进行存储。
60.可见,通过该具体实施方式,本技术实施例所提供的数据的存储方法可以对指定字段、指定压缩比例、预设时长进行设定,可以根据数据的存储粒度来确定对应的压缩比例,即可以有选择的对需要压缩的数据进行压缩,在节省存储空间的同时也能保证读取效率,从而解决了现有技术中数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。
61.在本技术实施例中,本技术实施例所提供的数据的存储方法中数据的压缩流程如下图6所示,包括:
62.步骤602:根据第一数据的存储粒度确定第一字段对应的第一压缩比例;
63.步骤604:判断是否超出上一字段第二字段的预设时长;
64.步骤606:超出预设时长则按照第一压缩比例对第一数据进行压缩;
65.步骤608:未超出预设时长则按照第二字段对应的第二压缩比例对第一数据进行压缩;
66.步骤610:存储压缩后的第一数据。
67.可见,通过该具体实施方式,本技术实施例所提供的数据的存储方法可以根据数据的存储粒度来确定对应的压缩比例,即可以有选择的对需要压缩的数据进行压缩,在节省存储空间的同时也能保证读取效率,从而解决了现有技术中数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。
68.下面结合本技术具体实施方式对本技术进行举例说明,该具体实施方式提供了一种日志数据的存储方法,如图7所示,包括:
69.步骤701:按日志数据类型设置字段,根据字段生成索引;其中,日志数据类型分为正常信息info日志、警告信息warning日志、错误信息error日志;
70.步骤702:根据日志数据的存储粒度确定对应的压缩比例;其中,error日志的存储粒度最小,error字段对应的压缩比例为1:1;warning日志的存储粒度大于info且小于error日志,warning字段对应的压缩比例为5:1;info日志的存储粒度最大,info字段对应的压缩比例为10:1;
71.步骤703:设置预设时长为10分钟;
72.步骤704:检测到error字段时,error日志按照压缩比例1:1进行处理即不进行压缩直接存储;
73.步骤705:检测到info字段时,如未超出上一字段error字段的预设时长10分钟,则按照error字段对应的压缩比例1:1对info日志进行压缩;
74.步骤706:检测到info字段时,如超出上一字段error字段的预设时长10分钟,则按照info字段对应的压缩比例10:1对info日志进行压缩;
75.步骤707:存储压缩后的info日志。
76.可见,在本技术具体实施方式中可以根据日志数据类型相应的存储粒度来确定对应的压缩比例,用户在查看error日志时无需解压即可使用数据,即可以有选择的对需要压缩的日志数据进行压缩,在节省存储空间的同时也能保证读取效率。
77.本技术实施例提供了一种数据的存储装置,如图8所示,该装置包括:
78.确定模块82,用于确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;
79.第一压缩模块84,用于基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;
80.第一存储模块86,用于存储压缩后的第一数据。
81.通过本技术实施例提供的数据的存储装置,确定模块用于确定与第一索引对应的第一数据;其中,第一索引设置在第一数据中的第一字段上;第一压缩模块用于基于与第一字段对应的第一压缩比例对第一数据进行压缩;其中,第一压缩比例基于第一数据的存储粒度确定;第一存储模块用于存储压缩后的第一数据;也就是说,在本技术实施例中可以根据数据的存储粒度来确定对应的压缩比例,即可以有选择的对需要压缩的数据根据存储粒度的不同选择对应的压缩比例进行压缩,在节省存储空间的同时也能保证读取效率,从而
解决了现有技术中数据的存储方法存在占用存储空间较大或读取存储的数据效率较低的技术问题。
82.在本技术实施例的可选实施方式中,本技术实施例提供的数据的存储装置,如图9所示,进一步可以包括:
83.第二压缩模块92,用于在检测到的字段由第一字段变为第二字段之后的预设时长内,基于第一压缩比例对第二数据进行压缩,其中,第二字段为第二数据的字段;
84.第三压缩模块94,用于在经过预设时长后,基于与第二字段对应的第二压缩比例对第二数据进行压缩;其中,第二压缩比例基于第二数据的存储粒度确定;
85.第二存储模块96,用于存储压缩后的第二数据;
86.其中,第一压缩比例不同于第二压缩比例。
87.在本技术实施例的可选实施方式中,本技术实施例提供的数据的存储装置,如图10所示,进一步可以包括:
88.第一设置模块1002,用于在第一数据中设置第一字段;其中,第一字段用于区分第一数据与其它数据;
89.生成模块1004,用于根据第一字段生成第一索引;
90.第二设置模块1006,用于设置第一字段对应的第一压缩比例。
91.在本技术实施例的可选实施方式中,本技术实施例提供的数据的存储装置,进一步可以包括:解压缩模块,用于基于与第一压缩比例对应的解压缩方式对压缩后的第一数据进行解压缩。
92.本技术实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
93.存储器1103,用于存放计算机程序;
94.处理器1101,用于执行存储器1103上所存放的程序时,实现图1中的方法步骤,其所起到的作用与图1中的方法步骤一样。
95.上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
96.通信接口用于上述终端与其他设备之间的通信。
97.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
98.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
99.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可
读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据的存储方法。
100.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据的存储方法。
101.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
102.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
103.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
104.以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1