【技术实现步骤摘要】
本专利技术涉及数据存储
,特别涉及一种利用protobuf的数据存储方法及装置、一种利用protobuf的数据读取方法及装置。
技术介绍
protobuf是由Google开发提供的一套对数据结构进行序列化的方法,可以用做通信协议,数据存储格式等,并且,其具有不限系统语言、不限系统平台、扩展性强以及操作简单等优点。现有技术中,protobuf中的proto源文件存放数据格式定义,即定义了与消息实例的名称相关的存储标识,其中,每一消息实例对应唯一的消息实例的名称,与消息实例的名称相关的存储标识为:消息实例的名称,或,关于消息实例的名称与消息实例对应的类的名称的组合信息,proto源文件编译后生成proto包文件。protobuf和数据库的关联配置信息保存在配置文件中,配置文件根据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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。