一种利用protobuf的数据存储、读取方法及装置制造方法及图纸

技术编号:14927692 阅读:498 留言:0更新日期:2017-03-30 19:29
本发明专利技术实施例提供了一种利用protobuf的数据存储、读取方法及装置,利用protobuf的数据存储方法包括:获取待存储数据;构建用于存储待存储数据的目标消息实例并根据预定规则定义该目标消息实例的名称;从proto包文件中获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息,proto包文件存储有与消息实例的名称相关的存储标识以及与所述存储标识对应的关联配置信息;将目标消息实例存储到数据库中目标关联配置信息所指示的存储位置。与现有技术相比,本发明专利技术不需要配置文件,不需要人工维护proto源文件与配置文件的一致性,大大降低了人工维护成本。

【技术实现步骤摘要】

本专利技术涉及数据存储
,特别涉及一种利用protobuf的数据存储方法及装置、一种利用protobuf的数据读取方法及装置。
技术介绍
protobuf是由Google开发提供的一套对数据结构进行序列化的方法,可以用做通信协议,数据存储格式等,并且,其具有不限系统语言、不限系统平台、扩展性强以及操作简单等优点。现有技术中,protobuf中的proto源文件存放数据格式定义,即定义了与消息实例的名称相关的存储标识,其中,每一消息实例对应唯一的消息实例的名称,与消息实例的名称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的组合信息,proto源文件编译后生成proto包文件。protobuf和数据库的关联配置信息保存在配置文件中,配置文件根据proto源文件和数据存储的实际需要编写,关联配置信息定义了与proto源文件中消息实例的名称相关的存储标识相对应的数据在数据库中的具体存储位置,例如数据库表的名称、该表中列的名称等。当用户利用protobuf进行数据存储时,系统获得待存储数据,同时构建一个消息实例,并根据预定规则定义该数据消息的名称,待存储数据存储在其中;系统获得该消息实例的名称后,获得配置文件中对应的关联配置信息,并将该消息实例中存储的数据存储到所获得关联配置信息所指示的存储位置,进而完成对数据的存储。相应的,当用户利用protobuf进行数据读取时,系统获得存储待读取数据的数据库表的名称,通过配置文件中的关联配置信息和proto包文件中的数据格式定义查找与待读取数据对应的消息实例的名称,从配置文件中获得与该消息实例的名称相关的目标存储标识相对应的关联配置信息,进而从该关联配置信息所指示的存储位置中读取该待读取数据。可见,现有技术中proto包文件和配置文件是两个不同的文件,存储或读取数据时需分别导入系统中,若配置文件和proto包文件对应的proto源文件不同,存储或读取数据时就会发生配置文件与proto包文件不匹配的情况,造成存储或读取错误,例如,系统更新时,proto源文件被更新,同时proto包文件更新,但配置文件未更新,二者对应的proto源文件不同,此时就会发生存储或读取错误。为了防止这种错误的发生,需要人工维护配置文件与proto包文件的一致性,修改proto源文件中数据格式定义时,需要同时人工修改配置文件,维护成本很高。
技术实现思路
本专利技术实施例的目的在于提供一种利用protobuf的数据存储、读取方法及装置,解决了配置文件与proto包文件不一致的问题,从而降低了人工维护成本。具体技术方案如下:第一方面,本专利技术实施例提供了一种利用protobuf的数据存储方法,包括:获取待存储数据;构建用于存储所述待存储数据的目标消息实例,并将所述待存储数据存储在所述目标消息实例中,其中,所述目标消息实例的名称基于预设规则定义;从proto包文件中,获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息,其中,所述proto包文件存储有与消息实例的名称相关的存储标识以及与所述存储标识对应的关联配置信息,所述与消息实例的名称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的组合信息;将所述目标消息实例存储到与所述proto包文件所对应数据库中的所述目标关联配置信息所指示的存储位置。其中,所述proto包文件为对包括有关联配置信息的proto源文件进行编译后得到的;其中,利用customoption自定义属性机制,在proto源文件中加入与消息实例对应的类的名称相关的存储标识对应的关联配置信息。其中,所述关联配置信息至少包括:数据库表的名称和该数据库表中列的名称。其中,所述从proto包文件中获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息,包括:调用预设的获取自定义属性的函数,从proto包文件中读取与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息;其中,所述获取自定义属性的函数为与当前计算机语言环境相对应的特定函数。第二方面,本专利技术实施例提供了一种利用protobuf的数据读取方法,包括:获取存储待读取数据的目标数据库表的名称;从proto包文件中查找与所述目标数据库表的名称对应的目标消息实例的名称,其中,所述proto包文件存储有与消息实例的名称相关的存储标识以及与所述存储标识对应的关联配置信息,所述与消息实例的名称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的组合信息;从所述proto包文件中获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息;从所述目标关联配置信息所指示的存储位置中读取所述待读取数据。第三方面,本专利技术实施例提供了一种利用protobuf的数据存储装置,包括:数据获取模块,用于获取待存储数据;消息实例构建模块,用于构建用于存储所述待存储数据的目标消息实例,并将所述待存储数据存储在所述目标消息实例中,其中,所述目标消息实例的名称基于预设规则定义;关联配置信息获得模块,用于从proto包文件中,获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息,其中,所述proto包文件存储有与消息实例的名称相关的存储标识以及与所述存储标识对应的关联配置信息,所述与消息实例的名称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的组合信息;数据存储模块,用于将所述目标消息实例存储到与所述proto包文件所对应数据库中的所述目标关联配置信息所指示的存储位置。其中,所述proto包文件为对包括有关联配置信息的proto源文件进行编译后得到的;其中,利用customoption自定义属性机制,在proto源文件中加入与消息实例对应的类的名称相关的存储标识对应的关联配置信息。其中,所述关联配置信息至少包括:数据库表的名称和该数据库表中列的名称。其中,所述关联配置信息获得模块包括:函数调用单元,用于调用预设的获取自定义属性的函数,从proto包文件中读取与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息;其中,所述获取自定义属性的函数为与当前计算机语言环境相对应的特定函数。第四方面,本专利技术实施例提供了一种利用protobuf本文档来自技高网
...
一种利用protobuf的数据存储、读取方法及装置

【技术保护点】
一种利用protobuf的数据存储方法,其特征在于,包括:获取待存储数据;构建用于存储所述待存储数据的目标消息实例,并将所述待存储数据存储在所述目标消息实例中,其中,所述目标消息实例的名称基于预设规则定义;从proto包文件中,获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置信息,其中,所述proto包文件存储有与消息实例的名称相关的存储标识以及与所述存储标识对应的关联配置信息,所述与消息实例的名称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的组合信息;将所述目标消息实例存储到与所述proto包文件所对应数据库中的所述目标关联配置信息所指示的存储位置。

【技术特征摘要】
1.一种利用protobuf的数据存储方法,其特征在于,包括:
获取待存储数据;
构建用于存储所述待存储数据的目标消息实例,并将所述待存储数据存储
在所述目标消息实例中,其中,所述目标消息实例的名称基于预设规则定义;
从proto包文件中,获得与所述目标消息实例的名称相关的目标存储标识所
对应的目标关联配置信息,其中,所述proto包文件存储有与消息实例的名称相
关的存储标识以及与所述存储标识对应的关联配置信息,所述与消息实例的名
称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例
对应的类的名称的组合信息;
将所述目标消息实例存储到与所述proto包文件所对应数据库中的所述目
标关联配置信息所指示的存储位置。
2.如权利要求1所述的方法,其特征在于,所述proto包文件为对包括有关
联配置信息的proto源文件进行编译后得到的;
其中,利用customoption自定义属性机制,在proto源文件中加入与消息实
例对应的类的名称相关的存储标识对应的关联配置信息。
3.如权利要求2所述的方法,其特征在于,所述关联配置信息至少包括:
数据库表的名称和该数据库表中列的名称。
4.如权利要求1-3任一项所述的方法,其特征在于,所述从proto包文件中
获得与所述目标消息实例的名称相关的目标存储标识所对应的目标关联配置
信息,包括:
调用预设的获取自定义属性的函数,从proto包文件中读取与所述目标消息
实例的名称相关的目标存储标识所对应的目标关联配置信息;其中,所述获取
自定义属性的函数为与当前计算机语言环境相对应的特定函数。
5.一种利用protobuf的数据读取方法,其特征在于,基于权利要求1所
述的利用protobuf的数据存储方法,包括:
获取存储待读取数据的目标数据库表的名称;
从proto包文件中查找与所述目标数据库表的名称对应的目标消息实例的
名称,其中,所述proto包文件存储有与消息实例的名称相关的存储标识以及与
所述存储标识对应的关联配置信息,所述与消息实例的名称相关的存储标识
为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的
组合信息;
从所述proto包文件中获得与所述目标消息实例的名称相关的目标存储标
识所对应的目标关联配置信息;
从所述目标关联配置信息所指示的存储位置中读取所述待读取数据。
6.一种利用protobuf的数据存储装置,其特征在于,包括:
数据获取模块...

【专利技术属性】
技术研发人员:郑程李雄锋
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1