掌桥专利:专业的专利平台
掌桥专利
首页

数据存储方法、装置及电子设备

文献发布时间:2023-06-19 11:52:33


数据存储方法、装置及电子设备

技术领域

本公开涉及大数据存储技术领域,尤其涉及一种数据存储方法、装置及电子设备。

背景技术

目前,在将数据文件转化存储到HBase数据库所涉及的相关技术中,主要采用以下几种方式实现数据存储。

第一种是利用HBase接口编写专用程序实现数据对接;

第二种是使用Bulk load等工具完成数据导入;

第三种是编写MapReduce程序向HBase数据库导入数据;

但是,前述三种存储方式在使用过程中存在通用性差、存储复杂的问题,无法达到利用HBase实现大数据快速存储的目的。

发明内容

本公开提供一种数据存储方法、装置、电子设备及计算机可读存储介质,以至少解决前述相关技术存在的一个技术问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种数据存储方法,应用于分布式存储系统中的管理平台,所述方法包括:

接收终端设备发送的待存储数据,所述待存储数据中携带有终端标识;

创建与所述终端标识对应的HBase数据表;

根据所述终端标识、所述待存储数据的属性信息在所述HBase数据表中配置用于指示数据存储位置的行键标识;

根据所述行键标识将所述待存储数据写入与所述管理平台对应的HBase数据库。

进一步,作为一种可能的实现方式,所述根据所述终端标识、所述待存储数据的属性信息在所述HBase数据表中配置用于指示数据存储位置的行键标识的步骤,包括:

对所述终端标识进行哈希运算得到第一哈希值,作为第一前缀;

对当前时间值进行运算得到时间字段,将倒排后的所述时间字段作为第二前缀;

对所述第一前缀、所述第二前缀以及所述待存储数据的属性信息进行信息组合得到行键标识。

进一步,作为一种可能的实现方式,所述待存储数据的属性信息至少包括文件名、字段名、字段值中的一种。

进一步,作为一种可能的实现方式,所述根据所述行键标识将所述待存储数据写入与所述管理平台对应的HBase数据库的步骤之前,所述方法还包括:

获取所述待存储数据对应的指令编码;

基于所述指令编码在所述HBase数据表中配置用于指示数据存储位置的列键标识;

所述根据所述行键标识将所述待存储数据写入与所述管理平台对应的HBase数据库的步骤,包括:

根据所述行键标识以及列键标识将所述待存储数据写入与所述管理平台连接的HBase数据库。

进一步,作为一种可能的实现方式,所述接收终端设备发送的待存储数据的步骤之后,所述方法还包括:

检测是否存在与所述终端标识对应的HBase数据表;

在未检测到与所述终端标识对应的HBase数据表时,执行所述创建与所述终端标识对应的指定HBase数据表的步骤;

在检测到与所述终端标识对应的HBase数据表时,基于与所述终端标识对应的HBase数据表,执行所述在所述HBase数据表中配置用于指示数据存储位置的行键标识的步骤。

进一步,作为一种可能的实现方式,所述根据所述行键标识将所述待存储数据写入与所述管理平台对应的HBase数据库的步骤之后,所述方法还包括:

接收数据访问请求,所述数据访问请求中携带有待校验终端标识;

在基于所述待校验终端标识判断得到与所述数据访问请求对应的终端设备具有数据访问权限时,基于所述终端标识以及当前时间生成第一标识和第二标识,所述第一标识用于定位数据检索时的HBase数据表中的行键起始位置,所述第二标识用于定位数据检索时的HBase数据表中的行键结束位置;

从HBase数据库中获取与所述第一标识和所述第二标识对应数据,并反馈给与所述待校验终端标识对应的终端设备进行数据访问。

进一步,作为一种可能的实现方式,所述基于所述终端标识以及当前时间生成第一标识和第二标识的步骤,包括:

对所述待校验终端标识进行哈希运算,得到第二哈希值;

在所述数据访问请求中还携带有用于表征检索起始时间的第一指定时间值,以及用于表征检索结束时间的第二指定时间值时,对所述第二哈希值和所述第一指定时间值进行信息组合得到第一标识;以及

对所述第二哈希值和所述第二指定时间值进行信息组合得到第二标识。

根据本公开实施例的第二方面,提供一种一种数据存储装置,应用于分布式存储系统中的管理平台,所述装置包括:

数据接收模块,用于接收终端设备发送的待存储数据,所述待存储数据中携带有终端标识;

数据表创建模块,用于创建与所述终端标识对应的HBase数据表;

标识信息创建模块,用于根据所述终端标识、所述待存储数据的属性信息在所述HBase数据表中配置用于指示数据存储位置的行键标识;

数据存储模块,用于根据所述行键标识将所述待存储数据写入与所述管理平台对应的HBase数据库。

根据本公开实施例的第三方面,提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据存储方法的步骤。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的数据存储方法的步骤。

本公开的实施例提供的技术方案至少带来以下有益效果:

在基于HBase进行数据存储时,可创建与终端标识对应的HBase数据表,以基于该HBase数据表实现对终端设备发送的待存储数据进行存储,从而提高数据存储过程的通用性差,达到利用HBase实现大数据快速存储的目的。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种数据存储方法的流程图。

图2是根据一示例性实施例示出的HBase数据表的示意图。

图3是根据一示例性实施例示出的又一种数据存储方法的流程图。

图4是根据一示例性实施例示出的一种数据存储装置的框图。

图5是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图如图1中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和装置的例子。

实施例一

如图1所示,为根据一示例性实施例提供的数据存储方法,该数据存储方法由分布式存储系统中的管理平台执行,具体由管理平台上的硬件或/和软件执行。参照图1,数据存储方法可以包括如下内容。

S1,接收终端设备发送的待存储数据。

其中,待存储数据中携带有终端标识,该终端标识可以是终端类型(如终端品牌、终端系统等)、终端ID等。应注意,管理平台接收到的待存储数据可以是以数据文件的方式存在,也可以是由多个数据字段构成等,本实施例对此不做限制。

S2,创建与终端标识对应的HBase数据表。

其中,HBase数据表作为一种文件描述对象,该文件描述对象中可保存数据索引信息,如行键标号(RowKey)、列键标号(如列族名称(Column Family)、列限定符名称(Column))以及区域Region的拆分策略等,以用于实现对数据查询操作的权限控制等。本申请中,每个终端标识可对应一张HBase数据表,例如,在实际实施时,可将终端标识作为对应的HBase数据表的名称。

S3,根据终端标识、待存储数据的属性信息在HBase数据表中配置用于指示数据存储位置的行键标识。

其中,待存储数据的属性信息至少可以包括文件名、字段名、字段值中的一种。根据需求的不同,行键标识的配置方式有所不同。例如,在本申请中,S3中所述的行键标识的配置过程可通过S31至S33实现,内容如下。

S31,对终端标识进行哈希(HashCode)运算得到第一哈希值,作为第一前缀。

在S31中,考虑到实际应用中终端标识的构成形式多种多样,甚至在有些场景下会出现终端标识由不可读字节组成的情况。因此,本申请中通过哈希运算对终端标识进行加密处理,从而实现在不影响响应时间的前提下,既方便对终端标识的传输和存储,又将终端标识转换成了一种不易被人直接识别的形式,从而提高数据存储的安全性。

应注意,在实际实施时,可在得到第一哈希值后,再对该第一哈希值取模,以得到第一前缀,从而提高数据存储的安全性。

S32,对当前时间值进行运算得到时间字段,将倒排后的时间字段作为第二前缀。

可选地,作为一种可能的实现方式,前述对当前时间值进行运算得到时间字段的过程可以包括:管理平台根据接收到的待存储数据的数据接收时间以倒排的形式,即Long类型的最大值减去当前时间值的时间戳,以生成rowkey的时间字段,即第二前缀。作为一种实现方式,S32可通过,但不限于伪代码Long.MAX_VALUE-timestamp实现时间字段的运算。

S33,对第一前缀、第二前缀以及待存储数据的属性信息进行信息组合得到行键标识。

可选地,S33中关于第一前缀、第二前缀以及待存储数据的属性信息地组合顺序以及组合方式可根据需求进行设定。此外,在进行信息组合时,还可在各信息之间增加信息分隔符,如顿号“、”或斜杠“/”等,本实施例在此不做限制。

例如,行健标识可以为:第一前缀、第二前缀、文件名、字段名、字段值,也可以是第一前缀、第二前缀、字段值、字段名、文件名。需要注意的是,在实际实施时,行健标识可以由第一前缀、第二前缀以及待存储数据的属性信息直接组合而成,也可以是对组合后的信息进行数据处理(如加密处理、信息转换处理等)得到,本实施例对此不做限制。

进一步,作为另一种可能的实现方式,在进行HBase数据表配置时,还可包括列键标识的配置过程,具体过程可以包括:获取待存储数据对应的指令编码(cmdID),基于该指令编码在HBase数据表中配置用于指示数据存储位置的列键标识,从而提高数据查询效率,以及提高数据安全性。

应注意,在本申请中,列键标识可以包括列族名称和列名称,由于一个列族中可以包括多个列,因此,为了提高HBase数据表的可读性,降低数据冗余,列族名称可以直接采用单个字符,如列族名称可以为是1、2、3……,或a、b、c……,等。而在确定列名称时,可将对应列族名称作为列名称的前缀,如列名称可以为列族名称+指令编码等自定义标识信息。

请结合参阅图2,为本申请根据一示例性实施例给出的HBase数据表的示意图。实际实施时,HBase数据表可以是,但不限于图2所示,应注意,图2中的cmdID1、cmdID2中的1和2仅用于表示不同的指令编码,并无实际意义。

S4,根据行键标识将待存储数据写入与管理平台对应的HBase数据库。

对于S4,作为一种可能的实现方式,假设HBase数据表中还配置有列键标识时,S4的实现过程可以包括:根据行键标识以及列键标识将待存储数据写入与管理平台连接的HBase数据库。

通过前述S1至S4的描述可以看出:本申请中通过创建与终端标识对应的HBase数据表,能够提高数据存储以及后续数据访问的高效性。

此外,在进行行键标识生成时,本申请还通过预设的标识生成规则形成格式统一的唯一的行键标识(RowKey),进一步实现了数据的高效存储。

进一步,为了避免数据冗余,同时降低数据存储及检索难度,在执行S2之前,本申请给出的数据存储方法还可包括图3所示的如下内容。

S5,检测是否存在与终端标识对应的HBase数据表,在未检测到与终端标识对应的HBase数据表时,执行S2至S4,反之,则基于与终端标识对应的HBase数据表,执行S3至S4。

其中,在接收到待存储数据时,将该待存储数据中携带的终端标识,与HBase数据表的表名进行比对,以判断是否存在对应的HBase数据表。另外,在基于与终端标识对应的HBase数据表进行待存储数据的存储时,可按序在HBase数据表中增加新的与待存储数据对应的主键标识和列键标识等。

应注意,在对前述HBase数据表进行配置时,除了行健标识、列键标识的配置之外,还可包括区域Region拆分策略的配置等,该区域Region拆分策略可以“KeyPrefixRegionSplitPolicy”等,本申请对区域Region拆分策略实际拆分规则不做限制。

进一步,基于前述S1至S5的描述,本申请还包括基于已保存的HBase数据表以及存储的数据进行数据访问的过程,该数据访问的过程可以包括如下内容。

S6,接收数据访问请求。其中,数据访问请求中可携带有待校验终端标识。

S7,在基于待校验终端标识判断得到与数据访问请求对应的终端设备具有数据访问权限时,基于终端标识以及当前时间生成第一标识和第二标识。

其中,第一标识是用于定位数据检索时的HBase数据表中的行键起始位置,第二标识用于定位数据检索时的HBase数据表中的行键结束位置。可选地,作为一种可能的实现方式,第一标识和第二标识的生成过程可以通过S71和S72实现。

S71,对待校验终端标识进行哈希运算,得到第二哈希值;

其中,与前述S31类似,通过S71中的设置,既能够实现与前述行键标识之间的对应,还可进一步确保数据访问的安全性。

S72,在数据访问请求中还携带有用于表征检索起始时间的第一指定时间值,以及用于表征检索结束时间的第二指定时间值时,对第二哈希值和第一指定时间值进行信息组合得到第一标识(startRowKey);以及对第二哈希值和第二指定时间值进行信息组合得到第二标识(endRowKey)。需要理解的是,S72中的第一标识(startRowKey)和第二标识(endRowKey)可用作HBase Scan对象的生成,进而基于该HBase Scan对象进行数据的访问。

其中,作为一种可能的实现方式,可用Long.MAX_VALUE减去指定时间范围中的起始时间戳(如第一指定时间值)得到startRowKey的时间字段;可用Long.MAX_VALUE减去指定时间范围中的终止时间戳(如第二指定时间值)得到endRowKey的时间字段。应注意:Long.MAX_VALUE是指管理平台接收到数据访问请求时的时间值所对应的Long类型的最大值。

S8,从HBase数据库中获取与第一标识和第二标识对应数据,并反馈给与待校验终端标识对应的终端设备进行数据访问。

其中,经过加密处理的终端标识对应的第二哈希值、分隔符字段中得到的时间戳字段共同拼接成HBase Scan对象的startRowKey和endRowKey,进而基于得到的Scan对象获取当前状态数据。作为一种可能的实现方式,可通过调用HBase Scan对象中的setBatch生成的Scan对象,再通过Scan对象基于第一标识和第二标识从HBase数据库中获取数据。

由本实施例给出的数据存储方法可以看出,本公开至少具有以下技术效果:

在基于HBase进行数据存储时,可创建与终端标识对应的HBase数据表,以基于该HBase数据表实现对终端设备发送的待存储数据进行存储,从而提高数据存储过程的通用性差,达到利用HBase实现大数据快速存储的目的。

此外,本申请还通过预设的行键标识生成规则进行行键标识的创建,进而将待存储数据存储至于行键标识对应的HBase数据库中,实现数据的高效存储,以及后续数据的高效访问。

实施例二

图4是根据一示例性实施例示出的一种数据存储装置100的框图,该数据存储装置100可应用于分布式存储系统中的管理平台。参照图4,数据存储装置100包括数据接收模块110、数据表创建模块120、标识信息创建模块130和数据存储模块140。

数据接收模块110,用于接收终端设备发送的待存储数据,待存储数据中携带有终端标识;

数据表创建模块120,用于创建与终端标识对应的HBase数据表;

标识信息创建模块130,用于根据终端标识、待存储数据的属性信息在HBase数据表中配置用于指示数据存储位置的行键标识;其中,待存储数据的属性信息至少包括文件名、字段名、字段值中的一种。

作为一种可能的实现方式,标识信息创建模块130可以包括:

第一哈希运算单元,用于对终端标识进行哈希运算得到第一哈希值,作为第一前缀;

前缀信息生成单元,用于对当前时间值进行运算得到时间字段,将倒排后的时间字段作为第二前缀;

行键标识创建单元,用于对第一前缀、第二前缀以及待存储数据的属性信息进行信息组合得到行键标识。

数据存储模块140,用于根据行键标识将待存储数据写入与管理平台对应的HBase数据库。

进一步,作为又一种可能的实现方式,装置100还可包括:

列键标识创建模块,用于获取待存储数据对应的指令编码,以及基于指令编码在HBase数据表中配置用于指示数据存储位置的列键标识;

数据存储模块140,还用于根据行键标识以及列键标识将待存储数据写入与管理平台连接的HBase数据库。

进一步,作为一种可能的实现方式,装置100还可包括:

访问请求接收模块,用于接收数据访问请求,数据访问请求中携带有待校验终端标识。

检索信息生成模块,用于在基于待校验终端标识判断得到与数据访问请求对应的终端设备具有数据访问权限时,基于终端标识以及当前时间生成第一标识和第二标识,第一标识用于定位数据检索时的HBase数据表中的行键起始位置,第二标识用于定位数据检索时的HBase数据表中的行键结束位置。

可选地,信息检索模块包括:

第二哈希运算单元,用于对待校验终端标识进行哈希运算,得到第二哈希值;

第一标识生成单元,用于在数据访问请求中还携带有用于表征检索起始时间的第一指定时间值,以及用于表征检索结束时间的第二指定时间值时,对第二哈希值和第一指定时间值进行信息组合得到第一标识;以及

第二标识生成单元,对第二哈希值和第二指定时间值进行信息组合得到第二标识。

数据检索模块,用于从HBase数据库中获取与第一标识和第二标识对应数据,并反馈给与待校验终端标识对应的终端设备进行数据访问。

关于本实施例中的装置100,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

由本实施例给出的数据存储装置可以看出,本公开至少具有以下技术效果:

在基于HBase进行数据存储时,可创建与终端标识对应的HBase数据表,以基于该HBase数据表实现对终端设备发送的待存储数据进行存储,从而提高数据存储过程的通用性差,达到利用HBase实现大数据快速存储的目的。

此外,本申请还通过预设的行键标识生成规则进行行键标识的创建,进而将待存储数据存储至于行键标识对应的HBase数据库中,实现数据的高效存储,以及后续数据的高效访问。

实施例三

请参阅图5,为根据一实施例性实施例提供的一种电子设备10的框图,该电子设备10可至少包括处理器11,用于存储处理器11可执行指令的存储器12。其中,处理器11被配置为执行指令,以实现如上述实施例中的数据存储方法的全部步骤或部分步骤。

处理器11、存储器12之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

其中,处理器11用于读/写存储器中存储的数据或程序,并执行相应地功能。

存储器12用于存储程序或者数据,如存储处理器110可执行指令。该存储器12可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read OnlyMemory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

进一步,作为一种可能的实现方式,电子设备10还可包括电源组件、多媒体组件、音频组件、输入/输出(I/O)接口、传感器组件以及通信组件等。

电源组件为电子设备10的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源、以及其他与为电子设备10生成、管理和分配电力相关联的组件。

多媒体组件包括在电子设备10和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件包括一个前置摄像头和/或后置摄像头。当电子设备10处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当电子设备10处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

I/O接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件包括一个或多个传感器,用于为电子设备10提供各个方面的状态评估。例如,传感器组件可以检测到电子设备10的打开/关闭状态,组件的相对定位,例如组件为电子设备10的显示器和小键盘,传感器组件还可以检测电子设备10或电子设备10一个组件的位置改变,用户与电子设备10接触的存在或不存在电子设备10方位或加速/减速和电子设备10的温度变化。传感器组件可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件被配置为便于电子设备10和其他设备之间有线或无线方式的通信。电子设备10可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,电子设备10可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

应当理解的是,图5所示的结构仅为电子设备10的结构示意图,该电子设备10还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。

实施例四

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器12,上述指令可由电子设备10的处理器11执行以完成上述数据存储方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

实施例五

在示例性实施例中,还提供了一种计算机程序产品,包括至少一种非临时性的计算机可读介质,存储由至少一个处理器可翻译的指令,用于实施前述实施例中的数据存储装置。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 基于电子设备的数据存储方法、数据存储装置及电子设备
  • 数据存储方法及装置、数据获取方法及装置、电子设备
技术分类

06120113084027